Function at 0x49ace0
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 [ebp + 0x1c]
mov dword [esp + 0x30], edx
mov dword [esp + 0x18], edx
push 0x30
push dword [ebp + 0x18]
call dword [ebp + 0xc]
add esp, 8
test eax, eax
je 0x49bb36
mov edi, eax
test bl, 0x20
mov ecx, ebx
mov eax, ebx
jne 0x49bb70
and eax, 0x40
shr eax, 6
mov dword [esp + 0x64], 0
mov dword [esp + 0x74], 0
mov edx, 0
test cl, cl
jns 0x49ad49
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 + 0x4fdf06], 2
jne 0x49adae
cmp ebx, 0x6d
jg 0x49b08c
cmp ebx, 0x22
je 0x49b1c0
cmp ebx, 0x66
jne 0x49b168
mov esi, dword [esp + 0x30]
cmp dword [esi + 1], 0x65736c61
jne 0x49c3dc
mov eax, dword [esp + 0x60]
mov dword [eax + 4], 0
mov dword [eax], 3
add esi, 5
jmp 0x49b429
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 0x49bf98
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 + 0x4fe3f8], 2
je 0x49bc1a
add eax, 0xffffffd0
movzx edx, byte [ebx + 1]
lea esi, [edx - 0x30]
cmp esi, 9
mov dword [esp + 8], ebx
ja 0x49bc61
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 0x49bcb4
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 0x49bd04
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 0x49bd2e
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 0x49bd58
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 0x49bd82
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 0x49bdac
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 0x49bdd6
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 0x49be00
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 0x49be2a
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 0x49be54
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 0x49be7e
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 0x49bea8
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 0x49bed2
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 0x49befc
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 0x49bf22
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 0x49bf48
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 0x49bf6e
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 + 0x4fe3f8]
test dl, 0x33
je 0x49b0c4
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 0x49b053
mov esi, dword [esp + 8]
movzx esi, byte [esi + 0x14]
test byte [esi + 0x4fe3f8], 0x33
je 0x49b4a7
test dl, 0x20
jne 0x49b149
cmp byte [esp + 0x10], 0x2e
jne 0x49b571
mov ecx, dword [esp + 8]
movzx edx, byte [ecx + 0x14]
add ecx, 0x14
mov dword [esp + 0x10], edx
test byte [edx + 0x4fe3f8], 3
je 0x49b62c
mov dword [esp + 0x14], edi
jmp 0x49b57b
cmp ebx, 0x6e
je 0x49b404
cmp ebx, 0x74
jne 0x49b168
mov esi, dword [esp + 0x30]
cmp dword [esi], 0x65757274
jne 0x49c3dc
mov eax, dword [esp + 0x60]
mov dword [eax + 4], 0
mov dword [eax], 0xb
jmp 0x49b426
mov ebx, dword [esp + 0x28]
cmp ebx, 0x2d
mov edx, dword [esp + 4]
jne 0x49b46d
mov eax, 0x80000000
mov ecx, edx
neg ecx
sbb eax, edi
jae 0x49b46d
mov ecx, dword [ebp + 0x1c]
test cl, cl
mov eax, dword [ebp + 8]
js 0x49c427
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 [0x4fdde0]
subpd xmm0, xmmword [0x4fddf0]
mov dword [ebx + 0x20], 0x14
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
xorpd xmm1, xmmword [0x4fde00]
movlpd qword [ebx + 0x28], xmm1
mov dword [esp + 0x18], esi
mov edx, dword [ebp + 0x14]
jmp 0x49ba78
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 0x49b6a8
mov dword [esp + 0x1c], edi
test cl, 0x10
mov edi, ecx
jne 0x49c3a4
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 fcn.0049ea60
add esp, 0xc
movzx edx, al
mov ecx, 6
sub ecx, edx
test al, al
cmovne ebx, edi
mov eax, 0x4fe006
mov edx, str.unexpected_character
cmovne edx, eax
sub ebx, esi
mov eax, dword [ebp + 0x20]
mov dword [eax + 8], ebx
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x49bb25
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 + 0x4fdf06], 0xc
jne 0x49b32f
add edx, 8
nop word cs:[eax + eax]
movzx ecx, byte [edx - 7]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49b2ef
movzx ecx, byte [edx - 6]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49b2f4
movzx ecx, byte [edx - 5]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49b2f9
movzx ecx, byte [edx - 4]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49b2fe
movzx ecx, byte [edx - 3]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49b303
movzx ecx, byte [edx - 2]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49b308
movzx ecx, byte [edx - 1]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49b30d
movzx ecx, byte [edx]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49b32f
movzx ecx, byte [edx + 1]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49b310
movzx ecx, byte [edx + 2]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49b313
movzx ecx, byte [edx + 3]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49b318
movzx ecx, byte [edx + 4]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49b31d
movzx ecx, byte [edx + 5]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49b322
movzx ecx, byte [edx + 6]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49b327
movzx ecx, byte [edx + 7]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49b32c
movzx ecx, byte [edx + 8]
add edx, 0x10
test byte [ecx + 0x4fdf06], 0xc
je 0x49b1f0
add edx, 0xfffffff8
jmp 0x49b32f
add edx, 0xfffffff9
jmp 0x49b32f
add edx, 0xfffffffa
jmp 0x49b32f
add edx, 0xfffffffb
jmp 0x49b32f
add edx, 0xfffffffc
jmp 0x49b32f
add edx, 0xfffffffd
jmp 0x49b32f
add edx, 0xfffffffe
jmp 0x49b32f
dec edx
jmp 0x49b32f
inc edx
jmp 0x49b32f
add edx, 2
jmp 0x49b32f
add edx, 3
jmp 0x49b32f
add edx, 4
jmp 0x49b32f
add edx, 5
jmp 0x49b32f
add edx, 6
jmp 0x49b32f
add edx, 7
mov dword [esp + 0x10], edx
mov dword [esp + 0x28], 0
cmp cl, 0x22
je 0x49b435
test cl, cl
jns 0x49cd8a
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
mov edx, ecx
and edx, 0xc0c0f0
cmp edx, 0x8080e0
jne 0x49b390
mov edx, dword [esp + 0x10]
mov esi, ecx
and esi, 0x200f
je 0x49b394
cmp esi, 0x200d
je 0x49b394
mov ecx, dword [edx + 3]
add edx, 3
mov esi, ecx
and esi, 0xc0c0f0
cmp esi, 0x8080e0
je 0x49b366
jmp 0x49b394
mov edx, dword [esp + 0x10]
test cl, cl
jns 0x49b1d2
mov esi, ecx
and esi, 0xc0e0
cmp esi, 0x80c0
jne 0x49b3c1
mov esi, ecx
and esi, 0x1e
je 0x49b3c1
mov ecx, dword [edx + 2]
add edx, 2
jmp 0x49b39c
mov ecx, dword [edx + 4]
add edx, 4
mov esi, ecx
and esi, 0xc0c0c0f8
cmp esi, 0x808080f0
jne 0x49b3e8
mov esi, ecx
and esi, 0x3007
je 0x49b3e8
test cl, 4
je 0x49b3bb
and ecx, 0x3003
je 0x49b3bb
cmp dword [esp + 0x10], edx
jne 0x49b1d2
test al, al
je 0x49e4d7
mov edx, dword [esp + 0x10]
inc edx
jmp 0x49b1d2
mov esi, dword [esp + 0x30]
mov eax, dword [esi]
cmp eax, 0x6c6c756e
jne 0x49c3d3
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 0x49ba78
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 0x49ba2c
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 0x49ba2c
add ecx, 0xffffffd0
cmp dword [esp + 4], 0x99999999
mov esi, dword [esp + 0xc]
sbb esi, 0x19999999
jb 0x49b4e8
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 0x49b053
cmp ecx, 5
ja 0x49b053
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 0x49b609
mov esi, ebx
mov ecx, dword [ebp + 0x1c]
test cl, cl
mov edi, dword [esp + 0x1c]
js 0x49c42b
movd xmm0, eax
movd xmm1, edx
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x4fdde0]
mov dword [edi + 0x24], 0
subpd xmm0, xmmword [0x4fddf0]
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
xorpd xmm1, xmmword [0x4fde00]
mov dword [edi + 0x20], 0x14
movlpd qword [edi + 0x28], xmm1
jmp 0x49c398
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 + 0x4fe3f8]
inc edi
inc ecx
test dl, 3
jne 0x49b590
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 0x49b641
mov eax, dword [ebp + 0x1c]
test al, al
jns 0x49b5d4
mov dh, dl
and dh, 0x30
je 0x49c8f5
cmp bl, 0x2e
jne 0x49b63b
movzx ecx, byte [edi]
test byte [ecx + 0x4fe3f8], 3
je 0x49bad8
mov eax, esi
nop dword [eax + eax]
movzx ecx, byte [eax + 1]
inc eax
movzx edx, byte [ecx + 0x4fe3f8]
test dl, 3
jne 0x49b5f0
mov dword [esp + 0x14], esi
mov esi, eax
jmp 0x49b641
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 0x49ba30
mov dword [esp + 4], str.no_digit_after_decimal_point
mov edx, ecx
jmp 0x49bae5
mov eax, esi
mov dword [esp + 0x14], esi
lea eax, [esi - 1]
jmp 0x49b651
dec eax
movzx ecx, byte [eax]
cmp ecx, 0x30
je 0x49b650
cmp ecx, 0x2e
je 0x49b650
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 0x49b764
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 + 0x4fe3f8], 0xc
setne al
movzx ecx, byte [esi + eax + 1]
test byte [ecx + 0x4fe3f8], 3
je 0x49c00e
add esi, eax
mov ebx, esi
nop word [eax + eax]
movzx edx, byte [esi + 1]
inc esi
inc ebx
cmp edx, 0x30
je 0x49b6e0
test byte [edx + 0x4fe3f8], 3
je 0x49b72a
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 + 0x4fe3f8], 3
mov edi, esi
jne 0x49b700
jmp 0x49b72e
xor eax, eax
xor ecx, ecx
mov edx, esi
sub edx, ebx
cmp edx, 0x13
jge 0x49c01f
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 0x49bfd8
mov edi, edx
cmp edx, 0x135
sbb ecx, 0
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x1c]
jge 0x49bfdf
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x6c], edi
test ebx, 0xffe00000
jne 0x49b7ec
cmp edi, 0xffffffea
jl 0x49b7ec
cmp edi, 0x16
jg 0x49b7ec
movd xmm1, dword [esp + 4]
movd xmm0, ebx
punpckldq xmm1, xmm0
punpckldq xmm1, xmmword [0x4fdde0]
subpd xmm1, xmmword [0x4fddf0]
movapd xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm0, xmm1
test edi, edi
mov eax, dword [ebp + 8]
js 0x49ba3b
mulsd xmm0, qword [edi*8 + 0x4fe340]
jmp 0x49ba4c
cmp dword [esp + 8], 0
sete cl
cmp edi, 0xfffffece
setge dl
cmp edi, 0x120
setl al
test cl, dl
je 0x49c007
mov dword [esp + 0x10], esi
test al, al
mov esi, dword [esp + 4]
mov dword [esp + 0xc], ebx
je 0x49c058
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 + 0x4ffa68]
mov eax, edi
mul esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x44], edx
mov ecx, dword [ecx + 0x4ffa6c]
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 0x49b9a9
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
mov eax, dword [esp + 0x20]
add eax, eax
mov esi, dword [eax*8 + 0x4ffa74]
mov eax, dword [eax*8 + 0x4ffa70]
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 0x49c0c3
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 [ebp + 0x1c]
jmp 0x49ba78
shl edi, 3
mov eax, 0x4fe340
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 0x49ba6f
xorpd xmm0, xmmword [0x4fde00]
movsd qword [edi + 0x28], xmm0
mov dword [esp + 0x18], esi
cmp esi, eax
jb 0x49bb83
mov eax, dword [ebp + 0x10]
cmp byte [esp + 0x64], 0
je 0x49ba97
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x49ba97
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 [ebp + 0x18]
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 [ebp + 0x1c]
test cl, 1
jne 0x49bbf7
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 [ebp + 0x1c]
push 9
push eax
mov ebx, edx
mov edi, eax
call fcn.0049ea60
add esp, 0xc
test al, al
cmovne ebx, edi
mov ecx, 0x4fe006
cmove ecx, dword [esp + 4]
sub ebx, esi
mov edx, dword [ebp + 0x20]
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 [ebp + 0x18]
call dword [ebp + 0x14]
add esp, 8
xor edi, edi
jmp 0x49bace
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 fcn.0049ea60
add esp, 0xc
test al, al
je 0x49bbfe
sub edi, dword [esp + 0x5c]
mov eax, dword [ebp + 0x20]
mov dword [eax + 8], edi
mov dword [eax], 5
mov dword [eax + 4], 0x4fe006
jmp 0x49bb32
and eax, 0x40
shr eax, 6
mov dword [esp + 0x74], 0
jmp 0x49ad3f
test cl, 2
jne 0x49ba80
test cl, 8
jne 0x49dc44
dec esi
movzx eax, byte [esi + 1]
inc esi
test byte [eax + 0x4fdf06], 1
jne 0x49bb96
mov dword [esp + 0x18], esi
mov eax, dword [ebp + 8]
cmp esi, eax
jae 0x49ba80
mov ebx, esi
mov esi, dword [esp + 0x5c]
mov ecx, esi
mov edx, ebx
push dword [ebp + 0x1c]
push 4
push eax
call fcn.0049ea60
add esp, 0xc
movzx ecx, al
or ecx, 4
test al, al
cmovne ebx, dword [ebp + 8]
mov eax, 0x4fe006
mov edx, str.unexpected_content_after_document
cmovne edx, eax
sub ebx, esi
mov eax, dword [ebp + 0x20]
mov dword [eax + 8], ebx
mov dword [eax], ecx
mov dword [eax + 4], edx
push edi
jmp 0x49bb29
xor eax, eax
jmp 0x49bacb
sub esi, dword [esp + 0x5c]
mov eax, dword [ebp + 0x20]
mov dword [eax + 8], esi
mov dword [eax], 2
mov dword [eax + 4], str.memory_allocation_failed
jmp 0x49bb32
cmp eax, 0x30
jne 0x49dcca
lea esi, [ebx + 1]
movzx eax, byte [ebx + 1]
movzx ecx, byte [eax + 0x4fe3f8]
test cl, 0x33
jne 0x49dce8
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 0x49c04c
lea ecx, [ebx + 1]
mov dword [esp + 0x10], ecx
test byte [edx + 0x4fe3f8], 0x30
jne 0x49dd49
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 0x49ba28
lea esi, [ebx + 2]
test byte [edx + 0x4fe3f8], 0x30
mov dword [esp + 4], eax
jne 0x49dda1
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 0x49ba2c
mov dword [esp + 4], eax
lea esi, [ebx + 3]
test byte [ecx + 0x4fe3f8], 0x30
je 0x49bf82
mov dword [esp + 0xc], edi
cmp ecx, 0x2e
jne 0x49e4f0
mov dword [esp + 0x14], esi
jmp 0x49ddea
mov dword [esp + 4], eax
lea esi, [ebx + 4]
test byte [edx + 0x4fe3f8], 0x30
je 0x49bf82
mov dword [esp + 0xc], edi
cmp edx, 0x2e
jne 0x49e4f0
mov dword [esp + 0x14], esi
jmp 0x49de22
mov dword [esp + 4], eax
lea esi, [ebx + 5]
test byte [ecx + 0x4fe3f8], 0x30
je 0x49bf82
mov dword [esp + 0xc], edi
cmp ecx, 0x2e
jne 0x49e4f0
mov dword [esp + 0x14], esi
jmp 0x49de5a
mov dword [esp + 4], eax
lea esi, [ebx + 6]
test byte [edx + 0x4fe3f8], 0x30
je 0x49bf82
mov dword [esp + 0xc], edi
cmp edx, 0x2e
jne 0x49e4f0
mov dword [esp + 0x14], esi
jmp 0x49de92
mov dword [esp + 4], eax
lea esi, [ebx + 7]
test byte [ecx + 0x4fe3f8], 0x30
je 0x49bf82
mov dword [esp + 0xc], edi
cmp ecx, 0x2e
jne 0x49e4f0
mov dword [esp + 0x14], esi
jmp 0x49deca
mov dword [esp + 4], eax
lea esi, [ebx + 8]
test byte [edx + 0x4fe3f8], 0x30
je 0x49bf82
mov dword [esp + 0xc], edi
cmp edx, 0x2e
jne 0x49e4f0
mov dword [esp + 0x14], esi
jmp 0x49df02
mov dword [esp + 4], eax
lea esi, [ebx + 9]
test byte [ecx + 0x4fe3f8], 0x30
je 0x49bf82
mov dword [esp + 0xc], edi
cmp ecx, 0x2e
jne 0x49e4f0
mov dword [esp + 0x14], esi
jmp 0x49df3a
mov dword [esp + 4], eax
lea esi, [ebx + 0xa]
test byte [edx + 0x4fe3f8], 0x30
je 0x49bf82
mov dword [esp + 0xc], edi
cmp edx, 0x2e
jne 0x49e4f0
mov dword [esp + 0x14], esi
jmp 0x49df72
mov dword [esp + 4], eax
lea esi, [ebx + 0xb]
test byte [ecx + 0x4fe3f8], 0x30
je 0x49bf82
mov dword [esp + 0xc], edi
cmp ecx, 0x2e
jne 0x49e4f0
mov dword [esp + 0x14], esi
jmp 0x49dfaa
mov dword [esp + 4], eax
lea esi, [ebx + 0xc]
test byte [edx + 0x4fe3f8], 0x30
je 0x49bf82
mov dword [esp + 0xc], edi
cmp edx, 0x2e
jne 0x49e4f0
mov dword [esp + 0x14], esi
jmp 0x49dfe2
mov dword [esp + 4], eax
lea esi, [ebx + 0xd]
test byte [ecx + 0x4fe3f8], 0x30
je 0x49bf82
mov dword [esp + 0xc], edi
cmp ecx, 0x2e
jne 0x49e4f0
mov dword [esp + 0x14], esi
jmp 0x49e01a
mov dword [esp + 4], eax
lea esi, [ebx + 0xe]
test byte [edx + 0x4fe3f8], 0x30
je 0x49bf82
mov dword [esp + 0xc], edi
cmp edx, 0x2e
jne 0x49e4f0
mov dword [esp + 0x14], esi
jmp 0x49e052
mov dword [esp + 4], eax
lea esi, [ebx + 0xf]
test byte [ecx + 0x4fe3f8], 0x30
je 0x49bf82
mov dword [esp + 0xc], edi
cmp ecx, 0x2e
jne 0x49e4f0
mov dword [esp + 0x14], esi
jmp 0x49e08a
mov dword [esp + 4], eax
lea esi, [ebx + 0x10]
test byte [edx + 0x4fe3f8], 0x30
je 0x49bf82
mov dword [esp + 0xc], edi
cmp edx, 0x2e
jne 0x49e4f0
mov dword [esp + 0x14], esi
jmp 0x49e0c2
mov dword [esp + 4], eax
lea esi, [ebx + 0x11]
test byte [ecx + 0x4fe3f8], 0x30
je 0x49bf82
mov dword [esp + 0xc], edi
cmp ecx, 0x2e
jne 0x49e4f0
mov dword [esp + 0x14], esi
jmp 0x49e0fa
mov dword [esp + 4], eax
lea esi, [ebx + 0x12]
test byte [edx + 0x4fe3f8], 0x30
jne 0x49e1f7
xor eax, eax
mov ecx, dword [esp + 4]
neg ecx
sbb eax, edi
xor edx, edx
cmp dword [esp + 0x28], 0x2d
jmp 0x49b47a
lea eax, [esp + 0x80]
lea ecx, [esp + 0x18]
mov edx, dword [esp + 0x3c]
push eax
push dword [esp + 0x64]
push dword [ebp + 0x1c]
call fcn.0049ed80
add esp, 0xc
mov esi, dword [esp + 0x18]
test al, al
jne 0x49ba30
mov eax, dword [esp + 0x80]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov edx, esi
jmp 0x49bae5
xor eax, eax
cmp ebx, 0x2d
jmp 0x49c031
test cl, cl
js 0x49e20d
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 0x49bae5
cmp ebx, 0x2d
jmp 0x49c48a
xor eax, eax
jmp 0x49b80e
lea edx, [esi + eax]
inc edx
mov dword [esp + 4], str.no_digit_after_exponent_sign
jmp 0x49bae2
cmp byte [esp + 0x10], 0x2d
jne 0x49c463
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 0x49ba2c
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 + 0x4ffa6c]
mov dword [esp + 0x54], eax
mov eax, dword [edi + 0x4ffa68]
mov dword [esp + 0x50], eax
mov eax, dword [edi + 0x4ffa74]
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 0x49c58b
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 0x49c5fc
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 [ebp + 0x1c]
mov esi, dword [esp + 0x10]
jg 0x49c60b
shrd ebx, edi, 0xb
shr edi, 0xb
cmp edx, 0xfffffbc2
jle 0x49c84d
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 0x49c60b
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 0x49c369
cmp eax, dword [esp + 0x50]
mov eax, dword [esp + 0x68]
sbb dword [esp + 0x48], eax
jb 0x49c636
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 0x49b42d
mov edx, dword [esp + 0x1c]
cmp ebx, 0x49
je 0x49c4be
cmp ebx, 0x69
je 0x49c4be
cmp ebx, 0x4e
mov edi, dword [ebp + 0x1c]
jne 0x49b177
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + 1]
jmp 0x49c88b
test cl, 0x10
jne 0x49e234
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 fcn.0049ea60
add esp, 0xc
test al, al
cmovne esi, edi
mov eax, 5
mov ecx, 0xb
cmovne ecx, eax
mov eax, 0x4fe006
mov edx, str.invalid_literal
cmovne edx, eax
sub esi, ebx
mov eax, dword [ebp + 0x20]
mov dword [eax + 8], esi
jmp 0x49b1b6
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x49c438
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 0x49ba2c
mov eax, dword [ebp + 0x1c]
test al, al
js 0x49e20d
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 0x49bae5
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 [ebp + 0x1c]
mov dword [edi + 0x28], 0
jmp 0x49b13d
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + 1]
mov ecx, eax
or ecx, 0x20
cmp ecx, 0x6e
jne 0x49c87f
mov ecx, dword [esp + 0x30]
movzx ecx, byte [ecx + 2]
or ecx, 0x20
cmp ecx, 0x66
jne 0x49c87f
mov eax, dword [esp + 0x30]
lea edi, [eax + 3]
movzx eax, byte [eax + 3]
or eax, 0x20
cmp eax, 0x69
jne 0x49c542
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + 4]
or eax, 0x20
cmp eax, 0x6e
jne 0x49c542
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + 5]
or eax, 0x20
cmp eax, 0x69
jne 0x49c542
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + 6]
or eax, 0x20
cmp eax, 0x74
jne 0x49c542
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + 7]
or eax, 0x20
cmp eax, 0x79
jne 0x49c542
mov eax, dword [esp + 0x30]
lea edi, [eax + 8]
mov dword [esp + 0x18], edi
cmp dword [esp + 0x3c], 0
je 0x49cb17
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x49c55e
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 0x49cb26
mov edi, dword [esp + 0x48]
lea eax, [esi + 0x472]
cmp esi, 0xfffffb8f
cmovb eax, ecx
lea ecx, [eax - 0x44]
cmp ecx, 0xffffffbf
ja 0x49ea39
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 0x49c20f
mov dword [esp + 0x4c], 0
xor ebx, ebx
jmp 0x49c873
mov edi, dword [esp + 0x28]
test cl, cl
js 0x49e2ab
mov eax, dword [ebp + 0x1c]
test al, 0x10
jne 0x49e335
mov dword [esp + 4], str.number_is_infinity_when_parsed_as_double
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x30]
jmp 0x49bae5
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 fcn.0049efa0
add esp, 0x14
mov dword [esp + 0x290], edi
mov dword [esp + 0x294], esi
mov eax, dword [esp + 0x6c]
test eax, eax
js 0x49c927
cmp eax, 0x13
jb 0x49cac4
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x54], ecx
jmp 0x49c6ea
mov edx, dword [esp + 0x24]
lea eax, [edx - 0x13]
cmp edx, 0x25
jle 0x49cab9
mov edx, eax
test ecx, ecx
je 0x49c709
xor esi, esi
mov eax, dword [esp + esi*8 + 0x88]
or eax, dword [esp + esi*8 + 0x8c]
jne 0x49c711
inc esi
cmp ecx, esi
jne 0x49c6f2
jmp 0x49c6de
mov dword [esp + 0x24], edx
xor esi, esi
jmp 0x49c715
mov dword [esp + 0x24], edx
cmp esi, ecx
jae 0x49c6da
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 0x49c72d
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
or eax, dword [esp + 0x14]
je 0x49c6da
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 0x49c6da
cmp edx, 0xfffffb8f
jb 0x49e366
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 [ebp + 0x1c]
mov esi, dword [esp + 0x10]
jmp 0x49c337
cmp ebx, 0x4e
mov edi, dword [ebp + 0x1c]
jne 0x49b177
movzx eax, al
or eax, 0x20
cmp eax, 0x61
jne 0x49b177
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + 2]
or eax, 0x20
cmp eax, 0x6e
jne 0x49b177
mov eax, dword [esp + 0x30]
add eax, 3
mov esi, eax
mov dword [esp + 0x18], eax
cmp dword [esp + 0x3c], 0
je 0x49cc36
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x49c8d3
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 0x49ba30
mov eax, dword [esp + 0x3c]
mov edx, dword [eax]
test edx, edx
je 0x49c902
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 0x49c458
neg eax
mov dword [esp + 0x24], 1
cmp eax, 0x13
jb 0x49cc5d
mov dword [esp + 0x24], 1
mov dword [esp + 0x2c], 1
jmp 0x49c95c
mov ecx, dword [esp + 0x54]
lea eax, [ecx - 0x13]
cmp ecx, 0x25
jle 0x49cc4a
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x2c]
xor esi, esi
test ecx, ecx
je 0x49c981
mov eax, dword [esp + esi*8 + 0x290]
or eax, dword [esp + esi*8 + 0x294]
jne 0x49c981
inc esi
cmp ecx, esi
jne 0x49c96a
jmp 0x49c94c
cmp esi, dword [esp + 0x2c]
jae 0x49c94c
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 0x49c997
mov eax, dword [esp + 0x20]
or eax, dword [esp + 0x14]
je 0x49c94c
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 0x49c94c
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x24], 1
test eax, eax
je 0x49d3c2
mov ecx, dword [eax*8 + 0x500ebc]
mov dword [esp + 0x38], ecx
mov eax, dword [eax*8 + 0x500eb8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x14], eax
xor ecx, ecx
test eax, eax
je 0x49cb38
mov eax, dword [esp + ecx*8 + 0x88]
or eax, dword [esp + ecx*8 + 0x8c]
jne 0x49cb38
inc ecx
cmp dword [esp + 0x14], ecx
jne 0x49cafb
jmp 0x49d3c2
movapd xmm0, xmmword [0x4fde20]
mov ebx, edx
movupd xmmword [edx + 0x20], xmm0
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x1c]
mov esi, edi
mov edi, ebx
jmp 0x49ba78
cmp ecx, dword [esp + 0x14]
jae 0x49d3c2
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 0x49cb4c
mov eax, dword [esp + 0x20]
or eax, esi
je 0x49d3c2
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 0x49d3c2
movdqa xmm0, xmmword [0x4fde10]
mov edi, edx
movdqu xmmword [edx + 0x20], xmm0
jmp 0x49ba30
test eax, eax
je 0x49d3c2
cmp dword [esp + 0x24], 0
je 0x49d3ba
mov ecx, dword [eax*8 + 0x500ebc]
mov dword [esp + 0x44], ecx
mov eax, dword [eax*8 + 0x500eb8]
mov dword [esp + 0xc], eax
xor ecx, ecx
mov eax, dword [esp + ecx*8 + 0x290]
or eax, dword [esp + ecx*8 + 0x294]
jne 0x49cc91
inc ecx
cmp dword [esp + 0x24], ecx
jne 0x49cc75
jmp 0x49d3c2
cmp ecx, dword [esp + 0x24]
jae 0x49d3c2
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 0x49cca5
mov eax, dword [esp + 0x20]
or eax, esi
je 0x49d3c2
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 0x49d3c2
mov esi, dword [esp + 0x10]
mov edx, esi
cmp cl, 0x5c
jne 0x49cec8
movzx ecx, byte [esi + 1]
add ecx, 0xffffffde
cmp ecx, 0x53
ja case.0x49cda9.35
jmp dword [ecx*4 + 0x501d28]
mov byte [edx], 0x22
jmp 0x49ce94
mov byte [edx], 0xa
jmp 0x49ce94
mov byte [edx], 0x2f
jmp 0x49ce94
mov byte [edx], 8
jmp 0x49ce94
movzx ecx, byte [esi + 2]
mov ebx, esi
movzx esi, byte [ecx + 0x4fe17d]
movzx ecx, byte [ebx + 3]
movzx ecx, byte [ecx + 0x4fe17d]
movzx edi, byte [ebx + 4]
movzx edi, byte [edi + 0x4fe17d]
mov dword [esp + 8], edi
mov dword [esp + 0x10], ebx
movzx edi, byte [ebx + 5]
movzx edi, byte [edi + 0x4fe17d]
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 0x49d36e
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 0x49cef6
movzx ecx, cx
cmp ecx, 0x800
jb 0x49ce9d
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 0x49d010
mov byte [edx], 0x5c
jmp 0x49ce94
mov byte [edx], 0xd
jmp 0x49ce94
mov byte [edx], 0xc
jmp 0x49ce94
mov byte [edx], 9
inc edx
add esi, 2
jmp 0x49d010
cmp ecx, 0x80
jb 0x49cec0
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 0x49d010
mov byte [edx], bl
inc edx
jmp 0x49d010
mov dword [esp + 0x10], esi
movzx esi, cl
cmp esi, 0x22
je 0x49dcb0
test al, al
je 0x49ea1f
mov esi, dword [esp + 0x10]
cmp esi, dword [ebp + 8]
jae 0x49ea2c
mov esi, dword [esp + 0x10]
inc esi
mov byte [edx], cl
jmp 0x49cec2
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x49e91d
movzx ecx, word [esi]
cmp ecx, 0x755c
jne 0x49e92a
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 8]
movzx edi, byte [ecx + 0x4fe17d]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 9]
movzx ecx, byte [ecx + 0x4fe17d]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 0xa]
movzx ecx, byte [ecx + 0x4fe17d]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 0xb]
movzx ecx, byte [ecx + 0x4fe17d]
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 0x49e932
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 0x49e93b
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 0x49d010
cmp dword [esp + 0x10], esi
je 0x49d348
nop word [eax + eax]
movzx ecx, byte [esi]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49d266
movzx ecx, byte [esi + 1]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49d354
movzx ecx, byte [esi + 2]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49d132
movzx ecx, byte [esi + 3]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49d143
movzx ecx, byte [esi + 4]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49d152
movzx ecx, byte [esi + 5]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49d161
movzx ecx, byte [esi + 6]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49d17a
movzx ecx, byte [esi + 7]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49d193
movzx ecx, byte [esi + 8]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49d1a6
movzx ecx, byte [esi + 9]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49d1b9
movzx ecx, byte [esi + 0xa]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49d1d6
movzx ecx, byte [esi + 0xb]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49d1f0
movzx ecx, byte [esi + 0xc]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49d208
movzx ecx, byte [esi + 0xd]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49d220
movzx ecx, byte [esi + 0xe]
test byte [ecx + 0x4fdf06], 0xc
jne 0x49d240
movzx ecx, byte [esi + 0xf]
test byte [ecx + 0x4fdf06], 0xc
movdqu xmm0, xmmword [esi]
movdqu xmmword [edx], xmm0
jne 0x49d260
add esi, 0x10
add edx, 0x10
jmp 0x49d010
movzx ecx, word [esi]
add esi, 2
mov word [edx], cx
add edx, 2
jmp 0x49d266
mov ecx, dword [esi]
add esi, 3
mov dword [edx], ecx
add edx, 3
jmp 0x49d266
mov ecx, dword [esi]
add esi, 4
mov dword [edx], ecx
add edx, 4
jmp 0x49d266
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 0x49d266
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 0x49d266
movq xmm0, qword [esi]
add esi, 7
movq qword [edx], xmm0
add edx, 7
jmp 0x49d266
movq xmm0, qword [esi]
add esi, 8
movq qword [edx], xmm0
add edx, 8
jmp 0x49d266
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 0x49d266
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 0x49d266
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 0x49d266
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 0x49d266
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 0x49d266
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 0x49d266
add esi, 0xf
add edx, 0xf
movzx ecx, byte [esi]
test cl, cl
jns 0x49cd90
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 0x49d2b8
mov edi, ebx
and edi, 0x200f
je 0x49d2b8
cmp edi, 0x200d
je 0x49d2b8
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 0x49d28b
test bl, bl
jns 0x49d010
mov edi, ebx
and edi, 0xc0e0
cmp edi, 0x80c0
jne 0x49d2e5
mov edi, ebx
and edi, 0x1e
je 0x49d2e5
mov word [edx], bx
add edx, 2
mov ebx, dword [esi + 2]
add esi, 2
jmp 0x49d2c0
mov edi, ebx
and edi, 0xc0c0c0f8
cmp edi, 0x808080f0
jne 0x49d000
mov edi, ebx
and edi, 0x3007
je 0x49d000
test bl, 4
je 0x49d31a
mov ecx, ebx
and ecx, 0x3003
jne 0x49d000
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 0x49d000
mov ecx, ebx
and ecx, 0x3007
jne 0x49d307
jmp 0x49d000
test al, al
je 0x49e4d7
mov esi, dword [esp + 0x10]
movzx ecx, word [esi]
mov word [edx], cx
inc esi
inc edx
jmp 0x49d266
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 [ebp + 0x1c]
push 0xa
mov edi, dword [ebp + 8]
push edi
call fcn.0049ea60
add esp, 0xc
mov ecx, eax
xor cl, 1
test al, al
cmovne ebx, edi
mov eax, 0x4fe006
cmove eax, dword [esp + 8]
sub ebx, esi
mov edx, dword [ebp + 0x20]
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 0x49bb25
mov dword [esp + 0x24], 0
cmp dword [esp + 0x50], 0
jle 0x49d644
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 0x49e375
mov eax, dword [esp + 0x24]
mov dword [esp + eax*8 + 0x294], 0
mov dword [esp + eax*8 + 0x290], 0
test eax, eax
je 0x49d5df
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 0x49d982
mov eax, dword [esp + 4]
mov ebx, eax
test al, 1
je 0x49d4b0
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 0x49d5df
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 0x49d4cf
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 0x49d8c2
jmp 0x49d8d8
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 0x49e487
mov eax, dword [esp + 0x2c]
mov dword [esp + eax*8 + 0x8c], 0
mov dword [esp + eax*8 + 0x88], 0
test eax, eax
je 0x49d858
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 0x49daed
mov eax, dword [esp + 4]
mov esi, eax
test al, 1
je 0x49d72f
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 0x49d858
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 0x49d74e
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 0x49d8d8
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 sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov ecx, dword [esp + 0x80]
mov dword [esp + 4], 0
mov eax, 0
cmp ecx, dword [esp + 0x24]
jb 0x49d938
mov al, 1
ja 0x49d938
mov edx, ecx
sub edx, 1
jb 0x49dad9
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 0x49d8f8
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 0x49e2f1
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 0x49ba28
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 0x49d432
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 0x49d432
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 0x49d432
mov esi, dword [esp + 0x24]
lea eax, [esi - 1]
mov dword [esp + 4], esi
cmp eax, 0x1fffffff
ja 0x49d432
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 0x49d432
add edx, 0xfffffff8
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
cmp edx, 0x20
jb 0x49d432
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 0x49da6b
cmp dword [esp + 0x24], edx
jne 0x49d432
jmp 0x49d5df
mov ecx, dword [esp + 0x58]
and ecx, 1
mov dword [esp + 4], 0
jmp 0x49d93b
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 0x49d6b1
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 0x49d6b1
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 0x49d6b1
mov esi, dword [esp + 0x2c]
lea eax, [esi - 1]
mov dword [esp + 4], esi
cmp eax, 0x1fffffff
ja 0x49d6b1
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 0x49d6b1
add edx, 0xfffffff8
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
cmp edx, 0x20
jb 0x49d6b1
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 0x49dbd6
cmp dword [esp + 0x2c], edx
jne 0x49d6b1
jmp 0x49d858
mov dword [esp + 0x1c], edi
lea ecx, [esp + 0x18]
call fcn.0049ac40
mov esi, dword [esp + 0x18]
test al, al
jne 0x49dcbe
movzx eax, word [esi]
cmp eax, 0x2a2f
jne 0x49dcbe
mov ebx, dword [esp + 0x5c]
mov ecx, ebx
mov edi, esi
mov edx, esi
push dword [ebp + 0x1c]
push 8
mov esi, dword [ebp + 8]
push esi
call fcn.0049ea60
add esp, 0xc
mov ecx, eax
xor cl, 1
test al, al
cmovne edi, esi
mov eax, 0x4fe006
mov edx, str.unclosed_multiline_comment
cmovne edx, eax
sub edi, ebx
mov esi, dword [ebp + 0x20]
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 0x49bb25
mov ebx, 5
mov esi, dword [esp + 0x10]
jmp 0x49b43b
mov edi, dword [esp + 0x1c]
mov edx, dword [ebp + 0x14]
jmp 0x49bba8
mov esi, edi
mov edi, eax
mov dword [esp + 4], str.no_digit_after_minus_sign
mov eax, dword [ebp + 0x1c]
test al, 0x10
jne 0x49e77c
mov edx, ebx
jmp 0x49bae2
mov dword [esp + 0x14], esi
cmp al, 0x2e
jne 0x49e883
movzx ecx, byte [ebx + 2]
test byte [ecx + 0x4fe3f8], 3
je 0x49e86b
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 0x49dd11
mov eax, ecx
movzx ecx, byte [ecx + 0x4fe3f8]
test cl, 3
je 0x49e87b
add eax, 0xffffffd0
mov dword [esp + 4], eax
sar eax, 0x1f
mov dword [esp + 0xc], eax
dec dword [esp + 8]
jmp 0x49dd67
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 0x49e4f0
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 0x49e770
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 0x49ddb2
mov dword [esp + 0xc], edi
cmp edx, 0x2e
jne 0x49e4f0
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 0x49e764
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 0x49e758
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 0x49e74c
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 0x49e740
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 0x49e734
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 0x49e708
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 0x49e6fc
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 0x49e683
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 0x49e677
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 0x49e66b
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 0x49e65f
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 0x49e595
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 0x49e589
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 0x49e519
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 0x49e50d
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 0x49e501
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 0x49e4e4
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 + 0x4fe3f8], 3
mov esi, ecx
jne 0x49b57b
mov eax, dword [esp + 0x14]
inc eax
cmp eax, esi
je 0x49e714
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 + 0x4fe3f8], 0x20
jne 0x49e723
cmp ecx, 0x159
jge 0x49c02a
mov dword [esp + 8], 0
mov dword [esp + 0x34], esi
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x1c]
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 0x20]
jmp 0x49b793
mov dword [esp + 0xc], edi
cmp edx, 0x2e
jne 0x49e4f0
mov dword [esp + 0x14], esi
jmp 0x49e132
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x49e21a
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 0x49c449
movzx ecx, al
or ecx, 0x20
cmp ecx, 0x6e
mov ecx, dword [ebp + 0x1c]
jne 0x49c3dc
movzx ecx, ah
or ecx, 0x20
cmp ecx, 0x61
mov ecx, dword [ebp + 0x1c]
jne 0x49c3dc
shr eax, 0x10
movzx eax, al
or eax, 0x20
cmp eax, 0x6e
jne 0x49c3dc
lea eax, [esi + 3]
mov esi, eax
mov dword [esp + 0x18], eax
cmp dword [esp + 0x3c], 0
je 0x49e475
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x49e28b
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 0x49b42d
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x49e2b8
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 0x49ba30
mov eax, dword [ebp + 0x1c]
test al, al
js 0x49e9be
test al, 0x10
je 0x49c622
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 0x49ba25
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 0x49ba28
xor ebx, ebx
mov dword [esp + 0x4c], 0
jmp 0x49c876
cmp dword [esp + 0x24], 0
je 0x49e57c
mov ecx, dword [esp + 0x24]
mov eax, ecx
cmp ecx, 0x20
jb 0x49e43f
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 0x49e43f
mov eax, dword [esp + 0x24]
lea edx, [esp + eax*8]
add edx, 0x288
mov edi, edx
sub edi, esi
cmp edi, edx
ja 0x49e43f
mov eax, dword [esp + 0x24]
lea esi, [eax - 1]
cmp esi, 0x1fffffff
ja 0x49e43f
sub edx, ecx
mov eax, dword [esp + 0x24]
cmp edx, 0x20
jb 0x49e43f
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 0x49e418
cmp dword [esp + 0x24], ecx
je 0x49e57c
lea edx, [eax - 1]
mov esi, eax
and esi, 3
je 0x49e525
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 0x49e45a
jmp 0x49e527
movapd xmm0, xmmword [0x4fde10]
movupd xmmword [edi + 0x20], xmm0
jmp 0x49b42d
cmp dword [esp + 0x2c], 0
je 0x49e6dd
mov ecx, dword [esp + 0x2c]
mov eax, ecx
cmp ecx, 0x20
jae 0x49e5a1
lea edx, [eax - 1]
mov esi, eax
and esi, 3
je 0x49e68f
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 0x49e4bc
jmp 0x49e691
mov dword [esp + 8], str.invalid_UTF_8_encoding_in_string
jmp 0x49d36e
mov esi, dword [esp + 8]
add esi, 0x13
jmp 0x49e188
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x34], esi
jmp 0x49b15b
mov esi, dword [esp + 8]
add esi, 0x12
jmp 0x49e188
mov esi, dword [esp + 8]
add esi, 0x11
jmp 0x49e188
mov esi, dword [esp + 8]
add esi, 0x10
jmp 0x49e188
mov ecx, eax
cmp edx, 3
jb 0x49e57c
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 0x49e53a
mov eax, dword [esp + 0x38]
add dword [esp + 0x24], eax
jmp 0x49d634
mov esi, dword [esp + 8]
add esi, 0xf
jmp 0x49e188
mov esi, dword [esp + 8]
add esi, 0xe
jmp 0x49e188
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 0x49e4a1
mov eax, dword [esp + 0x2c]
lea edx, [esp + eax*8]
add edx, 0x80
mov edi, edx
sub edi, esi
cmp edi, edx
ja 0x49e4a1
mov eax, dword [esp + 0x2c]
lea esi, [eax - 1]
cmp esi, 0x1fffffff
ja 0x49e4a1
sub edx, ecx
mov eax, dword [esp + 0x2c]
cmp edx, 0x20
jb 0x49e4a1
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 0x49e636
cmp dword [esp + 0x2c], ecx
jne 0x49e4a1
jmp 0x49e6dd
mov esi, dword [esp + 8]
add esi, 0xd
jmp 0x49e188
mov esi, dword [esp + 8]
add esi, 0xc
jmp 0x49e188
mov esi, dword [esp + 8]
add esi, 0xb
jmp 0x49e188
mov esi, dword [esp + 8]
add esi, 0xa
jmp 0x49e188
mov ecx, eax
cmp edx, 3
jb 0x49e6dd
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 0x49e6a4
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x38]
mov dword [esp + 0x80], eax
cmp dword [esp + 0x50], 0x40
jae 0x49d8b7
jmp 0x49d8d8
mov esi, dword [esp + 8]
add esi, 9
jmp 0x49e188
mov esi, dword [esp + 8]
add esi, 8
jmp 0x49e188
mov dword [esp + 4], str.no_digit_after_decimal_point
mov edx, esi
jmp 0x49bae2
mov dword [esp + 0x34], esi
mov eax, dword [esp + 0x20]
mov ecx, edx
mov edx, eax
jmp 0x49b6a8
mov esi, dword [esp + 8]
add esi, 7
jmp 0x49e188
mov esi, dword [esp + 8]
add esi, 6
jmp 0x49e188
mov esi, dword [esp + 8]
add esi, 5
jmp 0x49e188
mov esi, dword [esp + 8]
add esi, 4
jmp 0x49e188
mov esi, dword [esp + 8]
add esi, 3
jmp 0x49e188
mov esi, dword [esp + 8]
add esi, 2
jmp 0x49e188
xor ecx, ecx
cmp dword [esp + 0x28], 0x2d
sete dl
lea eax, [edi - 0x49]
cmp eax, 0x25
ja case.0x49e79c.74
mov cl, dl
mov edx, ebx
sub edx, ecx
mov dword [esp + 0x30], edx
jmp dword [eax*4 + 0x501c90]
movzx ecx, byte [ebx + 1]
or ecx, 0x20
cmp ecx, 0x6e
jne 0x49e89e
movzx ecx, byte [ebx + 2]
or ecx, 0x20
cmp ecx, 0x66
jne 0x49e89e
mov ecx, ebx
lea eax, [ebx + 3]
mov dword [esp + 0x10], eax
movzx ecx, byte [ebx + 3]
or ecx, 0x20
cmp ecx, 0x69
jne 0x49e80f
movzx ecx, byte [ebx + 4]
or ecx, 0x20
cmp ecx, 0x6e
jne 0x49e80f
movzx ecx, byte [ebx + 5]
or ecx, 0x20
cmp ecx, 0x69
jne 0x49e80f
movzx ecx, byte [ebx + 6]
or ecx, 0x20
cmp ecx, 0x74
jne 0x49e80f
movzx ecx, byte [ebx + 7]
or ecx, 0x20
cmp ecx, 0x79
jne 0x49e80f
add ebx, 8
mov dword [esp + 0x10], ebx
cmp byte [esp + 0x64], 0
je 0x49e98d
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x49e827
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 [ebp + 0x1c]
mov edi, ebx
jmp 0x49ba78
add ebx, 2
mov dword [esp + 4], str.no_digit_after_decimal_point
jmp case.0x49e79c.74
mov eax, dword [esp + 8]
mov dword [esp + 0x14], eax
test cl, 3
jne 0x49e9d4
test cl, 0x20
jne 0x49e9e6
mov esi, dword [esp + 0x14]
jmp 0x49c02a
cmp edi, 0x4e
jne case.0x49e79c.74
movzx ecx, byte [ebx + 1]
or ecx, 0x20
cmp ecx, 0x61
jne case.0x49e79c.74
movzx ecx, byte [ebx + 2]
or ecx, 0x20
cmp ecx, 0x6e
jne case.0x49e79c.74
add ebx, 3
cmp byte [esp + 0x64], 0
je 0x49e94c
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x49e8de
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 [ebp + 0x1c]
mov edi, esi
mov esi, ebx
jmp 0x49ba78
mov dword [esp + 8], str.invalid_high_surrogate_in_string
jmp 0x49d36e
mov dword [esp + 8], str.no_low_surrogate_in_string
mov dword [esp + 0x10], esi
jmp 0x49d36e
mov dword [esp + 8], str.invalid_low_surrogate_in_string
mov dword [esp + 0x10], esi
jmp 0x49d36e
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 [ebp + 0x1c]
mov esi, ebx
jmp 0x49ba78
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 0x49ba28
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x49e9cb
mov byte [eax], 0
mov esi, dword [esp + 0x10]
jmp 0x49e21a
mov edx, dword [esp + 0x14]
dec edx
mov dword [esp + 4], str.number_with_leading_zero_is_not_allowed
jmp 0x49bae2
mov esi, dword [esp + 0x14]
movzx eax, byte [esi + 1]
movzx eax, byte [eax + 0x4fe3f8]
and al, 0xc
cmp al, 1
sbb esi, 0
movzx eax, byte [esi + 2]
add esi, 2
test byte [eax + 0x4fe3f8], 3
je 0x49ea45
movzx eax, byte [esi + 1]
inc esi
test byte [eax + 0x4fe3f8], 3
jne 0x49ea0c
jmp 0x49c02a
mov dword [esp + 8], str.unexpected_control_character_in_string
jmp 0x49d36e
mov dword [esp + 8], str.unclosed_string
jmp 0x49d36e
mov ebx, 0x40
sub ebx, eax
jmp 0x49c20f
mov dword [esp + 4], str.no_digit_after_exponent_sign
jmp 0x49bfce