Function at 0x49af10
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x498
mov dword [esp + 0x5c], ecx
mov ebx, dword [alc.realloc]
mov dword [esp + 0x30], edx
mov dword [esp + 0x18], edx
push 0x30
push dword [alc.malloc]
call dword [ebp + 0xc]
add esp, 8
test eax, eax
je 0x49bd66
mov edi, eax
test bl, 0x20
mov ecx, ebx
mov eax, ebx
jne 0x49bda0
and eax, 0x40
shr eax, 6
mov dword [esp + 0x64], 0
mov dword [esp + 0x74], 0
mov edx, 0
test cl, cl
jns 0x49af79
lea edx, [esp + 0x74]
mov bl, 1
mov dword [esp + 0x64], ebx
mov dword [esp + 0x3c], edx
mov edx, dword [ebp + 0x14]
mov esi, edi
add esi, 0x20
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x30]
movzx ebx, byte [esi]
test byte [ebx + 0x4fdfe6], 2
jne 0x49afde
cmp ebx, 0x6d
jg 0x49b2bc
cmp ebx, 0x22
je 0x49b3f0
cmp ebx, 0x66
jne 0x49b398
mov esi, dword [esp + 0x30]
cmp dword [esi + 1], 0x65736c61
jne 0x49c60c
mov eax, dword [esp + 0x60]
mov dword [eax + 4], 0
mov dword [eax], 3
add esi, 5
jmp 0x49b659
mov dword [esp + 0x6c], 0
test cl, cl
sets al
mov ecx, dword [esp + 0x64]
xor cl, 1
or cl, al
mov dword [esp + 0x1c], edi
je 0x49c1c8
xor edx, edx
mov dword [esp + 0x28], ebx
cmp ebx, 0x2d
sete dl
mov ecx, dword [esp + 0x30]
lea ebx, [ecx + edx]
movzx eax, byte [ecx + edx]
test byte [eax + 0x4fe4d8], 2
je 0x49be4a
add eax, 0xffffffd0
movzx edx, byte [ebx + 1]
lea esi, [edx - 0x30]
cmp esi, 9
mov dword [esp + 8], ebx
ja 0x49be91
mov ecx, 0xa
imul ecx
mov edi, edx
add eax, esi
adc edi, 0
movzx edx, byte [ebx + 2]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x49bee4
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx ecx, byte [ebx + 3]
lea esi, [ecx - 0x30]
cmp esi, 9
ja 0x49bf34
mov ecx, 0xa
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx edx, byte [ebx + 4]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x49bf5e
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx ecx, byte [ebx + 5]
lea esi, [ecx - 0x30]
cmp esi, 9
ja 0x49bf88
mov ecx, 0xa
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx edx, byte [ebx + 6]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x49bfb2
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx ecx, byte [ebx + 7]
lea esi, [ecx - 0x30]
cmp esi, 9
ja 0x49bfdc
mov ecx, 0xa
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx edx, byte [ebx + 8]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x49c006
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx ecx, byte [ebx + 9]
lea esi, [ecx - 0x30]
cmp esi, 9
ja 0x49c030
mov ecx, 0xa
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx edx, byte [ebx + 0xa]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x49c05a
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx ecx, byte [ebx + 0xb]
lea esi, [ecx - 0x30]
cmp esi, 9
ja 0x49c084
mov ecx, 0xa
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx edx, byte [ebx + 0xc]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x49c0ae
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx ecx, byte [ebx + 0xd]
lea esi, [ecx - 0x30]
cmp esi, 9
ja 0x49c0d8
mov ecx, 0xa
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx edx, byte [ebx + 0xe]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x49c102
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx ecx, byte [ebx + 0xf]
lea esi, [ecx - 0x30]
cmp esi, 9
ja 0x49c12c
mov ecx, 0xa
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx edx, byte [ebx + 0x10]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x49c152
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx ecx, byte [ebx + 0x11]
lea esi, [ecx - 0x30]
cmp esi, 9
ja 0x49c178
mov ecx, 0xa
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
adc edi, edx
movzx edx, byte [ebx + 0x12]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x49c19e
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
mov dword [esp + 4], eax
adc edi, edx
lea esi, [ebx + 0x13]
movzx eax, byte [ebx + 0x13]
movzx ecx, al
movzx edx, byte [ecx + 0x4fe4d8]
test dl, 0x33
je 0x49b2f4
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edi
mov edi, esi
test dl, 3
mov eax, dword [ebp + 8]
mov ebx, dword [esp + 0x28]
je 0x49b283
mov esi, dword [esp + 8]
movzx esi, byte [esi + 0x14]
test byte [esi + 0x4fe4d8], 0x33
je 0x49b6d7
test dl, 0x20
jne 0x49b379
cmp byte [esp + 0x10], 0x2e
jne 0x49b7a1
mov ecx, dword [esp + 8]
movzx edx, byte [ecx + 0x14]
add ecx, 0x14
mov dword [esp + 0x10], edx
test byte [edx + 0x4fe4d8], 3
je 0x49b85c
mov dword [esp + 0x14], edi
jmp 0x49b7ab
cmp ebx, 0x6e
je 0x49b634
cmp ebx, 0x74
jne 0x49b398
mov esi, dword [esp + 0x30]
cmp dword [esi], 0x65757274
jne 0x49c60c
mov eax, dword [esp + 0x60]
mov dword [eax + 4], 0
mov dword [eax], 0xb
jmp 0x49b656
mov ebx, dword [esp + 0x28]
cmp ebx, 0x2d
mov edx, dword [esp + 4]
jne 0x49b69d
mov eax, 0x80000000
mov ecx, edx
neg ecx
sbb eax, edi
jae 0x49b69d
mov ecx, dword [alc.realloc]
test cl, cl
mov eax, dword [ebp + 8]
js 0x49c657
mov ebx, dword [esp + 0x1c]
mov dword [ebx + 0x24], 0
movd xmm0, edx
movd xmm1, edi
mov edi, ebx
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x4fdec0]
subpd xmm0, xmmword [0x4fded0]
mov dword [ebx + 0x20], 0x14
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
xorpd xmm1, xmmword [0x4fdee0]
movlpd qword [ebx + 0x28], xmm1
mov dword [esp + 0x18], esi
mov edx, dword [ebp + 0x14]
jmp 0x49bca8
xor edx, edx
xor ecx, ecx
mov esi, edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x34], 0
mov dword [esp + 8], 0
jmp 0x49b8d8
mov dword [esp + 0x1c], edi
test cl, 0x10
mov edi, ecx
jne 0x49c5d4
mov esi, dword [esp + 0x5c]
mov ecx, esi
mov ebx, dword [esp + 0x30]
mov edx, ebx
push edi
push 6
mov edi, dword [ebp + 8]
push edi
call dbg.is_truncated_end
add esp, 0xc
movzx edx, al
mov ecx, 6
sub ecx, edx
test al, al
cmovne ebx, edi
mov eax, 0x4fe0e6
mov edx, str.unexpected_character
cmovne edx, eax
sub ebx, esi
mov eax, dword [alc.free]
mov dword [eax + 8], ebx
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x49bd55
mov edx, dword [esp + 0x30]
inc edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x1c], edi
mov ebx, 0xd
movzx ecx, byte [edx]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49b55f
add edx, 8
nop word cs:[eax + eax]
movzx ecx, byte [edx - 7]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49b51f
movzx ecx, byte [edx - 6]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49b524
movzx ecx, byte [edx - 5]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49b529
movzx ecx, byte [edx - 4]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49b52e
movzx ecx, byte [edx - 3]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49b533
movzx ecx, byte [edx - 2]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49b538
movzx ecx, byte [edx - 1]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49b53d
movzx ecx, byte [edx]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49b55f
movzx ecx, byte [edx + 1]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49b540
movzx ecx, byte [edx + 2]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49b543
movzx ecx, byte [edx + 3]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49b548
movzx ecx, byte [edx + 4]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49b54d
movzx ecx, byte [edx + 5]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49b552
movzx ecx, byte [edx + 6]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49b557
movzx ecx, byte [edx + 7]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49b55c
movzx ecx, byte [edx + 8]
add edx, 0x10
test byte [ecx + 0x4fdfe6], 0xc
je 0x49b420
add edx, 0xfffffff8
jmp 0x49b55f
add edx, 0xfffffff9
jmp 0x49b55f
add edx, 0xfffffffa
jmp 0x49b55f
add edx, 0xfffffffb
jmp 0x49b55f
add edx, 0xfffffffc
jmp 0x49b55f
add edx, 0xfffffffd
jmp 0x49b55f
add edx, 0xfffffffe
jmp 0x49b55f
dec edx
jmp 0x49b55f
inc edx
jmp 0x49b55f
add edx, 2
jmp 0x49b55f
add edx, 3
jmp 0x49b55f
add edx, 4
jmp 0x49b55f
add edx, 5
jmp 0x49b55f
add edx, 6
jmp 0x49b55f
add edx, 7
mov dword [esp + 0x10], edx
mov dword [esp + 0x28], 0
cmp cl, 0x22
je 0x49b665
test cl, cl
jns 0x49cfba
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
mov edx, ecx
and edx, 0xc0c0f0
cmp edx, 0x8080e0
jne 0x49b5c0
mov edx, dword [esp + 0x10]
mov esi, ecx
and esi, 0x200f
je 0x49b5c4
cmp esi, 0x200d
je 0x49b5c4
mov ecx, dword [edx + 3]
add edx, 3
mov esi, ecx
and esi, 0xc0c0f0
cmp esi, 0x8080e0
je 0x49b596
jmp 0x49b5c4
mov edx, dword [esp + 0x10]
test cl, cl
jns 0x49b402
mov esi, ecx
and esi, 0xc0e0
cmp esi, 0x80c0
jne 0x49b5f1
mov esi, ecx
and esi, 0x1e
je 0x49b5f1
mov ecx, dword [edx + 2]
add edx, 2
jmp 0x49b5cc
mov ecx, dword [edx + 4]
add edx, 4
mov esi, ecx
and esi, 0xc0c0c0f8
cmp esi, 0x808080f0
jne 0x49b618
mov esi, ecx
and esi, 0x3007
je 0x49b618
test cl, 4
je 0x49b5eb
and ecx, 0x3003
je 0x49b5eb
cmp dword [esp + 0x10], edx
jne 0x49b402
test al, al
je 0x49e707
mov edx, dword [esp + 0x10]
inc edx
jmp 0x49b402
mov esi, dword [esp + 0x30]
mov eax, dword [esi]
cmp eax, 0x6c6c756e
jne 0x49c603
mov eax, dword [esp + 0x60]
mov dword [eax + 4], 0
mov dword [eax], 2
add esi, 4
mov dword [esp + 0x18], esi
mov eax, dword [ebp + 8]
jmp 0x49bca8
mov esi, dword [esp + 0x10]
mov edx, esi
mov eax, edx
mov edi, dword [esp + 0x30]
sub eax, edi
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
or ecx, dword [esp + 0x28]
shl eax, 8
or eax, ebx
mov ebx, dword [esp + 0x1c]
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], ecx
mov dword [ebx + 0x28], edi
mov edi, ebx
mov byte [edx], 0
inc esi
jmp 0x49bc5c
xor eax, eax
mov ecx, edx
neg ecx
sbb eax, edi
xor edx, edx
cmp ebx, 0x2d
sete dl
lea edx, [edx*8 + 4]
mov ebx, dword [esp + 0x1c]
mov dword [ebx + 0x20], edx
cmovne eax, edi
mov edi, ebx
cmovne ecx, dword [esp + 4]
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x28], ecx
mov dword [ebx + 0x2c], eax
jmp 0x49bc5c
add ecx, 0xffffffd0
cmp dword [esp + 4], 0x99999999
mov esi, dword [esp + 0xc]
sbb esi, 0x19999999
jb 0x49b718
mov esi, 0x19999999
mov eax, 0x99999999
xor eax, dword [esp + 4]
xor esi, dword [esp + 0xc]
or esi, eax
mov ebx, dword [esp + 0x28]
mov eax, dword [ebp + 8]
jne 0x49b283
cmp ecx, 5
ja 0x49b283
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov edi, ebx
mov ebx, dword [esp + 8]
add ebx, 0x14
mov esi, dword [esp + 0xc]
lea esi, [esi + esi*4]
lea edx, [edx + esi*2]
mov esi, ecx
sar esi, 0x1f
add eax, ecx
adc edx, esi
cmp edi, 0x2d
jne 0x49b839
mov esi, ebx
mov ecx, dword [alc.realloc]
test cl, cl
mov edi, dword [esp + 0x1c]
js 0x49c65b
movd xmm0, eax
movd xmm1, edx
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x4fdec0]
mov dword [edi + 0x24], 0
subpd xmm0, xmmword [0x4fded0]
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
xorpd xmm1, xmmword [0x4fdee0]
mov dword [edi + 0x20], 0x14
movlpd qword [edi + 0x28], xmm1
jmp 0x49c5c8
mov dword [esp + 0x14], 0
mov ecx, edi
lea edi, [ecx + 1]
mov dword [esp + 8], ecx
sub ecx, dword [esp + 0x30]
nop word cs:[eax + eax]
movzx ebx, byte [edi]
movzx edx, byte [ebx + 0x4fe4d8]
inc edi
inc ecx
test dl, 3
jne 0x49b7c0
xor eax, eax
cmp byte [esp + 0x10], 0x35
setae al
add dword [esp + 4], eax
adc dword [esp + 0xc], 0
lea esi, [edi - 1]
cmp dword [esp + 0x14], 0
jne 0x49b871
mov eax, dword [alc.realloc]
test al, al
jns 0x49b804
mov dh, dl
and dh, 0x30
je 0x49cb25
cmp bl, 0x2e
jne 0x49b86b
movzx ecx, byte [edi]
test byte [ecx + 0x4fe4d8], 3
je 0x49bd08
mov eax, esi
nop dword [eax + eax]
movzx ecx, byte [eax + 1]
inc eax
movzx edx, byte [ecx + 0x4fe4d8]
test dl, 3
jne 0x49b820
mov dword [esp + 0x14], esi
mov esi, eax
jmp 0x49b871
mov edi, dword [esp + 0x1c]
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 4
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], edx
mov dword [esp + 0x18], ebx
mov esi, ebx
jmp 0x49bc60
mov dword [esp + 4], str.no_digit_after_decimal_point
mov edx, ecx
jmp 0x49bd15
mov eax, esi
mov dword [esp + 0x14], esi
lea eax, [esi - 1]
jmp 0x49b881
dec eax
movzx ecx, byte [eax]
cmp ecx, 0x30
je 0x49b880
cmp ecx, 0x2e
je 0x49b880
mov ecx, dword [esp + 0x14]
mov edi, ecx
mov ebx, dword [esp + 8]
sub edi, ebx
sar edi, 0x1f
sub ecx, ebx
adc ecx, 0
mov dword [esp + 0x20], ecx
adc edi, 0
cmp eax, ebx
mov eax, esi
mov ecx, 0
cmovb eax, ecx
mov dword [esp + 0x34], eax
mov eax, 0
cmovb ebx, eax
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x28]
test dl, 0x20
mov edx, dword [esp + 0x20]
mov ecx, edi
je 0x49b994
mov dword [esp + 0x58], ecx
mov dword [esp + 0x20], edx
movzx ecx, byte [esi + 1]
xor eax, eax
mov dword [esp + 0x10], ecx
test byte [ecx + 0x4fe4d8], 0xc
setne al
movzx ecx, byte [esi + eax + 1]
test byte [ecx + 0x4fe4d8], 3
je 0x49c23e
add esi, eax
mov ebx, esi
nop word [eax + eax]
movzx edx, byte [esi + 1]
inc esi
inc ebx
cmp edx, 0x30
je 0x49b910
test byte [edx + 0x4fe4d8], 3
je 0x49b95a
xor eax, eax
xor ecx, ecx
mov edi, esi
nop word [eax + eax]
add dl, 0xd0
movzx esi, dl
mov edx, 0xa
mul edx
add ecx, ecx
add eax, esi
lea esi, [edi + 1]
lea ecx, [ecx + ecx*4]
adc ecx, edx
movzx edx, byte [edi + 1]
test byte [edx + 0x4fe4d8], 3
mov edi, esi
jne 0x49b930
jmp 0x49b95e
xor eax, eax
xor ecx, ecx
mov edx, esi
sub edx, ebx
cmp edx, 0x13
jge 0x49c24f
xor edx, edx
mov edi, esi
mov esi, eax
neg esi
sbb edx, ecx
cmp byte [esp + 0x10], 0x2d
cmovne edx, ecx
cmovne esi, eax
mov eax, dword [esp + 0x20]
add eax, esi
mov esi, edi
mov ecx, dword [esp + 0x58]
adc ecx, edx
mov edx, eax
mov ebx, dword [esp + 0x28]
mov eax, 0xfffffea8
cmp eax, edx
mov eax, 0xffffffff
sbb eax, ecx
jge 0x49c208
mov edi, edx
cmp edx, 0x135
sbb ecx, 0
mov edx, dword [ebp + 0x14]
mov ecx, dword [alc.realloc]
jge 0x49c20f
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x6c], edi
test ebx, 0xffe00000
jne 0x49ba1c
cmp edi, 0xffffffea
jl 0x49ba1c
cmp edi, 0x16
jg 0x49ba1c
movd xmm1, dword [esp + 4]
movd xmm0, ebx
punpckldq xmm1, xmm0
punpckldq xmm1, xmmword [0x4fdec0]
subpd xmm1, xmmword [0x4fded0]
movapd xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm0, xmm1
test edi, edi
mov eax, dword [ebp + 8]
js 0x49bc6b
mulsd xmm0, qword [edi*8 + 0x4fe420]
jmp 0x49bc7c
cmp dword [esp + 8], 0
sete cl
cmp edi, 0xfffffece
setge dl
cmp edi, 0x120
setl al
test cl, dl
je 0x49c237
mov dword [esp + 0x10], esi
test al, al
mov esi, dword [esp + 4]
mov dword [esp + 0xc], ebx
je 0x49c288
mov eax, edi
shl eax, 4
mov dword [esp + 0x4c], eax
imul eax, edi, 0x3526a
add eax, 0xffc10000
sar eax, 0x10
mov dword [esp + 0x58], eax
bsr eax, ebx
xor eax, 0x1f
bsr ecx, esi
xor ecx, 0x1f
add ecx, 0x20
test ebx, ebx
cmovne ecx, eax
shld ebx, esi, cl
shl esi, cl
xor eax, eax
mov dword [esp + 0x48], ecx
test cl, 0x20
cmovne ebx, esi
mov dword [esp + 0x40], 0
cmovne esi, eax
mov dword [esp + 0x20], edi
mov ecx, dword [esp + 0x4c]
mov edi, dword [ecx + 0x4ffb48]
mov eax, edi
mul esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x44], edx
mov ecx, dword [ecx + 0x4ffb4c]
mov eax, ecx
mov dword [esp + 0x2c], esi
mul esi
mov dword [esp + 0x38], edx
mov esi, eax
mov dword [esp + 0x50], edi
mov eax, edi
mul ebx
mov dword [esp + 0x4c], edx
mov edi, eax
mov dword [esp + 0x54], ecx
mov eax, ecx
mul ebx
add esi, dword [esp + 0x44]
adc eax, dword [esp + 0x38]
adc edx, 0
add esi, edi
mov dword [esp + 0x44], esi
adc eax, dword [esp + 0x4c]
adc edx, 0
mov esi, eax
and esi, 0x1ff
add esi, 0xffffffff
mov ecx, 0
adc ecx, 0xffffffff
cmp esi, 0x1fe
sbb ecx, 0
jb 0x49bbd9
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
mov eax, dword [esp + 0x20]
add eax, eax
mov esi, dword [eax*8 + 0x4ffb54]
mov eax, dword [eax*8 + 0x4ffb50]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x2c]
mul ecx
mov dword [esp + 0x20], edx
mov eax, esi
mul ecx
mov edi, edx
mov ecx, eax
mov eax, dword [esp + 0x4c]
mul ebx
mov dword [esp + 0x38], edx
mov dword [esp + 0x68], eax
mov dword [esp + 0x70], esi
mov eax, esi
mov dword [esp + 0x4c], ebx
mul ebx
add ecx, dword [esp + 0x20]
adc edi, 0
add ecx, dword [esp + 0x68]
mov ecx, dword [esp + 0x38]
adc ecx, 0
add edi, eax
adc edx, 0
add edi, ecx
adc edx, 0
mov dword [esp + 0x20], edi
mov ecx, edi
add ecx, dword [esp + 0x24]
mov eax, edx
adc eax, dword [esp + 0x44]
mov esi, ecx
add esi, 0xffffffff
mov edi, eax
adc edi, 0xffffffff
mov ebx, 0xfffffffd
cmp ebx, esi
mov esi, 0xffffffff
sbb esi, edi
jb 0x49c2f3
cmp ecx, dword [esp + 0x24]
mov esi, eax
sbb esi, dword [esp + 0x44]
setb bl
cmp ecx, dword [esp + 0x20]
sbb eax, edx
setb al
or al, bl
movzx ecx, al
mov eax, dword [esp + 0x78]
add eax, ecx
mov edx, dword [esp + 0x7c]
adc edx, 0
mov ecx, dword [esp + 0x28]
xor ebx, ebx
cmp ecx, 0x2d
sete bl
mov dword [esp + 0x30], ebx
xor ecx, ecx
test edx, edx
setns cl
shld edx, eax, cl
shl eax, cl
mov ebx, edx
mov edx, eax
and edx, 0x400
add edx, eax
adc ebx, 0
mov edi, dword [esp + 0x58]
sub edi, dword [esp + 0x48]
sub edi, ecx
mov ecx, ebx
shld ecx, edx, 0x15
mov esi, ebx
shr esi, 0xb
cmp edx, 0x400
sbb ebx, 0
adc edi, 0
shl edi, 0x14
and esi, 0xfffff
lea edx, [edi + esi]
add edx, 0x47e00000
mov eax, dword [esp + 0x30]
shl eax, 0x1f
or eax, edx
mov edi, dword [esp + 0x1c]
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0x14
mov dword [edi + 0x2c], eax
mov dword [edi + 0x28], ecx
mov esi, dword [esp + 0x10]
mov dword [esp + 0x18], esi
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov ecx, dword [alc.realloc]
jmp 0x49bca8
shl edi, 3
mov eax, 0x4fe420
sub eax, edi
divsd xmm0, qword [eax]
mov eax, dword [ebp + 8]
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x28]
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0x14
cmp ebx, 0x2d
jne 0x49bc9f
xorpd xmm0, xmmword [0x4fdee0]
movsd qword [edi + 0x28], xmm0
mov dword [esp + 0x18], esi
cmp esi, eax
jb 0x49bdb3
mov eax, dword [ebp + 0x10]
cmp byte [esp + 0x64], 0
je 0x49bcc7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x49bcc7
mov byte [ecx], 0
mov ecx, dword [esp + 0x60]
mov dword [edi], ecx
mov ecx, dword [ebp + 0xc]
mov dword [edi + 4], ecx
mov dword [edi + 8], eax
mov dword [edi + 0xc], edx
mov eax, dword [alc.malloc]
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x5c]
sub esi, eax
mov dword [edi + 0x14], esi
mov dword [edi + 0x18], 1
mov ecx, dword [alc.realloc]
test cl, 1
jne 0x49be27
mov dword [edi + 0x1c], eax
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 4], str.no_digit_after_decimal_point
mov edx, edi
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x5c]
mov ecx, esi
push dword [alc.realloc]
push 9
push eax
mov ebx, edx
mov edi, eax
call dbg.is_truncated_end
add esp, 0xc
test al, al
cmovne ebx, edi
mov ecx, 0x4fe0e6
cmove ecx, dword [esp + 4]
sub ebx, esi
mov edx, dword [alc.free]
mov dword [edx + 8], ebx
xor al, 1
movzx eax, al
lea eax, [eax*4 + 5]
mov dword [edx], eax
mov dword [edx + 4], ecx
push dword [esp + 0x1c]
push dword [alc.malloc]
call dword [ebp + 0x14]
add esp, 8
xor edi, edi
jmp 0x49bcfe
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x30]
mov edx, esi
push ebx
push 2
mov edi, dword [ebp + 8]
push edi
call dbg.is_truncated_end
add esp, 0xc
test al, al
je 0x49be2e
sub edi, dword [esp + 0x5c]
mov eax, dword [alc.free]
mov dword [eax + 8], edi
mov dword [eax], 5
mov dword [eax + 4], 0x4fe0e6
jmp 0x49bd62
and eax, 0x40
shr eax, 6
mov dword [esp + 0x74], 0
jmp 0x49af6f
test cl, 2
jne 0x49bcb0
test cl, 8
jne 0x49de74
dec esi
movzx eax, byte [esi + 1]
inc esi
test byte [eax + 0x4fdfe6], 1
jne 0x49bdc6
mov dword [esp + 0x18], esi
mov eax, dword [ebp + 8]
cmp esi, eax
jae 0x49bcb0
mov ebx, esi
mov esi, dword [esp + 0x5c]
mov ecx, esi
mov edx, ebx
push dword [alc.realloc]
push 4
push eax
call dbg.is_truncated_end
add esp, 0xc
movzx ecx, al
or ecx, 4
test al, al
cmovne ebx, dword [ebp + 8]
mov eax, 0x4fe0e6
mov edx, str.unexpected_content_after_document
cmovne edx, eax
sub ebx, esi
mov eax, dword [alc.free]
mov dword [eax + 8], ebx
mov dword [eax], ecx
mov dword [eax + 4], edx
push edi
jmp 0x49bd59
xor eax, eax
jmp 0x49bcfb
sub esi, dword [esp + 0x5c]
mov eax, dword [alc.free]
mov dword [eax + 8], esi
mov dword [eax], 2
mov dword [eax + 4], str.memory_allocation_failed
jmp 0x49bd62
cmp eax, 0x30
jne 0x49defa
lea esi, [ebx + 1]
movzx eax, byte [ebx + 1]
movzx ecx, byte [eax + 0x4fe4d8]
test cl, 0x33
jne 0x49df18
xor eax, eax
cmp dword [esp + 0x28], 0x2d
sete al
lea eax, [eax*8 + 4]
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], 0
mov dword [edi + 0x2c], 0
jmp 0x49c27c
lea ecx, [ebx + 1]
mov dword [esp + 0x10], ecx
test byte [edx + 0x4fe4d8], 0x30
jne 0x49df79
mov ecx, eax
sar ecx, 0x1f
xor edi, edi
mov edx, eax
neg edx
sbb edi, ecx
xor ebx, ebx
cmp dword [esp + 0x28], 0x2d
sete bl
lea esi, [ebx*8 + 4]
mov ebx, dword [esp + 0x1c]
mov dword [ebx + 0x20], esi
cmovne edi, ecx
cmovne edx, eax
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x28], edx
mov dword [ebx + 0x2c], edi
mov edi, ebx
jmp 0x49bc58
lea esi, [ebx + 2]
test byte [edx + 0x4fe4d8], 0x30
mov dword [esp + 4], eax
jne 0x49dfd1
xor ebx, ebx
mov ecx, eax
neg ecx
sbb ebx, edi
xor edx, edx
cmp dword [esp + 0x28], 0x2d
sete dl
lea edx, [edx*8 + 4]
mov eax, dword [esp + 0x1c]
mov dword [eax + 0x20], edx
cmovne ebx, edi
mov edi, eax
cmovne ecx, dword [esp + 4]
mov dword [eax + 0x24], 0
mov dword [eax + 0x28], ecx
mov dword [eax + 0x2c], ebx
jmp 0x49bc5c
mov dword [esp + 4], eax
lea esi, [ebx + 3]
test byte [ecx + 0x4fe4d8], 0x30
je 0x49c1b2
mov dword [esp + 0xc], edi
cmp ecx, 0x2e
jne 0x49e720
mov dword [esp + 0x14], esi
jmp 0x49e01a
mov dword [esp + 4], eax
lea esi, [ebx + 4]
test byte [edx + 0x4fe4d8], 0x30
je 0x49c1b2
mov dword [esp + 0xc], edi
cmp edx, 0x2e
jne 0x49e720
mov dword [esp + 0x14], esi
jmp 0x49e052
mov dword [esp + 4], eax
lea esi, [ebx + 5]
test byte [ecx + 0x4fe4d8], 0x30
je 0x49c1b2
mov dword [esp + 0xc], edi
cmp ecx, 0x2e
jne 0x49e720
mov dword [esp + 0x14], esi
jmp 0x49e08a
mov dword [esp + 4], eax
lea esi, [ebx + 6]
test byte [edx + 0x4fe4d8], 0x30
je 0x49c1b2
mov dword [esp + 0xc], edi
cmp edx, 0x2e
jne 0x49e720
mov dword [esp + 0x14], esi
jmp 0x49e0c2
mov dword [esp + 4], eax
lea esi, [ebx + 7]
test byte [ecx + 0x4fe4d8], 0x30
je 0x49c1b2
mov dword [esp + 0xc], edi
cmp ecx, 0x2e
jne 0x49e720
mov dword [esp + 0x14], esi
jmp 0x49e0fa
mov dword [esp + 4], eax
lea esi, [ebx + 8]
test byte [edx + 0x4fe4d8], 0x30
je 0x49c1b2
mov dword [esp + 0xc], edi
cmp edx, 0x2e
jne 0x49e720
mov dword [esp + 0x14], esi
jmp 0x49e132
mov dword [esp + 4], eax
lea esi, [ebx + 9]
test byte [ecx + 0x4fe4d8], 0x30
je 0x49c1b2
mov dword [esp + 0xc], edi
cmp ecx, 0x2e
jne 0x49e720
mov dword [esp + 0x14], esi
jmp 0x49e16a
mov dword [esp + 4], eax
lea esi, [ebx + 0xa]
test byte [edx + 0x4fe4d8], 0x30
je 0x49c1b2
mov dword [esp + 0xc], edi
cmp edx, 0x2e
jne 0x49e720
mov dword [esp + 0x14], esi
jmp 0x49e1a2
mov dword [esp + 4], eax
lea esi, [ebx + 0xb]
test byte [ecx + 0x4fe4d8], 0x30
je 0x49c1b2
mov dword [esp + 0xc], edi
cmp ecx, 0x2e
jne 0x49e720
mov dword [esp + 0x14], esi
jmp 0x49e1da
mov dword [esp + 4], eax
lea esi, [ebx + 0xc]
test byte [edx + 0x4fe4d8], 0x30
je 0x49c1b2
mov dword [esp + 0xc], edi
cmp edx, 0x2e
jne 0x49e720
mov dword [esp + 0x14], esi
jmp 0x49e212
mov dword [esp + 4], eax
lea esi, [ebx + 0xd]
test byte [ecx + 0x4fe4d8], 0x30
je 0x49c1b2
mov dword [esp + 0xc], edi
cmp ecx, 0x2e
jne 0x49e720
mov dword [esp + 0x14], esi
jmp 0x49e24a
mov dword [esp + 4], eax
lea esi, [ebx + 0xe]
test byte [edx + 0x4fe4d8], 0x30
je 0x49c1b2
mov dword [esp + 0xc], edi
cmp edx, 0x2e
jne 0x49e720
mov dword [esp + 0x14], esi
jmp 0x49e282
mov dword [esp + 4], eax
lea esi, [ebx + 0xf]
test byte [ecx + 0x4fe4d8], 0x30
je 0x49c1b2
mov dword [esp + 0xc], edi
cmp ecx, 0x2e
jne 0x49e720
mov dword [esp + 0x14], esi
jmp 0x49e2ba
mov dword [esp + 4], eax
lea esi, [ebx + 0x10]
test byte [edx + 0x4fe4d8], 0x30
je 0x49c1b2
mov dword [esp + 0xc], edi
cmp edx, 0x2e
jne 0x49e720
mov dword [esp + 0x14], esi
jmp 0x49e2f2
mov dword [esp + 4], eax
lea esi, [ebx + 0x11]
test byte [ecx + 0x4fe4d8], 0x30
je 0x49c1b2
mov dword [esp + 0xc], edi
cmp ecx, 0x2e
jne 0x49e720
mov dword [esp + 0x14], esi
jmp 0x49e32a
mov dword [esp + 4], eax
lea esi, [ebx + 0x12]
test byte [edx + 0x4fe4d8], 0x30
jne 0x49e427
xor eax, eax
mov ecx, dword [esp + 4]
neg ecx
sbb eax, edi
xor edx, edx
cmp dword [esp + 0x28], 0x2d
jmp 0x49b6aa
lea eax, [esp + 0x80]
lea ecx, [esp + 0x18]
mov edx, dword [esp + 0x3c]
push eax
push dword [esp + 0x64]
push dword [alc.realloc]
call dbg.read_number_raw
add esp, 0xc
mov esi, dword [esp + 0x18]
test al, al
jne 0x49bc60
mov eax, dword [esp + 0x80]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov edx, esi
jmp 0x49bd15
xor eax, eax
cmp ebx, 0x2d
jmp 0x49c261
test cl, cl
js 0x49e43d
mov dword [esp + 4], str.number_is_infinity_when_parsed_as_double
test cl, 0x10
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x30]
je 0x49bd15
cmp ebx, 0x2d
jmp 0x49c6ba
xor eax, eax
jmp 0x49ba3e
lea edx, [esi + eax]
inc edx
mov dword [esp + 4], str.no_digit_after_exponent_sign
jmp 0x49bd12
cmp byte [esp + 0x10], 0x2d
jne 0x49c693
xor eax, eax
cmp dword [esp + 0x28], 0x2d
sete al
mov edi, dword [esp + 0x1c]
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0x14
shl eax, 0x1f
mov dword [edi + 0x2c], eax
mov dword [edi + 0x28], 0
jmp 0x49bc5c
bsr eax, ebx
xor eax, 0x1f
bsr ecx, esi
xor ecx, 0x1f
add ecx, 0x20
test ebx, ebx
cmovne ecx, eax
shld ebx, esi, cl
xor eax, eax
shl esi, cl
mov dword [esp + 0x48], ecx
test cl, 0x20
cmovne ebx, esi
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x40], 0
cmovne esi, eax
mov dword [esp + 0x2c], esi
imul eax, edi, 0x3526a
shl edi, 4
add eax, 0xffc10000
sar eax, 0x10
mov dword [esp + 0x58], eax
mov eax, dword [edi + 0x4ffb4c]
mov dword [esp + 0x54], eax
mov eax, dword [edi + 0x4ffb48]
mov dword [esp + 0x50], eax
mov eax, dword [edi + 0x4ffb54]
mov dword [esp + 0x70], eax
mov dword [esp + 0x38], 0
xor ebx, ebx
cmp dword [esp + 8], 0
setne bl
shl ebx, 2
xor eax, eax
mov ecx, dword [esp + 0x48]
shld eax, ebx, cl
shl ebx, cl
xor edx, edx
test cl, 0x20
cmovne eax, ebx
mov dword [esp + 0x20], eax
cmovne ebx, edx
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x70]
shr ebx, 0x1f
add ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
adc ecx, 0
mov eax, ebx
imul eax, dword [esp + 0x40]
mov dword [esp + 0x54], eax
mov eax, ebx
mov esi, dword [esp + 0x2c]
mul esi
mov dword [esp + 0x44], edx
mov eax, ecx
mul esi
mov edi, eax
mov esi, edx
mov eax, dword [esp + 0x54]
add dword [esp + 0x44], eax
mov eax, dword [esp + 0x40]
imul eax, ecx
mov dword [esp + 0x40], eax
mov eax, ebx
mul dword [esp + 0x4c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x2c], edx
mov eax, ebx
mov ebx, dword [esp + 0x38]
imul eax, ebx
mov dword [esp + 0x54], eax
mov eax, ecx
mul dword [esp + 0x4c]
imul ebx, ecx
add edi, dword [esp + 0x44]
adc esi, dword [esp + 0x40]
add edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x2c]
adc ecx, dword [esp + 0x54]
add esi, eax
adc edx, ebx
add esi, ecx
adc edx, 0
shr edi, 0x1f
add edi, esi
adc edx, 0
xor ebx, ebx
mov esi, dword [esp + 0x24]
mov eax, esi
mov ecx, dword [esp + 0x20]
or eax, ecx
sete bl
xor ebx, 9
add ebx, esi
adc ecx, 0
mov dword [esp + 0x20], ecx
bsr eax, edx
xor eax, 0x1f
bsr ecx, edi
xor ecx, 0x1f
add ecx, 0x20
test edx, edx
cmovne ecx, eax
shld edx, edi, cl
mov eax, ecx
add eax, dword [esp + 0x48]
mov esi, dword [esp + 0x58]
sub esi, eax
shl edi, cl
mov eax, dword [esp + 0x20]
shld eax, ebx, cl
shl ebx, cl
add esi, 0x40
test cl, 0x20
cmovne edx, edi
mov dword [esp + 0x4c], edx
mov edx, 0
cmovne edi, edx
mov dword [esp + 0x48], edi
cmovne eax, ebx
mov dword [esp + 0x20], eax
mov ecx, 0
cmovne ebx, edx
mov dword [esp + 0x40], ebx
mov ebx, 0xb
cmp esi, 0xfffffbc2
mov dword [esp + 0x58], esi
jle 0x49c7bb
mov dword [esp + 0x54], ebx
mov esi, dword [esp + 0x4c]
mov edx, esi
mov ecx, ebx
shr edx, cl
test bl, 0x20
mov edi, edx
mov eax, 0
cmovne edi, eax
mov eax, dword [esp + 0x48]
shrd eax, esi, cl
test bl, 0x20
cmovne eax, edx
mov dword [esp + 0x44], eax
mov edx, 0xffffffff
shl edx, cl
test bl, 0x20
mov ecx, 0xffffffff
mov eax, edx
cmove edx, ecx
mov ecx, 0
cmovne eax, ecx
not eax
and eax, dword [esp + 0x48]
not edx
and edx, esi
shld edx, eax, 3
mov ecx, ebx
dec cl
mov ebx, 8
xor esi, esi
shld esi, ebx, cl
shl ebx, cl
shl eax, 3
test cl, 0x20
cmovne esi, ebx
mov ecx, 0
cmovne ebx, ecx
mov dword [esp + 0x24], ebx
add ebx, dword [esp + 0x40]
mov dword [esp + 0x2c], esi
adc esi, dword [esp + 0x20]
mov dword [esp + 0x38], eax
mov dword [esp + 0x50], ebx
cmp eax, ebx
mov dword [esp + 0x48], edx
mov dword [esp + 0x68], esi
sbb edx, esi
setae cl
movzx esi, cl
add esi, dword [esp + 0x44]
adc edi, 0
mov ecx, esi
or ecx, edi
je 0x49c82c
mov edx, dword [esp + 0x58]
add edx, dword [esp + 0x54]
bsr eax, edi
xor eax, 0x1f
bsr ecx, esi
xor ecx, 0x1f
add ecx, 0x20
test edi, edi
cmovne ecx, eax
shld edi, esi, cl
shl esi, cl
xor ebx, ebx
test cl, 0x20
cmovne edi, esi
cmove ebx, esi
sub edx, ecx
cmp edx, 0x3c0
mov ecx, dword [alc.realloc]
mov esi, dword [esp + 0x10]
jg 0x49c83b
shrd ebx, edi, 0xb
shr edi, 0xb
cmp edx, 0xfffffbc2
jle 0x49ca7d
shl edx, 0x14
and edi, 0xfffff
lea eax, [edx + edi]
add eax, 0x43e00000
mov dword [esp + 0x4c], eax
xor eax, 0x7ff00000
or eax, ebx
je 0x49c83b
mov dword [esp + 0x58], ebx
mov edi, dword [esp + 0x24]
sub edi, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
sbb edx, dword [esp + 0x20]
mov eax, dword [esp + 0x38]
cmp edi, eax
sbb edx, dword [esp + 0x48]
jae 0x49c599
cmp eax, dword [esp + 0x50]
mov eax, dword [esp + 0x68]
sbb dword [esp + 0x48], eax
jb 0x49c866
xor eax, eax
cmp dword [esp + 0x28], 0x2d
sete al
shl eax, 0x1f
mov edx, dword [esp + 0x4c]
or edx, eax
mov edi, dword [esp + 0x1c]
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0x14
mov eax, dword [esp + 0x58]
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], edx
mov dword [esp + 0x18], esi
mov edx, dword [ebp + 0x14]
jmp 0x49b65d
mov edx, dword [esp + 0x1c]
cmp ebx, 0x49
je 0x49c6ee
cmp ebx, 0x69
je 0x49c6ee
cmp ebx, 0x4e
mov edi, dword [alc.realloc]
jne 0x49b3a7
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + 1]
jmp 0x49cabb
test cl, 0x10
jne 0x49e464
mov ebx, dword [esp + 0x5c]
mov eax, ecx
mov ecx, ebx
mov edx, esi
push eax
push 0xb
mov eax, dword [ebp + 8]
mov dword [esp + 0x24], edi
mov edi, eax
push eax
call dbg.is_truncated_end
add esp, 0xc
test al, al
cmovne esi, edi
mov eax, 5
mov ecx, 0xb
cmovne ecx, eax
mov eax, 0x4fe0e6
mov edx, str.invalid_literal
cmovne edx, eax
sub esi, ebx
mov eax, dword [alc.free]
mov dword [eax + 8], esi
jmp 0x49b3e6
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x49c668
mov byte [eax], 0
mov eax, esi
mov edx, dword [esp + 0x30]
sub eax, edx
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
mov dword [edi + 0x24], ecx
shl eax, 8
or eax, 1
mov dword [edi + 0x20], eax
mov dword [edi + 0x28], edx
mov eax, dword [esp + 0x3c]
mov dword [eax], esi
jmp 0x49bc5c
mov eax, dword [alc.realloc]
test al, al
js 0x49e43d
mov dword [esp + 4], str.number_is_infinity_when_parsed_as_double
test al, 0x10
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x30]
je 0x49bd15
cmp dword [esp + 0x28], 0x2d
mov edi, dword [esp + 0x1c]
mov dword [edi + 0x24], 0
mov eax, 0xfff00000
mov ecx, 0x7ff00000
cmove ecx, eax
mov eax, dword [ebp + 8]
mov dword [edi + 0x20], 0x14
mov dword [edi + 0x2c], ecx
mov ecx, dword [alc.realloc]
mov dword [edi + 0x28], 0
jmp 0x49b36d
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + 1]
mov ecx, eax
or ecx, 0x20
cmp ecx, 0x6e
jne 0x49caaf
mov ecx, dword [esp + 0x30]
movzx ecx, byte [ecx + 2]
or ecx, 0x20
cmp ecx, 0x66
jne 0x49caaf
mov eax, dword [esp + 0x30]
lea edi, [eax + 3]
movzx eax, byte [eax + 3]
or eax, 0x20
cmp eax, 0x69
jne 0x49c772
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + 4]
or eax, 0x20
cmp eax, 0x6e
jne 0x49c772
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + 5]
or eax, 0x20
cmp eax, 0x69
jne 0x49c772
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + 6]
or eax, 0x20
cmp eax, 0x74
jne 0x49c772
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + 7]
or eax, 0x20
cmp eax, 0x79
jne 0x49c772
mov eax, dword [esp + 0x30]
lea edi, [eax + 8]
mov dword [esp + 0x18], edi
cmp dword [esp + 0x3c], 0
je 0x49cd47
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x49c78e
mov byte [eax], 0
mov eax, dword [esp + 0x3c]
mov dword [eax], edi
mov eax, edi
mov esi, dword [esp + 0x30]
sub eax, esi
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
mov ebx, edx
mov dword [edx + 0x24], ecx
shl eax, 8
or eax, 1
mov dword [edx + 0x20], eax
mov dword [edx + 0x28], esi
jmp 0x49cd56
mov edi, dword [esp + 0x48]
lea eax, [esi + 0x472]
cmp esi, 0xfffffb8f
cmovb eax, ecx
lea ecx, [eax - 0x44]
cmp ecx, 0xffffffbf
ja 0x49ec69
mov ecx, 4
sub ecx, eax
mov edx, dword [esp + 0x4c]
shrd edi, edx, cl
shr edx, cl
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x40]
shrd esi, ebx, cl
shr ebx, cl
add dword [esp + 0x58], ecx
xor eax, eax
test cl, 0x20
cmovne edi, edx
mov dword [esp + 0x48], edi
cmovne edx, eax
mov dword [esp + 0x4c], edx
cmovne esi, ebx
cmovne ebx, eax
add esi, 9
mov dword [esp + 0x40], esi
adc ebx, 0
mov dword [esp + 0x20], ebx
mov ebx, 0x3c
jmp 0x49c43f
mov dword [esp + 0x4c], 0
xor ebx, ebx
jmp 0x49caa3
mov edi, dword [esp + 0x28]
test cl, cl
js 0x49e4db
mov eax, dword [alc.realloc]
test al, 0x10
jne 0x49e565
mov dword [esp + 4], str.number_is_infinity_when_parsed_as_double
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x30]
jmp 0x49bd15
xor eax, eax
mov ecx, 0xffffffff
add ecx, 1
adc eax, 0xfffff
mov edi, dword [esp + 0x4c]
mov esi, edi
and esi, 0xfffff
or esi, eax
mov edx, edi
shr edx, 0x14
add edx, 0xfffffbcc
mov ebx, dword [esp + 0x58]
cmp ebx, ecx
mov ecx, edi
sbb ecx, eax
mov eax, 0xfffffbcd
cmovae eax, edx
mov dword [esp + 0x50], eax
cmovb esi, edi
shld esi, ebx, 1
lea edi, [ebx*2 + 1]
lea eax, [esp + 0x6c]
lea ecx, [esp + 0x80]
mov edx, dword [esp + 4]
push dword [esp + 0x14]
push dword [esp + 0x38]
push dword [esp + 0x10]
push eax
push dword [esp + 0x1c]
call dbg.bigint_set_buf
add esp, 0x14
mov dword [esp + 0x290], edi
mov dword [esp + 0x294], esi
mov eax, dword [esp + 0x6c]
test eax, eax
js 0x49cb57
cmp eax, 0x13
jb 0x49ccf4
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x54], ecx
jmp 0x49c91a
mov edx, dword [esp + 0x24]
lea eax, [edx - 0x13]
cmp edx, 0x25
jle 0x49cce9
mov edx, eax
test ecx, ecx
je 0x49c939
xor esi, esi
mov eax, dword [esp + esi*8 + 0x88]
or eax, dword [esp + esi*8 + 0x8c]
jne 0x49c941
inc esi
cmp ecx, esi
jne 0x49c922
jmp 0x49c90e
mov dword [esp + 0x24], edx
xor esi, esi
jmp 0x49c945
mov dword [esp + 0x24], edx
cmp esi, ecx
jae 0x49c90a
mov dword [esp + 0x20], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x2c], ecx
mov ebx, dword [esp + esi*8 + 0x88]
mov eax, ebx
mov dword [esp + 0x44], ebx
mov ecx, 0x89e80000
mul ecx
mov dword [esp + 8], eax
mov dword [esp + 0x48], edx
xor ecx, ecx
mov edi, 0x89e80000
add edi, 0xdf2304
setb cl
mov eax, ebx
mul edi
mov ebx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + esi*8 + 0x8c]
mov dword [esp + 0xc], eax
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x44]
imul eax, ecx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xc]
mul edi
mov dword [esp + 0x44], eax
imul ecx, dword [esp + 0xc]
add ebx, dword [esp + 0x48]
mov edi, dword [esp + 4]
adc edi, dword [esp + 0x38]
add ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
adc eax, 0
add edi, dword [esp + 0x44]
adc edx, ecx
add edi, eax
mov dword [esp + 4], edi
adc edx, 0
mov eax, dword [esp + 8]
and eax, 0xfff80000
mov ecx, dword [esp + 0x20]
add eax, ecx
mov dword [esp + 8], eax
mov edi, dword [esp + 0x14]
adc ebx, edi
setb byte [esp + 0xc]
cmp eax, ecx
mov ecx, ebx
sbb ecx, edi
mov dword [esp + esi*8 + 0x8c], ebx
setb cl
or cl, byte [esp + 0xc]
movzx eax, cl
add eax, dword [esp + 4]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 8]
mov dword [esp + esi*8 + 0x88], eax
adc edx, 0
mov dword [esp + 0x14], edx
inc esi
cmp dword [esp + 0x2c], esi
jne 0x49c95d
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
or eax, dword [esp + 0x14]
je 0x49c90a
lea eax, [ecx + 1]
mov edx, dword [esp + 0x20]
mov dword [esp + ecx*8 + 0x88], edx
mov edx, dword [esp + 0x14]
mov dword [esp + ecx*8 + 0x8c], edx
mov dword [esp + 0x54], eax
mov ecx, eax
jmp 0x49c90a
cmp edx, 0xfffffb8f
jb 0x49e596
mov esi, edx
mov cl, 0xc3
sub cl, dl
shrd ebx, edi, cl
shr edi, cl
xor esi, esi
test cl, 0x20
cmovne ebx, edi
cmove esi, edi
mov dword [esp + 0x4c], esi
mov ecx, dword [alc.realloc]
mov esi, dword [esp + 0x10]
jmp 0x49c567
cmp ebx, 0x4e
mov edi, dword [alc.realloc]
jne 0x49b3a7
movzx eax, al
or eax, 0x20
cmp eax, 0x61
jne 0x49b3a7
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + 2]
or eax, 0x20
cmp eax, 0x6e
jne 0x49b3a7
mov eax, dword [esp + 0x30]
add eax, 3
mov esi, eax
mov dword [esp + 0x18], eax
cmp dword [esp + 0x3c], 0
je 0x49ce66
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x49cb03
mov byte [eax], 0
mov eax, dword [esp + 0x3c]
mov dword [eax], esi
mov edi, edx
mov dword [edx + 0x24], 0
mov dword [edx + 0x20], 0x301
mov eax, dword [esp + 0x30]
mov dword [edx + 0x28], eax
jmp 0x49bc60
mov eax, dword [esp + 0x3c]
mov edx, dword [eax]
test edx, edx
je 0x49cb32
mov byte [edx], 0
mov edx, ecx
sar edx, 0x1f
shld edx, ecx, 8
mov edi, dword [esp + 0x1c]
mov dword [edi + 0x24], edx
shl ecx, 8
or ecx, 1
mov dword [edi + 0x20], ecx
mov eax, dword [esp + 0x30]
mov dword [edi + 0x28], eax
jmp 0x49c688
neg eax
mov dword [esp + 0x24], 1
cmp eax, 0x13
jb 0x49ce8d
mov dword [esp + 0x24], 1
mov dword [esp + 0x2c], 1
jmp 0x49cb8c
mov ecx, dword [esp + 0x54]
lea eax, [ecx - 0x13]
cmp ecx, 0x25
jle 0x49ce7a
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x2c]
xor esi, esi
test ecx, ecx
je 0x49cbb1
mov eax, dword [esp + esi*8 + 0x290]
or eax, dword [esp + esi*8 + 0x294]
jne 0x49cbb1
inc esi
cmp ecx, esi
jne 0x49cb9a
jmp 0x49cb7c
cmp esi, dword [esp + 0x2c]
jae 0x49cb7c
mov dword [esp + 0x20], 0
mov dword [esp + 0x14], 0
mov ebx, dword [esp + esi*8 + 0x290]
mov eax, ebx
mov dword [esp + 0x44], ebx
mov ecx, 0x89e80000
mul ecx
mov dword [esp + 8], eax
mov dword [esp + 0x48], edx
xor ecx, ecx
mov edi, 0x89e80000
add edi, 0xdf2304
setb cl
mov eax, ebx
mul edi
mov ebx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + esi*8 + 0x294]
mov dword [esp + 0xc], eax
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x44]
imul eax, ecx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xc]
mul edi
mov dword [esp + 0x44], eax
imul ecx, dword [esp + 0xc]
add ebx, dword [esp + 0x48]
mov edi, dword [esp + 4]
adc edi, dword [esp + 0x38]
add ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
adc eax, 0
add edi, dword [esp + 0x44]
adc edx, ecx
add edi, eax
mov dword [esp + 4], edi
adc edx, 0
mov eax, dword [esp + 8]
and eax, 0xfff80000
mov ecx, dword [esp + 0x20]
add eax, ecx
mov dword [esp + 8], eax
mov edi, dword [esp + 0x14]
adc ebx, edi
setb byte [esp + 0xc]
cmp eax, ecx
mov ecx, ebx
sbb ecx, edi
mov dword [esp + esi*8 + 0x294], ebx
setb cl
or cl, byte [esp + 0xc]
movzx eax, cl
add eax, dword [esp + 4]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 8]
mov dword [esp + esi*8 + 0x290], eax
adc edx, 0
mov dword [esp + 0x14], edx
inc esi
cmp dword [esp + 0x2c], esi
jne 0x49cbc7
mov eax, dword [esp + 0x20]
or eax, dword [esp + 0x14]
je 0x49cb7c
mov ecx, dword [esp + 0x2c]
lea eax, [ecx + 1]
mov edx, dword [esp + 0x20]
mov dword [esp + ecx*8 + 0x290], edx
mov edx, dword [esp + 0x14]
mov dword [esp + ecx*8 + 0x294], edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], eax
jmp 0x49cb7c
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x24], 1
test eax, eax
je 0x49d5f2
mov ecx, dword [eax*8 + 0x500f9c]
mov dword [esp + 0x38], ecx
mov eax, dword [eax*8 + 0x500f98]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x14], eax
xor ecx, ecx
test eax, eax
je 0x49cd68
mov eax, dword [esp + ecx*8 + 0x88]
or eax, dword [esp + ecx*8 + 0x8c]
jne 0x49cd68
inc ecx
cmp dword [esp + 0x14], ecx
jne 0x49cd2b
jmp 0x49d5f2
movapd xmm0, xmmword [0x4fdf00]
mov ebx, edx
movupd xmmword [edx + 0x20], xmm0
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov ecx, dword [alc.realloc]
mov esi, edi
mov edi, ebx
jmp 0x49bca8
cmp ecx, dword [esp + 0x14]
jae 0x49d5f2
mov dword [esp + 0x20], 0
xor esi, esi
mov ebx, dword [esp + ecx*8 + 0x88]
mov eax, ebx
mul dword [esp + 0xc]
mov dword [esp + 0x48], edx
mov dword [esp + 8], eax
mov eax, ebx
mov edi, dword [esp + 0x38]
mul edi
mov ebx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + ecx*8 + 0x8c]
mov dword [esp + 0x44], eax
mul dword [esp + 0xc]
mov dword [esp + 0x34], edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x44]
mul edi
mov dword [esp + 0x44], eax
add ebx, dword [esp + 0x48]
mov edi, dword [esp + 4]
adc edi, 0
add ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
adc eax, 0
add edi, dword [esp + 0x44]
adc edx, 0
add edi, eax
mov dword [esp + 4], edi
adc edx, 0
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 8]
add eax, edi
mov dword [esp + 8], eax
adc ebx, esi
setb byte [esp + 0x48]
cmp eax, edi
mov edi, ebx
sbb edi, esi
mov dword [esp + ecx*8 + 0x8c], ebx
setb ah
or ah, byte [esp + 0x48]
movzx eax, ah
add eax, dword [esp + 4]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 8]
mov dword [esp + ecx*8 + 0x88], eax
mov esi, edx
adc esi, 0
inc ecx
cmp dword [esp + 0x14], ecx
jne 0x49cd7c
mov eax, dword [esp + 0x20]
or eax, esi
je 0x49d5f2
mov ecx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [esp + 0x80], eax
mov dword [esp + ecx*8 + 0x8c], esi
mov eax, dword [esp + 0x20]
mov dword [esp + ecx*8 + 0x88], eax
jmp 0x49d5f2
movdqa xmm0, xmmword [0x4fdef0]
mov edi, edx
movdqu xmmword [edx + 0x20], xmm0
jmp 0x49bc60
test eax, eax
je 0x49d5f2
cmp dword [esp + 0x24], 0
je 0x49d5ea
mov ecx, dword [eax*8 + 0x500f9c]
mov dword [esp + 0x44], ecx
mov eax, dword [eax*8 + 0x500f98]
mov dword [esp + 0xc], eax
xor ecx, ecx
mov eax, dword [esp + ecx*8 + 0x290]
or eax, dword [esp + ecx*8 + 0x294]
jne 0x49cec1
inc ecx
cmp dword [esp + 0x24], ecx
jne 0x49cea5
jmp 0x49d5f2
cmp ecx, dword [esp + 0x24]
jae 0x49d5f2
mov dword [esp + 0x20], 0
xor esi, esi
mov ebx, dword [esp + ecx*8 + 0x290]
mov eax, ebx
mul dword [esp + 0xc]
mov dword [esp + 0x14], edx
mov dword [esp + 8], eax
mov eax, ebx
mov edi, dword [esp + 0x44]
mul edi
mov ebx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + ecx*8 + 0x294]
mov dword [esp + 0x40], eax
mul dword [esp + 0xc]
mov dword [esp + 0x48], edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x40]
mul edi
mov dword [esp + 0x40], eax
add ebx, dword [esp + 0x14]
mov edi, dword [esp + 4]
adc edi, 0
add ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x48]
adc eax, 0
add edi, dword [esp + 0x40]
adc edx, 0
add edi, eax
mov dword [esp + 4], edi
adc edx, 0
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 8]
add eax, edi
mov dword [esp + 8], eax
adc ebx, esi
setb byte [esp + 0x14]
cmp eax, edi
mov edi, ebx
sbb edi, esi
mov dword [esp + ecx*8 + 0x294], ebx
setb ah
or ah, byte [esp + 0x14]
movzx eax, ah
add eax, dword [esp + 4]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 8]
mov dword [esp + ecx*8 + 0x290], eax
mov esi, edx
adc esi, 0
inc ecx
cmp dword [esp + 0x24], ecx
jne 0x49ced5
mov eax, dword [esp + 0x20]
or eax, esi
je 0x49d5f2
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov dword [esp + eax*8 + 0x290], ecx
mov dword [esp + eax*8 + 0x294], esi
inc eax
mov dword [esp + 0x24], eax
jmp 0x49d5f2
mov esi, dword [esp + 0x10]
mov edx, esi
cmp cl, 0x5c
jne 0x49d0f8
movzx ecx, byte [esi + 1]
add ecx, 0xffffffde
cmp ecx, 0x53
ja case.0x49cfd9.35
jmp dword [ecx*4 + 0x501e08]
mov byte [edx], 0x22
jmp 0x49d0c4
mov byte [edx], 0xa
jmp 0x49d0c4
mov byte [edx], 0x2f
jmp 0x49d0c4
mov byte [edx], 8
jmp 0x49d0c4
movzx ecx, byte [esi + 2]
mov ebx, esi
movzx esi, byte [ecx + 0x4fe25d]
movzx ecx, byte [ebx + 3]
movzx ecx, byte [ecx + 0x4fe25d]
movzx edi, byte [ebx + 4]
movzx edi, byte [edi + 0x4fe25d]
mov dword [esp + 8], edi
mov dword [esp + 0x10], ebx
movzx edi, byte [ebx + 5]
movzx edi, byte [edi + 0x4fe25d]
shl esi, 8
add esi, dword [esp + 8]
shl ecx, 8
or ecx, edi
mov edi, ecx
or edi, esi
mov dword [esp + 8], str.invalid_escaped_sequence_in_string
test edi, 0xf0f0
jne 0x49d59e
mov ebx, ecx
shl esi, 4
mov edi, ecx
or edi, esi
mov ecx, dword [esp + 0x10]
lea esi, [ecx + 6]
mov ebx, edi
and edi, 0xf800
mov ecx, ebx
cmp edi, 0xd800
je 0x49d126
movzx ecx, cx
cmp ecx, 0x800
jb 0x49d0cd
shr ecx, 0xc
or cl, 0xe0
mov byte [edx], cl
mov ecx, ebx
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [edx + 1], cl
and bl, 0x3f
or bl, 0x80
mov byte [edx + 2], bl
add edx, 3
jmp 0x49d240
mov byte [edx], 0x5c
jmp 0x49d0c4
mov byte [edx], 0xd
jmp 0x49d0c4
mov byte [edx], 0xc
jmp 0x49d0c4
mov byte [edx], 9
inc edx
add esi, 2
jmp 0x49d240
cmp ecx, 0x80
jb 0x49d0f0
mov ecx, ebx
shr ecx, 6
or cl, 0xc0
mov byte [edx], cl
and bl, 0x3f
or bl, 0x80
mov byte [edx + 1], bl
add edx, 2
jmp 0x49d240
mov byte [edx], bl
inc edx
jmp 0x49d240
mov dword [esp + 0x10], esi
movzx esi, cl
cmp esi, 0x22
je 0x49dee0
test al, al
je 0x49ec4f
mov esi, dword [esp + 0x10]
cmp esi, dword [ebp + 8]
jae 0x49ec5c
mov esi, dword [esp + 0x10]
inc esi
mov byte [edx], cl
jmp 0x49d0f2
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x49eb4d
movzx ecx, word [esi]
cmp ecx, 0x755c
jne 0x49eb5a
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 8]
movzx edi, byte [ecx + 0x4fe25d]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 9]
movzx ecx, byte [ecx + 0x4fe25d]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 0xa]
movzx ecx, byte [ecx + 0x4fe25d]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 0xb]
movzx ecx, byte [ecx + 0x4fe25d]
mov dword [esp + 0xc], ecx
shl edi, 8
add edi, dword [esp + 0x20]
mov ecx, dword [esp + 4]
shl ecx, 8
add ecx, dword [esp + 0xc]
mov dword [esp + 4], ecx
or ecx, edi
test ecx, 0xf0f0
jne 0x49eb62
shl edi, 4
movzx ecx, di
mov edi, dword [esp + 4]
or edi, ecx
mov dword [esp + 4], edi
mov ecx, edi
and ecx, 0xfc00
cmp ecx, 0xdc00
jne 0x49eb6b
movzx ecx, bx
shl ecx, 0xa
add ecx, 0xfca00000
mov ebx, dword [esp + 4]
lea esi, [ebx - 0xdc00]
or esi, ecx
lea edi, [esi + 0x10000]
mov ecx, edi
shr ecx, 0x12
or cl, 0xf0
mov byte [edx], cl
mov ecx, edi
shr ecx, 0xc
and cl, 0x3f
or cl, 0x80
mov byte [edx + 1], cl
mov ecx, esi
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [edx + 2], cl
and bl, 0x3f
or bl, 0x80
mov byte [edx + 3], bl
add edx, 4
mov esi, dword [esp + 0x10]
add esi, 0xc
jmp 0x49d240
cmp dword [esp + 0x10], esi
je 0x49d578
nop word [eax + eax]
movzx ecx, byte [esi]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49d496
movzx ecx, byte [esi + 1]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49d584
movzx ecx, byte [esi + 2]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49d362
movzx ecx, byte [esi + 3]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49d373
movzx ecx, byte [esi + 4]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49d382
movzx ecx, byte [esi + 5]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49d391
movzx ecx, byte [esi + 6]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49d3aa
movzx ecx, byte [esi + 7]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49d3c3
movzx ecx, byte [esi + 8]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49d3d6
movzx ecx, byte [esi + 9]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49d3e9
movzx ecx, byte [esi + 0xa]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49d406
movzx ecx, byte [esi + 0xb]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49d420
movzx ecx, byte [esi + 0xc]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49d438
movzx ecx, byte [esi + 0xd]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49d450
movzx ecx, byte [esi + 0xe]
test byte [ecx + 0x4fdfe6], 0xc
jne 0x49d470
movzx ecx, byte [esi + 0xf]
test byte [ecx + 0x4fdfe6], 0xc
movdqu xmm0, xmmword [esi]
movdqu xmmword [edx], xmm0
jne 0x49d490
add esi, 0x10
add edx, 0x10
jmp 0x49d240
movzx ecx, word [esi]
add esi, 2
mov word [edx], cx
add edx, 2
jmp 0x49d496
mov ecx, dword [esi]
add esi, 3
mov dword [edx], ecx
add edx, 3
jmp 0x49d496
mov ecx, dword [esi]
add esi, 4
mov dword [edx], ecx
add edx, 4
jmp 0x49d496
lea edi, [esi + 5]
mov ecx, dword [esi]
mov dword [edx], ecx
movzx ecx, word [esi + 4]
mov esi, edi
mov word [edx + 4], cx
add edx, 5
jmp 0x49d496
lea edi, [esi + 6]
mov ecx, dword [esi]
mov dword [edx], ecx
movzx ecx, word [esi + 4]
mov esi, edi
mov word [edx + 4], cx
add edx, 6
jmp 0x49d496
movq xmm0, qword [esi]
add esi, 7
movq qword [edx], xmm0
add edx, 7
jmp 0x49d496
movq xmm0, qword [esi]
add esi, 8
movq qword [edx], xmm0
add edx, 8
jmp 0x49d496
lea edi, [esi + 9]
movq xmm0, qword [esi]
movq qword [edx], xmm0
movzx ecx, word [esi + 8]
mov esi, edi
mov word [edx + 8], cx
add edx, 9
jmp 0x49d496
lea edi, [esi + 0xa]
movq xmm0, qword [esi]
movq qword [edx], xmm0
movzx ecx, word [esi + 8]
mov esi, edi
mov word [edx + 8], cx
add edx, 0xa
jmp 0x49d496
lea edi, [esi + 0xb]
movq xmm0, qword [esi]
movq qword [edx], xmm0
mov ecx, dword [esi + 8]
mov esi, edi
mov dword [edx + 8], ecx
add edx, 0xb
jmp 0x49d496
lea edi, [esi + 0xc]
movq xmm0, qword [esi]
movq qword [edx], xmm0
mov ecx, dword [esi + 8]
mov esi, edi
mov dword [edx + 8], ecx
add edx, 0xc
jmp 0x49d496
lea edi, [esi + 0xd]
movq xmm0, qword [esi]
movq qword [edx], xmm0
mov ecx, dword [esi + 8]
mov dword [edx + 8], ecx
movzx ecx, word [esi + 0xc]
mov esi, edi
mov word [edx + 0xc], cx
add edx, 0xd
jmp 0x49d496
lea edi, [esi + 0xe]
movq xmm0, qword [esi]
movq qword [edx], xmm0
mov ecx, dword [esi + 8]
mov dword [edx + 8], ecx
movzx ecx, word [esi + 0xc]
mov esi, edi
mov word [edx + 0xc], cx
add edx, 0xe
jmp 0x49d496
add esi, 0xf
add edx, 0xf
movzx ecx, byte [esi]
test cl, cl
jns 0x49cfc0
mov ebx, dword [esi]
mov ecx, esi
mov esi, ebx
and esi, 0xc0c0f0
cmp esi, 0x8080e0
mov dword [esp + 0x10], ecx
mov esi, ecx
jne 0x49d4e8
mov edi, ebx
and edi, 0x200f
je 0x49d4e8
cmp edi, 0x200d
je 0x49d4e8
mov dword [edx], ebx
add edx, 3
mov ebx, dword [esi + 3]
add esi, 3
mov edi, ebx
and edi, 0xc0c0f0
cmp edi, 0x8080e0
je 0x49d4bb
test bl, bl
jns 0x49d240
mov edi, ebx
and edi, 0xc0e0
cmp edi, 0x80c0
jne 0x49d515
mov edi, ebx
and edi, 0x1e
je 0x49d515
mov word [edx], bx
add edx, 2
mov ebx, dword [esi + 2]
add esi, 2
jmp 0x49d4f0
mov edi, ebx
and edi, 0xc0c0c0f8
cmp edi, 0x808080f0
jne 0x49d230
mov edi, ebx
and edi, 0x3007
je 0x49d230
test bl, 4
je 0x49d54a
mov ecx, ebx
and ecx, 0x3003
jne 0x49d230
mov dword [edx], ebx
add edx, 4
mov ebx, dword [esi + 4]
add esi, 4
mov ecx, ebx
and ecx, 0xc0c0c0f8
cmp ecx, 0x808080f0
jne 0x49d230
mov ecx, ebx
and ecx, 0x3007
jne 0x49d537
jmp 0x49d230
test al, al
je 0x49e707
mov esi, dword [esp + 0x10]
movzx ecx, word [esi]
mov word [edx], cx
inc esi
inc edx
jmp 0x49d496
inc esi
mov dword [esp + 0x10], esi
mov dword [esp + 8], str.invalid_escaped_character_in_string
mov esi, dword [esp + 0x5c]
mov ecx, esi
mov ebx, dword [esp + 0x10]
mov edx, ebx
push dword [alc.realloc]
push 0xa
mov edi, dword [ebp + 8]
push edi
call dbg.is_truncated_end
add esp, 0xc
mov ecx, eax
xor cl, 1
test al, al
cmovne ebx, edi
mov eax, 0x4fe0e6
cmove eax, dword [esp + 8]
sub ebx, esi
mov edx, dword [alc.free]
mov dword [edx + 8], ebx
movzx ecx, cl
lea ecx, [ecx + ecx*4]
add ecx, 5
mov dword [edx], ecx
mov dword [edx + 4], eax
jmp 0x49bd55
mov dword [esp + 0x24], 0
cmp dword [esp + 0x50], 0
jle 0x49d874
lea eax, [esp + 0x290]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x50]
mov ecx, eax
shr ecx, 6
mov dword [esp + 0x38], ecx
and eax, 0x3f
mov dword [esp + 0xc], eax
je 0x49e5a5
mov eax, dword [esp + 0x24]
mov dword [esp + eax*8 + 0x294], 0
mov dword [esp + eax*8 + 0x290], 0
test eax, eax
je 0x49d80f
mov eax, 0x40
sub eax, dword [esp + 0xc]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
cmp eax, 0x18
jae 0x49dbb2
mov eax, dword [esp + 4]
mov ebx, eax
test al, 1
je 0x49d6e0
mov edx, dword [esp + 4]
mov eax, dword [esp + edx*8 + 0x290]
mov esi, dword [esp + edx*8 + 0x294]
mov ecx, dword [esp + 0xc]
shld esi, eax, cl
shl eax, cl
xor edi, edi
test cl, 0x20
cmovne esi, eax
mov dword [esp + 0x14], esi
cmovne eax, edi
mov edi, dword [esp + edx*8 + 0x28c]
mov dword [esp + 0x20], edi
mov ecx, dword [esp + 8]
shr edi, cl
mov ebx, dword [esp + edx*8 + 0x288]
mov esi, dword [esp + 0x20]
shrd ebx, esi, cl
test cl, 0x20
cmovne ebx, edi
mov ecx, 0
cmovne edi, ecx
or edi, dword [esp + 0x14]
or ebx, eax
mov eax, dword [esp + 0x38]
add eax, edx
mov dword [esp + eax*8 + 0x290], ebx
mov dword [esp + eax*8 + 0x294], edi
lea ebx, [edx - 1]
cmp dword [esp + 4], 1
je 0x49d80f
mov eax, dword [esp + 0x38]
lea eax, [esp + eax*8]
add eax, 0x290
mov dword [esp + 4], eax
mov dword [esp + 0x20], ebx
mov eax, dword [esp + ebx*8 + 0x290]
mov dword [esp + 0x48], eax
mov edi, eax
mov dword [esp + 0x44], ebx
mov ecx, dword [esp + 0xc]
shl edi, cl
mov dword [esp + 0x14], edi
test cl, 0x20
mov eax, 0
cmovne edi, eax
mov dword [esp + 0x40], edi
mov esi, dword [esp + ebx*8 + 0x28c]
mov dword [esp + 0x34], esi
mov edx, dword [esp + 8]
mov ecx, edx
shr esi, cl
mov eax, dword [esp + ebx*8 + 0x288]
mov edi, dword [esp + 0x34]
shrd eax, edi, cl
test dl, 0x20
cmovne eax, esi
mov edx, 0
cmovne esi, edx
or eax, dword [esp + 0x40]
mov ecx, dword [esp + 4]
mov dword [ecx + ebx*8], eax
mov edi, dword [esp + ebx*8 + 0x288]
mov dword [esp + 0x40], edi
mov ecx, dword [esp + 0xc]
shl edi, cl
test cl, 0x20
mov eax, edi
cmovne eax, edx
mov dword [esp + 0x34], eax
mov edx, dword [esp + ebx*8 + 0x294]
mov eax, dword [esp + 0x48]
shld edx, eax, cl
test cl, 0x20
cmovne edx, dword [esp + 0x14]
or edx, esi
mov eax, dword [esp + ebx*8 + 0x280]
mov esi, dword [esp + 4]
mov dword [esi + ebx*8 + 4], edx
mov esi, dword [esp + ebx*8 + 0x28c]
mov edx, dword [esp + 0x40]
shld esi, edx, cl
test cl, 0x20
cmovne esi, edi
mov edx, dword [esp + ebx*8 + 0x284]
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 8]
shr edx, cl
test cl, 0x20
mov edi, edx
mov ebx, 0
cmovne edi, ebx
mov ebx, dword [esp + 0x14]
shrd eax, ebx, cl
test byte [esp + 8], 0x20
cmovne eax, edx
or edi, esi
or eax, dword [esp + 0x34]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x44]
mov dword [ecx + edx*8 - 8], eax
mov dword [ecx + edx*8 - 4], edi
mov ebx, dword [esp + 0x20]
add ebx, 0xfffffffe
mov dword [esp + 0x20], ebx
jne 0x49d6ff
mov edx, dword [esp + 0x290]
mov eax, dword [esp + 0x294]
mov esi, edx
mov ecx, dword [esp + 0xc]
shl esi, cl
shld eax, edx, cl
xor edx, edx
test cl, 0x20
cmovne eax, esi
cmove edx, esi
mov esi, dword [esp + 0x38]
mov dword [esp + esi*8 + 0x290], edx
mov dword [esp + esi*8 + 0x294], eax
mov edx, dword [esp + 0x24]
add edx, esi
mov eax, dword [esp + edx*8 + 0x290]
xor ecx, ecx
or eax, dword [esp + edx*8 + 0x294]
setne cl
add edx, ecx
mov dword [esp + 0x24], edx
cmp dword [esp + 0x50], 0x40
jae 0x49daf2
jmp 0x49db08
mov eax, dword [esp + 0x50]
neg eax
mov ecx, eax
shr ecx, 6
mov dword [esp + 0x38], ecx
mov dword [esp + 0x50], eax
mov ecx, eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x2c], eax
and ecx, 0x3f
mov dword [esp + 0xc], ecx
je 0x49e6b7
mov eax, dword [esp + 0x2c]
mov dword [esp + eax*8 + 0x8c], 0
mov dword [esp + eax*8 + 0x88], 0
test eax, eax
je 0x49da88
mov eax, 0x40
sub eax, dword [esp + 0xc]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
cmp eax, 0x18
jae 0x49dd1d
mov eax, dword [esp + 4]
mov esi, eax
test al, 1
je 0x49d95f
mov edx, dword [esp + 4]
mov eax, dword [esp + edx*8 + 0x88]
mov esi, dword [esp + edx*8 + 0x8c]
mov ecx, dword [esp + 0xc]
shld esi, eax, cl
shl eax, cl
xor edi, edi
test cl, 0x20
cmovne esi, eax
mov dword [esp + 0x14], esi
cmovne eax, edi
mov edi, dword [esp + edx*8 + 0x84]
mov dword [esp + 0x20], edi
mov ecx, dword [esp + 8]
shr edi, cl
mov ebx, dword [esp + edx*8 + 0x80]
mov esi, dword [esp + 0x20]
shrd ebx, esi, cl
test cl, 0x20
cmovne ebx, edi
mov ecx, 0
cmovne edi, ecx
or edi, dword [esp + 0x14]
or ebx, eax
mov eax, dword [esp + 0x38]
add eax, edx
mov dword [esp + eax*8 + 0x88], ebx
mov dword [esp + eax*8 + 0x8c], edi
lea esi, [edx - 1]
cmp dword [esp + 4], 1
je 0x49da88
mov eax, dword [esp + 0x38]
lea eax, [esp + eax*8]
add eax, 0x88
mov dword [esp + 4], eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x44], esi
mov eax, dword [esp + esi*8 + 0x88]
mov dword [esp + 0x48], eax
mov edi, eax
mov ecx, dword [esp + 0xc]
shl edi, cl
mov dword [esp + 0x14], edi
test cl, 0x20
mov eax, 0
cmovne edi, eax
mov dword [esp + 0x40], edi
mov ebx, dword [esp + esi*8 + 0x84]
mov dword [esp + 0x34], ebx
mov edx, dword [esp + 8]
mov ecx, edx
shr ebx, cl
mov eax, dword [esp + esi*8 + 0x80]
mov edi, dword [esp + 0x34]
shrd eax, edi, cl
test dl, 0x20
cmovne eax, ebx
mov edx, 0
cmovne ebx, edx
or eax, dword [esp + 0x40]
mov ecx, dword [esp + 4]
mov dword [ecx + esi*8], eax
mov edi, dword [esp + esi*8 + 0x80]
mov dword [esp + 0x40], edi
mov ecx, dword [esp + 0xc]
shl edi, cl
test cl, 0x20
mov eax, edi
cmovne eax, edx
mov dword [esp + 0x34], eax
mov edx, dword [esp + esi*8 + 0x8c]
mov eax, dword [esp + 0x48]
shld edx, eax, cl
test cl, 0x20
cmovne edx, dword [esp + 0x14]
or edx, ebx
mov eax, dword [esp + esi*8 + 0x78]
mov ebx, dword [esp + 4]
mov dword [ebx + esi*8 + 4], edx
mov ebx, dword [esp + esi*8 + 0x84]
mov edx, dword [esp + 0x40]
shld ebx, edx, cl
test cl, 0x20
cmovne ebx, edi
mov edx, dword [esp + esi*8 + 0x7c]
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 8]
shr edx, cl
test cl, 0x20
mov edi, edx
mov esi, 0
cmovne edi, esi
mov esi, dword [esp + 0x14]
shrd eax, esi, cl
test byte [esp + 8], 0x20
cmovne eax, edx
or edi, ebx
or eax, dword [esp + 0x34]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x44]
mov dword [ecx + edx*8 - 8], eax
mov dword [ecx + edx*8 - 4], edi
mov esi, dword [esp + 0x20]
add esi, 0xfffffffe
mov dword [esp + 0x20], esi
jne 0x49d97e
mov eax, dword [esp + 0x88]
mov edx, eax
mov ecx, dword [esp + 0xc]
shl edx, cl
mov esi, dword [esp + 0x8c]
shld esi, eax, cl
xor eax, eax
test cl, 0x20
cmovne esi, edx
cmove eax, edx
mov ecx, dword [esp + 0x38]
mov dword [esp + ecx*8 + 0x88], eax
mov dword [esp + ecx*8 + 0x8c], esi
mov edx, dword [esp + 0x2c]
add edx, ecx
mov eax, dword [esp + edx*8 + 0x88]
xor ecx, ecx
or eax, dword [esp + edx*8 + 0x8c]
setne cl
add ecx, edx
mov dword [esp + 0x80], ecx
cmp dword [esp + 0x50], 0x40
jb 0x49db08
lea eax, [esp + 0x88]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x38]
shl eax, 3
push eax
push 0
push dword [esp + 0x34]
call sym._memset
add esp, 0xc
mov ecx, dword [esp + 0x80]
mov dword [esp + 4], 0
mov eax, 0
cmp ecx, dword [esp + 0x24]
jb 0x49db68
mov al, 1
ja 0x49db68
mov edx, ecx
sub edx, 1
jb 0x49dd09
mov esi, dword [esp + ecx*8 + 0x80]
mov edi, dword [esp + ecx*8 + 0x84]
mov eax, dword [esp + ecx*8 + 0x288]
mov ebx, dword [esp + ecx*8 + 0x28c]
mov dword [esp + 8], edi
mov ecx, edi
xor ecx, ebx
mov edi, esi
xor edi, eax
or edi, ecx
mov ecx, edx
je 0x49db28
cmp esi, eax
sbb dword [esp + 8], ebx
setae al
movzx ecx, al
add ecx, dword [esp + 0x58]
mov eax, dword [esp + 4]
adc eax, dword [esp + 0x4c]
mov edx, eax
xor eax, 0x7ff00000
or eax, ecx
je 0x49e521
xor eax, eax
cmp dword [esp + 0x28], 0x2d
sete al
shl eax, 0x1f
or edx, eax
mov edi, dword [esp + 0x1c]
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0x14
mov dword [edi + 0x28], ecx
mov dword [edi + 0x2c], edx
jmp 0x49bc58
mov esi, dword [esp + 0x24]
lea eax, [esi*8 - 8]
lea edx, [esp + esi*8]
add edx, 0x288
mov ecx, edx
sub ecx, eax
mov dword [esp + 4], esi
cmp ecx, edx
ja 0x49d662
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
add ecx, ebx
lea esi, [esp + ecx*8]
add esi, 0x290
mov edi, esi
sub edi, eax
mov dword [esp + 4], ebx
cmp edi, esi
ja 0x49d662
mov ebx, dword [esp + 0x24]
lea esi, [esp + ebx*8]
add esi, 0x290
mov edi, esi
sub edi, eax
mov dword [esp + 4], ebx
cmp edi, esi
ja 0x49d662
mov esi, dword [esp + 0x24]
lea eax, [esi - 1]
mov dword [esp + 4], esi
cmp eax, 0x1fffffff
ja 0x49d662
lea eax, [esp + ecx*8]
add eax, 0x288
sub edx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
cmp edx, 0x20
jb 0x49d662
add edx, 0xfffffff8
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
cmp edx, 0x20
jb 0x49d662
shl ecx, 3
mov esi, dword [esp + 0x24]
lea eax, [esi*8]
mov edx, esi
and edx, 0xfffffffc
and esi, 3
mov dword [esp + 4], esi
movd xmm0, dword [esp + 0xc]
movd xmm1, dword [esp + 8]
lea esi, [esp + 0x288]
add eax, esi
add eax, 0xffffffe8
mov esi, edx
neg esi
add ecx, esp
add ecx, 0x288
xor ebx, ebx
movdqu xmm2, xmmword [eax + ebx*8 + 0x18]
pshufd xmm2, xmm2, 0x4e
movdqu xmm3, xmmword [eax + ebx*8 + 8]
pshufd xmm3, xmm3, 0x4e
psllq xmm2, xmm0
psllq xmm3, xmm0
movdqu xmm4, xmmword [eax + ebx*8]
movdqu xmm5, xmmword [eax + ebx*8 + 0x10]
pshufd xmm5, xmm5, 0x4e
pshufd xmm4, xmm4, 0x4e
psrlq xmm5, xmm1
psrlq xmm4, xmm1
por xmm5, xmm2
por xmm4, xmm3
pshufd xmm2, xmm5, 0x4e
movdqu xmmword [ecx + ebx*8], xmm2
pshufd xmm2, xmm4, 0x4e
movdqu xmmword [ecx + ebx*8 - 0x10], xmm2
add ebx, 0xfffffffc
cmp esi, ebx
jne 0x49dc9b
cmp dword [esp + 0x24], edx
jne 0x49d662
jmp 0x49d80f
mov ecx, dword [esp + 0x58]
and ecx, 1
mov dword [esp + 4], 0
jmp 0x49db6b
mov esi, dword [esp + 0x2c]
lea eax, [esi*8 - 8]
lea edx, [esp + esi*8]
add edx, 0x80
mov ecx, edx
sub ecx, eax
mov dword [esp + 4], esi
cmp ecx, edx
ja 0x49d8e1
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x2c]
add ecx, ebx
lea esi, [esp + ecx*8]
add esi, 0x88
mov edi, esi
sub edi, eax
mov dword [esp + 4], ebx
cmp edi, esi
ja 0x49d8e1
mov ebx, dword [esp + 0x2c]
lea esi, [esp + ebx*8]
add esi, 0x88
mov edi, esi
sub edi, eax
mov dword [esp + 4], ebx
cmp edi, esi
ja 0x49d8e1
mov esi, dword [esp + 0x2c]
lea eax, [esi - 1]
mov dword [esp + 4], esi
cmp eax, 0x1fffffff
ja 0x49d8e1
lea eax, [esp + ecx*8]
add eax, 0x80
sub edx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
cmp edx, 0x20
jb 0x49d8e1
add edx, 0xfffffff8
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
cmp edx, 0x20
jb 0x49d8e1
shl ecx, 3
mov esi, dword [esp + 0x2c]
lea eax, [esi*8]
mov edx, esi
and edx, 0xfffffffc
and esi, 3
mov dword [esp + 4], esi
movd xmm0, dword [esp + 0xc]
movd xmm1, dword [esp + 8]
lea esi, [esp + 0x80]
add eax, esi
add eax, 0xffffffe8
mov esi, edx
neg esi
add ecx, esp
add ecx, 0x80
xor ebx, ebx
movdqu xmm2, xmmword [eax + ebx*8 + 0x18]
pshufd xmm2, xmm2, 0x4e
movdqu xmm3, xmmword [eax + ebx*8 + 8]
pshufd xmm3, xmm3, 0x4e
psllq xmm2, xmm0
psllq xmm3, xmm0
movdqu xmm4, xmmword [eax + ebx*8]
movdqu xmm5, xmmword [eax + ebx*8 + 0x10]
pshufd xmm5, xmm5, 0x4e
pshufd xmm4, xmm4, 0x4e
psrlq xmm5, xmm1
psrlq xmm4, xmm1
por xmm5, xmm2
por xmm4, xmm3
pshufd xmm2, xmm5, 0x4e
movdqu xmmword [ecx + ebx*8], xmm2
pshufd xmm2, xmm4, 0x4e
movdqu xmmword [ecx + ebx*8 - 0x10], xmm2
add ebx, 0xfffffffc
cmp esi, ebx
jne 0x49de06
cmp dword [esp + 0x2c], edx
jne 0x49d8e1
jmp 0x49da88
mov dword [esp + 0x1c], edi
lea ecx, [esp + 0x18]
call dbg.skip_spaces_and_comments
mov esi, dword [esp + 0x18]
test al, al
jne 0x49deee
movzx eax, word [esi]
cmp eax, 0x2a2f
jne 0x49deee
mov ebx, dword [esp + 0x5c]
mov ecx, ebx
mov edi, esi
mov edx, esi
push dword [alc.realloc]
push 8
mov esi, dword [ebp + 8]
push esi
call dbg.is_truncated_end
add esp, 0xc
mov ecx, eax
xor cl, 1
test al, al
cmovne edi, esi
mov eax, 0x4fe0e6
mov edx, str.unclosed_multiline_comment
cmovne edx, eax
sub edi, ebx
mov esi, dword [alc.free]
mov dword [esi + 8], edi
movzx eax, cl
lea eax, [eax + eax*2]
add eax, 5
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x49bd55
mov ebx, 5
mov esi, dword [esp + 0x10]
jmp 0x49b66b
mov edi, dword [esp + 0x1c]
mov edx, dword [ebp + 0x14]
jmp 0x49bdd8
mov esi, edi
mov edi, eax
mov dword [esp + 4], str.no_digit_after_minus_sign
mov eax, dword [alc.realloc]
test al, 0x10
jne 0x49e9ac
mov edx, ebx
jmp 0x49bd12
mov dword [esp + 0x14], esi
cmp al, 0x2e
jne 0x49eab3
movzx ecx, byte [ebx + 2]
test byte [ecx + 0x4fe4d8], 3
je 0x49ea9b
mov ecx, dword [esp + 0x30]
lea eax, [edx + ecx]
inc eax
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
movzx ecx, byte [eax + 1]
inc eax
mov dword [esp + 8], eax
cmp ecx, 0x30
je 0x49df41
mov eax, ecx
movzx ecx, byte [ecx + 0x4fe4d8]
test cl, 3
je 0x49eaab
add eax, 0xffffffd0
mov dword [esp + 4], eax
sar eax, 0x1f
mov dword [esp + 0xc], eax
dec dword [esp + 8]
jmp 0x49df97
mov esi, dword [esp + 0x10]
mov dword [esp + 4], eax
mov ecx, eax
sar ecx, 0x1f
mov dword [esp + 0xc], ecx
cmp edx, 0x2e
jne 0x49e720
mov dword [esp + 0x14], esi
mov eax, dword [esp + 8]
movzx eax, byte [eax + 2]
mov dword [esp + 0x10], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x49e9a0
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp + 0xc]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp + 0xc], esi
jmp 0x49dfe2
mov dword [esp + 0xc], edi
cmp edx, 0x2e
jne 0x49e720
mov dword [esp + 0x14], esi
mov eax, dword [esp + 8]
movzx eax, byte [eax + 3]
mov dword [esp + 0x10], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x49e994
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp + 0xc]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp + 0xc], esi
mov eax, dword [esp + 8]
movzx eax, byte [eax + 4]
mov dword [esp + 0x10], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x49e988
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp + 0xc]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp + 0xc], esi
mov eax, dword [esp + 8]
movzx eax, byte [eax + 5]
mov dword [esp + 0x10], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x49e97c
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp + 0xc]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp + 0xc], esi
mov eax, dword [esp + 8]
movzx eax, byte [eax + 6]
mov dword [esp + 0x10], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x49e970
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp + 0xc]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp + 0xc], esi
mov eax, dword [esp + 8]
movzx eax, byte [eax + 7]
mov dword [esp + 0x10], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x49e964
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp + 0xc]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp + 0xc], esi
mov eax, dword [esp + 8]
movzx eax, byte [eax + 8]
mov dword [esp + 0x10], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x49e938
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp + 0xc]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp + 0xc], esi
mov eax, dword [esp + 8]
movzx eax, byte [eax + 9]
mov dword [esp + 0x10], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x49e92c
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp + 0xc]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp + 0xc], esi
mov eax, dword [esp + 8]
movzx eax, byte [eax + 0xa]
mov dword [esp + 0x10], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x49e8b3
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp + 0xc]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp + 0xc], esi
mov eax, dword [esp + 8]
movzx eax, byte [eax + 0xb]
mov dword [esp + 0x10], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x49e8a7
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp + 0xc]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp + 0xc], esi
mov eax, dword [esp + 8]
movzx eax, byte [eax + 0xc]
mov dword [esp + 0x10], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x49e89b
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp + 0xc]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp + 0xc], esi
mov eax, dword [esp + 8]
movzx eax, byte [eax + 0xd]
mov dword [esp + 0x10], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x49e88f
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp + 0xc]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp + 0xc], esi
mov eax, dword [esp + 8]
movzx eax, byte [eax + 0xe]
mov dword [esp + 0x10], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x49e7c5
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp + 0xc]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp + 0xc], esi
mov eax, dword [esp + 8]
movzx eax, byte [eax + 0xf]
mov dword [esp + 0x10], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x49e7b9
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp + 0xc]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp + 0xc], esi
mov eax, dword [esp + 8]
movzx eax, byte [eax + 0x10]
mov dword [esp + 0x10], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x49e749
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp + 0xc]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp + 0xc], esi
mov eax, dword [esp + 8]
movzx eax, byte [eax + 0x11]
mov dword [esp + 0x10], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x49e73d
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp + 0xc]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp + 0xc], esi
mov eax, dword [esp + 8]
movzx eax, byte [eax + 0x12]
mov dword [esp + 0x10], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x49e731
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp + 0xc]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp + 0xc], esi
mov eax, dword [esp + 8]
movzx eax, byte [eax + 0x13]
mov dword [esp + 0x10], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x49e714
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp + 0xc]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp + 0xc], esi
mov ecx, dword [esp + 8]
movzx eax, byte [ecx + 0x14]
add ecx, 0x14
mov dword [esp + 0x10], eax
test byte [eax + 0x4fe4d8], 3
mov esi, ecx
jne 0x49b7ab
mov eax, dword [esp + 0x14]
inc eax
cmp eax, esi
je 0x49e944
mov ecx, esi
sub ecx, dword [esp + 0x14]
mov eax, ecx
sar eax, 0x1f
mov dword [esp + 8], 0
mov edx, 1
sub edx, ecx
mov dword [esp + 0x20], edx
mov edx, 0
sbb edx, eax
movzx eax, byte [esp + 0x10]
test byte [eax + 0x4fe4d8], 0x20
jne 0x49e953
cmp ecx, 0x159
jge 0x49c25a
mov dword [esp + 8], 0
mov dword [esp + 0x34], esi
mov edx, dword [ebp + 0x14]
mov ecx, dword [alc.realloc]
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 0x20]
jmp 0x49b9c3
mov dword [esp + 0xc], edi
cmp edx, 0x2e
jne 0x49e720
mov dword [esp + 0x14], esi
jmp 0x49e362
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x49e44a
mov byte [eax], 0
mov eax, esi
mov edx, dword [esp + 0x30]
sub eax, edx
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
mov edi, dword [esp + 0x1c]
jmp 0x49c679
movzx ecx, al
or ecx, 0x20
cmp ecx, 0x6e
mov ecx, dword [alc.realloc]
jne 0x49c60c
movzx ecx, ah
or ecx, 0x20
cmp ecx, 0x61
mov ecx, dword [alc.realloc]
jne 0x49c60c
shr eax, 0x10
movzx eax, al
or eax, 0x20
cmp eax, 0x6e
jne 0x49c60c
lea eax, [esi + 3]
mov esi, eax
mov dword [esp + 0x18], eax
cmp dword [esp + 0x3c], 0
je 0x49e6a5
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x49e4bb
mov byte [eax], 0
mov eax, dword [esp + 0x3c]
mov dword [eax], esi
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0x301
mov eax, dword [esp + 0x30]
mov dword [edi + 0x28], eax
jmp 0x49b65d
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x49e4e8
mov byte [eax], 0
mov esi, dword [esp + 0x10]
mov eax, esi
mov edi, dword [esp + 0x30]
sub eax, edi
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
mov edx, dword [esp + 0x1c]
mov dword [edx + 0x24], ecx
shl eax, 8
or eax, 1
mov dword [edx + 0x20], eax
mov dword [edx + 0x28], edi
mov eax, dword [esp + 0x3c]
mov dword [eax], esi
mov dword [esp + 0x18], esi
mov edi, edx
jmp 0x49bc60
mov eax, dword [alc.realloc]
test al, al
js 0x49ebee
test al, 0x10
je 0x49c852
mov eax, 0x7ff00000
xor ecx, ecx
cmp dword [esp + 0x28], 0x2d
mov edi, dword [esp + 0x1c]
mov dword [edi + 0x24], 0
mov edx, 0xfff00000
cmovne edx, eax
cmove ecx, ecx
mov dword [edi + 0x20], 0x14
mov dword [edi + 0x2c], edx
jmp 0x49bc55
cmp edi, 0x2d
mov edi, dword [esp + 0x1c]
mov dword [edi + 0x24], 0
mov eax, 0xfff00000
mov ecx, 0x7ff00000
cmove ecx, eax
mov dword [edi + 0x20], 0x14
mov dword [edi + 0x2c], ecx
mov dword [edi + 0x28], 0
jmp 0x49bc58
xor ebx, ebx
mov dword [esp + 0x4c], 0
jmp 0x49caa6
cmp dword [esp + 0x24], 0
je 0x49e7ac
mov ecx, dword [esp + 0x24]
mov eax, ecx
cmp ecx, 0x20
jb 0x49e66f
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
add eax, edi
lea ecx, [esp + eax*8]
add ecx, 0x288
lea esi, [edi*8 - 8]
mov edx, ecx
sub edx, esi
mov eax, edi
cmp edx, ecx
ja 0x49e66f
mov eax, dword [esp + 0x24]
lea edx, [esp + eax*8]
add edx, 0x288
mov edi, edx
sub edi, esi
cmp edi, edx
ja 0x49e66f
mov eax, dword [esp + 0x24]
lea esi, [eax - 1]
cmp esi, 0x1fffffff
ja 0x49e66f
sub edx, ecx
mov eax, dword [esp + 0x24]
cmp edx, 0x20
jb 0x49e66f
mov eax, dword [esp + 0x24]
lea edx, [eax*8]
mov ecx, eax
and ecx, 0xfffffffc
and eax, 3
lea esi, [esp + 0x288]
lea edi, [edx + esi]
add edx, esi
add edx, 0xfffffff8
mov esi, ecx
neg esi
mov ebx, dword [esp + 0x38]
lea edi, [edi + ebx*8]
add edi, 0xfffffff8
xor ebx, ebx
movdqu xmm0, xmmword [edx + ebx*8 - 0x10]
movdqu xmm1, xmmword [edx + ebx*8]
movdqu xmmword [edi + ebx*8], xmm1
movdqu xmmword [edi + ebx*8 - 0x10], xmm0
add ebx, 0xfffffffc
cmp esi, ebx
jne 0x49e648
cmp dword [esp + 0x24], ecx
je 0x49e7ac
lea edx, [eax - 1]
mov esi, eax
and esi, 3
je 0x49e755
mov ecx, dword [esp + 0x38]
lea edi, [esp + ecx*8]
add edi, 0x288
lea ecx, [eax - 1]
movq xmm0, qword [esp + eax*8 + 0x288]
movq qword [edi + eax*8], xmm0
mov eax, ecx
dec esi
jne 0x49e68a
jmp 0x49e757
movapd xmm0, xmmword [0x4fdef0]
movupd xmmword [edi + 0x20], xmm0
jmp 0x49b65d
cmp dword [esp + 0x2c], 0
je 0x49e90d
mov ecx, dword [esp + 0x2c]
mov eax, ecx
cmp ecx, 0x20
jae 0x49e7d1
lea edx, [eax - 1]
mov esi, eax
and esi, 3
je 0x49e8bf
mov ecx, dword [esp + 0x38]
lea edi, [esp + ecx*8]
add edi, 0x80
lea ecx, [eax - 1]
movq xmm0, qword [esp + eax*8 + 0x80]
movq qword [edi + eax*8], xmm0
mov eax, ecx
dec esi
jne 0x49e6ec
jmp 0x49e8c1
mov dword [esp + 8], str.invalid_UTF_8_encoding_in_string
jmp 0x49d59e
mov esi, dword [esp + 8]
add esi, 0x13
jmp 0x49e3b8
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x34], esi
jmp 0x49b38b
mov esi, dword [esp + 8]
add esi, 0x12
jmp 0x49e3b8
mov esi, dword [esp + 8]
add esi, 0x11
jmp 0x49e3b8
mov esi, dword [esp + 8]
add esi, 0x10
jmp 0x49e3b8
mov ecx, eax
cmp edx, 3
jb 0x49e7ac
mov eax, dword [esp + 0x38]
lea eax, [esp + eax*8]
add eax, 0x288
mov edx, ecx
movsd xmm0, qword [esp + ecx*8 + 0x288]
movsd qword [eax + ecx*8], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x280]
movsd qword [eax + ecx*8 - 8], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x278]
movsd qword [eax + ecx*8 - 0x10], xmm0
movq xmm0, qword [esp + ecx*8 + 0x270]
movq qword [eax + ecx*8 - 0x18], xmm0
add edx, 0xfffffffc
mov ecx, edx
jne 0x49e76a
mov eax, dword [esp + 0x38]
add dword [esp + 0x24], eax
jmp 0x49d864
mov esi, dword [esp + 8]
add esi, 0xf
jmp 0x49e3b8
mov esi, dword [esp + 8]
add esi, 0xe
jmp 0x49e3b8
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x2c]
add eax, edi
lea ecx, [esp + eax*8]
add ecx, 0x80
lea esi, [edi*8 - 8]
mov edx, ecx
sub edx, esi
mov eax, edi
cmp edx, ecx
ja 0x49e6d1
mov eax, dword [esp + 0x2c]
lea edx, [esp + eax*8]
add edx, 0x80
mov edi, edx
sub edi, esi
cmp edi, edx
ja 0x49e6d1
mov eax, dword [esp + 0x2c]
lea esi, [eax - 1]
cmp esi, 0x1fffffff
ja 0x49e6d1
sub edx, ecx
mov eax, dword [esp + 0x2c]
cmp edx, 0x20
jb 0x49e6d1
mov eax, dword [esp + 0x2c]
lea edx, [eax*8]
mov ecx, eax
and ecx, 0xfffffffc
and eax, 3
lea esi, [esp + 0x80]
lea edi, [edx + esi]
add edx, esi
add edx, 0xfffffff8
mov esi, ecx
neg esi
mov ebx, dword [esp + 0x38]
lea edi, [edi + ebx*8]
add edi, 0xfffffff8
xor ebx, ebx
movdqu xmm0, xmmword [edx + ebx*8 - 0x10]
movdqu xmm1, xmmword [edx + ebx*8]
movdqu xmmword [edi + ebx*8], xmm1
movdqu xmmword [edi + ebx*8 - 0x10], xmm0
add ebx, 0xfffffffc
cmp esi, ebx
jne 0x49e866
cmp dword [esp + 0x2c], ecx
jne 0x49e6d1
jmp 0x49e90d
mov esi, dword [esp + 8]
add esi, 0xd
jmp 0x49e3b8
mov esi, dword [esp + 8]
add esi, 0xc
jmp 0x49e3b8
mov esi, dword [esp + 8]
add esi, 0xb
jmp 0x49e3b8
mov esi, dword [esp + 8]
add esi, 0xa
jmp 0x49e3b8
mov ecx, eax
cmp edx, 3
jb 0x49e90d
mov eax, dword [esp + 0x38]
lea eax, [esp + eax*8]
add eax, 0x80
mov edx, ecx
movsd xmm0, qword [esp + ecx*8 + 0x80]
movsd qword [eax + ecx*8], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x78]
movsd qword [eax + ecx*8 - 8], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x70]
movsd qword [eax + ecx*8 - 0x10], xmm0
movq xmm0, qword [esp + ecx*8 + 0x68]
movq qword [eax + ecx*8 - 0x18], xmm0
add edx, 0xfffffffc
mov ecx, edx
jne 0x49e8d4
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x38]
mov dword [esp + 0x80], eax
cmp dword [esp + 0x50], 0x40
jae 0x49dae7
jmp 0x49db08
mov esi, dword [esp + 8]
add esi, 9
jmp 0x49e3b8
mov esi, dword [esp + 8]
add esi, 8
jmp 0x49e3b8
mov dword [esp + 4], str.no_digit_after_decimal_point
mov edx, esi
jmp 0x49bd12
mov dword [esp + 0x34], esi
mov eax, dword [esp + 0x20]
mov ecx, edx
mov edx, eax
jmp 0x49b8d8
mov esi, dword [esp + 8]
add esi, 7
jmp 0x49e3b8
mov esi, dword [esp + 8]
add esi, 6
jmp 0x49e3b8
mov esi, dword [esp + 8]
add esi, 5
jmp 0x49e3b8
mov esi, dword [esp + 8]
add esi, 4
jmp 0x49e3b8
mov esi, dword [esp + 8]
add esi, 3
jmp 0x49e3b8
mov esi, dword [esp + 8]
add esi, 2
jmp 0x49e3b8
xor ecx, ecx
cmp dword [esp + 0x28], 0x2d
sete dl
lea eax, [edi - 0x49]
cmp eax, 0x25
ja case.0x49e9cc.74
mov cl, dl
mov edx, ebx
sub edx, ecx
mov dword [esp + 0x30], edx
jmp dword [eax*4 + 0x501d70]
movzx ecx, byte [ebx + 1]
or ecx, 0x20
cmp ecx, 0x6e
jne 0x49eace
movzx ecx, byte [ebx + 2]
or ecx, 0x20
cmp ecx, 0x66
jne 0x49eace
mov ecx, ebx
lea eax, [ebx + 3]
mov dword [esp + 0x10], eax
movzx ecx, byte [ebx + 3]
or ecx, 0x20
cmp ecx, 0x69
jne 0x49ea3f
movzx ecx, byte [ebx + 4]
or ecx, 0x20
cmp ecx, 0x6e
jne 0x49ea3f
movzx ecx, byte [ebx + 5]
or ecx, 0x20
cmp ecx, 0x69
jne 0x49ea3f
movzx ecx, byte [ebx + 6]
or ecx, 0x20
cmp ecx, 0x74
jne 0x49ea3f
movzx ecx, byte [ebx + 7]
or ecx, 0x20
cmp ecx, 0x79
jne 0x49ea3f
add ebx, 8
mov dword [esp + 0x10], ebx
cmp byte [esp + 0x64], 0
je 0x49ebbd
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x49ea57
mov byte [ecx], 0
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
mov dword [ecx], eax
mov ecx, eax
mov edi, eax
mov eax, dword [esp + 0x30]
sub ecx, eax
mov edx, ecx
sar edx, 0x1f
shld edx, ecx, 8
mov ebx, esi
mov dword [esi + 0x24], edx
shl ecx, 8
or ecx, 1
mov dword [esi + 0x20], ecx
mov dword [esi + 0x28], eax
mov esi, edi
mov dword [esp + 0x18], edi
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov ecx, dword [alc.realloc]
mov edi, ebx
jmp 0x49bca8
add ebx, 2
mov dword [esp + 4], str.no_digit_after_decimal_point
jmp case.0x49e9cc.74
mov eax, dword [esp + 8]
mov dword [esp + 0x14], eax
test cl, 3
jne 0x49ec04
test cl, 0x20
jne 0x49ec16
mov esi, dword [esp + 0x14]
jmp 0x49c25a
cmp edi, 0x4e
jne case.0x49e9cc.74
movzx ecx, byte [ebx + 1]
or ecx, 0x20
cmp ecx, 0x61
jne case.0x49e9cc.74
movzx ecx, byte [ebx + 2]
or ecx, 0x20
cmp ecx, 0x6e
jne case.0x49e9cc.74
add ebx, 3
cmp byte [esp + 0x64], 0
je 0x49eb7c
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x49eb0e
mov byte [ecx], 0
cmp dword [esp + 0x28], 0x2d
mov ecx, 0x401
mov eax, 0x301
cmove eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [ecx], ebx
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], 0
mov eax, dword [esp + 0x30]
mov dword [esi + 0x28], eax
mov dword [esp + 0x18], ebx
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov ecx, dword [alc.realloc]
mov edi, esi
mov esi, ebx
jmp 0x49bca8
mov dword [esp + 8], str.invalid_high_surrogate_in_string
jmp 0x49d59e
mov dword [esp + 8], str.no_low_surrogate_in_string
mov dword [esp + 0x10], esi
jmp 0x49d59e
mov dword [esp + 8], str.invalid_low_surrogate_in_string
mov dword [esp + 0x10], esi
jmp 0x49d59e
xor eax, eax
cmp dword [esp + 0x28], 0x2d
mov edi, esi
mov dword [esi + 0x24], 0
mov dword [esi + 0x20], 0x14
mov ecx, 0xfff80000
mov esi, 0x7ff80000
cmove esi, ecx
cmove eax, eax
mov dword [edi + 0x2c], esi
mov dword [edi + 0x28], eax
mov dword [esp + 0x18], ebx
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov ecx, dword [alc.realloc]
mov esi, ebx
jmp 0x49bca8
cmp dword [esp + 0x28], 0x2d
mov edi, esi
mov dword [esi + 0x24], 0
mov eax, 0xfff00000
mov ecx, 0x7ff00000
cmove ecx, eax
mov dword [esi + 0x20], 0x14
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], 0
jmp 0x49bc58
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x49ebfb
mov byte [eax], 0
mov esi, dword [esp + 0x10]
jmp 0x49e44a
mov edx, dword [esp + 0x14]
dec edx
mov dword [esp + 4], str.number_with_leading_zero_is_not_allowed
jmp 0x49bd12
mov esi, dword [esp + 0x14]
movzx eax, byte [esi + 1]
movzx eax, byte [eax + 0x4fe4d8]
and al, 0xc
cmp al, 1
sbb esi, 0
movzx eax, byte [esi + 2]
add esi, 2
test byte [eax + 0x4fe4d8], 3
je 0x49ec75
movzx eax, byte [esi + 1]
inc esi
test byte [eax + 0x4fe4d8], 3
jne 0x49ec3c
jmp 0x49c25a
mov dword [esp + 8], str.unexpected_control_character_in_string
jmp 0x49d59e
mov dword [esp + 8], str.unclosed_string
jmp 0x49d59e
mov ebx, 0x40
sub ebx, eax
jmp 0x49c43f
mov dword [esp + 4], str.no_digit_after_exponent_sign
jmp 0x49c1fe