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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x4b8
mov dword [esp + 0x5c], ecx
mov ebx, dword [ebp + 0x1c]
mov dword [esp + 0x20], edx
mov dword [esp + 0x10], edx
push 0x30
push dword [ebp + 0x18]
call dword [ebp + 0xc]
add esp, 8
test eax, eax
je 0x59b712
mov edi, eax
test bl, 0x20
jne 0x59b74e
xor eax, eax
mov dword [esp + 0x70], 0
mov ecx, 0
test bl, bl
jns 0x59a5b5
lea ecx, [esp + 0x70]
mov al, 1
mov esi, edi
add esi, 0x20
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x20]
movzx edx, byte [esi]
test byte [edx + 0x5ffc78], 2
mov dword [esp + 0x7c], eax
jne 0x59a61b
cmp dl, 0x6d
jg 0x59a8ec
cmp dl, 0x22
je 0x59aa28
cmp dl, 0x66
mov eax, edx
jne 0x59a9ca
mov esi, ebx
mov ebx, dword [esp + 0x20]
cmp dword [ebx + 1], 0x65736c61
jne 0x59be05
mov eax, dword [esp + 0x64]
mov dword [eax + 4], 0
mov dword [eax], 3
add ebx, 5
jmp 0x59ace6
mov dword [esp + 0x1c], edx
mov dword [esp + 0x6c], 0
test bl, bl
js 0x59a633
test ecx, ecx
jne 0x59bc1f
xor eax, eax
cmp byte [esp + 0x1c], 0x2d
sete al
mov esi, dword [esp + 0x20]
lea ebx, [esi + eax]
movzx eax, byte [esi + eax]
test byte [eax + 0x5ffe78], 2
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], ecx
je 0x59b7f5
add eax, 0xffffffd0
movzx edx, byte [ebx + 1]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x59b847
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 0x59b89c
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 0x59b8ec
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 0x59b91d
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 0x59b94e
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 0x59b97f
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 0x59b9b0
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 0x59b9e1
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 0x59ba12
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 0x59ba43
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 0x59ba74
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 0x59baa5
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 0x59bad6
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 0x59bb07
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 0x59bb38
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 0x59bb69
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 0x59bb96
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 0x59bbc3
mul ecx
add edi, edi
lea edi, [edi + edi*4]
add eax, esi
mov dword [esp + 4], eax
adc edi, edx
mov al, byte [ebx + 0x13]
add ebx, 0x13
mov dword [esp + 0xc], ebx
movzx ecx, al
mov dl, byte [ecx + 0x5ffe78]
test dl, 0x33
je 0x59a928
test dl, 3
je 0x59a8af
mov ebx, eax
mov eax, dword [esp + 0xc]
movzx esi, byte [eax + 1]
mov eax, ebx
test byte [esi + 0x5ffe78], 0x33
je 0x59ad78
test dl, 0x20
jne 0x59a9ad
mov dword [esp + 0x24], eax
cmp al, 0x2e
mov eax, dword [esp + 0x20]
jne 0x59ae3b
mov ecx, dword [esp + 0xc]
lea ebx, [ecx + 1]
movzx ecx, byte [ecx + 1]
mov dword [esp + 0x24], ecx
test byte [ecx + 0x5ffe78], 3
je 0x59af14
mov dword [esp], edi
jmp 0x59ae4a
cmp dl, 0x6e
je 0x59acbf
cmp dl, 0x74
mov eax, edx
jne 0x59a9ca
mov esi, ebx
mov ebx, dword [esp + 0x20]
cmp dword [ebx], 0x65757274
jne 0x59be05
mov eax, dword [esp + 0x64]
mov dword [eax + 4], 0
mov dword [eax], 0xb
jmp 0x59ace3
cmp byte [esp + 0x1c], 0x2d
mov edx, dword [esp + 4]
jne 0x59ad32
mov eax, SysReAllocString
mov ecx, edx
neg ecx
sbb eax, edi
jae 0x59ad32
mov ebx, dword [ebp + 0x1c]
test bl, bl
mov edx, dword [ebp + 0x14]
js 0x59be5d
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x20], 0x14
mov eax, dword [esp + 4]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edi
shr edi, 0x1f
fild qword [esp + 0x80]
fadd dword [edi*4 + 0x5ffc50]
mov edi, ecx
fstp qword [esp + 0x90]
fld qword [esp + 0x90]
fchs
fstp qword [ecx + 0x28]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
jmp 0x59b2ed
xor ecx, ecx
mov eax, dword [esp + 0xc]
xor edx, edx
mov dword [esp + 0x40], 0
mov dword [esp + 0x30], 0
jmp 0x59afb0
mov dword [esp + 0x18], edi
test bl, 0x10
mov esi, ebx
jne 0x59bdc7
mov ebx, dword [esp + 0x5c]
mov ecx, ebx
mov edi, dword [esp + 0x20]
mov edx, edi
push esi
push 6
mov esi, dword [ebp + 8]
push esi
call fcn.005a86b0
add esp, 0xc
sub esi, ebx
sub edi, ebx
movzx edx, al
mov ecx, 6
sub ecx, edx
test al, al
jne 0x59aa08
mov esi, edi
mov eax, str.unexpected_end_of_data
jne 0x59aa14
mov eax, str.unexpected_character
mov edx, dword [ebp + 0x20]
mov dword [edx + 8], esi
mov dword [edx], ecx
mov dword [edx + 4], eax
push dword [esp + 0x18]
jmp 0x59b702
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edi
mov edx, dword [esp + 0x20]
add edx, 1
mov ecx, edx
movzx eax, byte [ecx]
test byte [eax + 0x5ffc78], 0xc
jne 0x59ac76
add ecx, 8
mov edi, ecx
nop
nop
movzx eax, byte [edi - 7]
test byte [eax + 0x5ffc78], 0xc
jne 0x59ab53
movzx eax, byte [edi - 6]
test byte [eax + 0x5ffc78], 0xc
jne 0x59ab58
movzx eax, byte [edi - 5]
test byte [eax + 0x5ffc78], 0xc
jne 0x59ab5d
movzx eax, byte [edi - 4]
test byte [eax + 0x5ffc78], 0xc
jne 0x59ab62
movzx eax, byte [edi - 3]
test byte [eax + 0x5ffc78], 0xc
jne 0x59ab67
movzx eax, byte [edi - 2]
test byte [eax + 0x5ffc78], 0xc
jne 0x59ab6c
movzx eax, byte [edi - 1]
test byte [eax + 0x5ffc78], 0xc
jne 0x59ab71
movzx eax, byte [edi]
test byte [eax + 0x5ffc78], 0xc
jne 0x59ab97
movzx eax, byte [edi + 1]
test byte [eax + 0x5ffc78], 0xc
jne 0x59ab76
movzx eax, byte [edi + 2]
test byte [eax + 0x5ffc78], 0xc
jne 0x59ab7b
movzx eax, byte [edi + 3]
test byte [eax + 0x5ffc78], 0xc
jne 0x59ab80
movzx eax, byte [edi + 4]
test byte [eax + 0x5ffc78], 0xc
jne 0x59ab85
movzx eax, byte [edi + 5]
test byte [eax + 0x5ffc78], 0xc
jne 0x59ab8a
movzx eax, byte [edi + 6]
test byte [eax + 0x5ffc78], 0xc
jne 0x59ab8f
movzx eax, byte [edi + 7]
test byte [eax + 0x5ffc78], 0xc
jne 0x59ab94
movzx eax, byte [edi + 8]
add edi, 0x10
test byte [eax + 0x5ffc78], 0xc
je 0x59aa50
add edi, 0xfffffff8
jmp 0x59ab97
add edi, 0xfffffff9
jmp 0x59ab97
add edi, 0xfffffffa
jmp 0x59ab97
add edi, 0xfffffffb
jmp 0x59ab97
add edi, 0xfffffffc
jmp 0x59ab97
add edi, 0xfffffffd
jmp 0x59ab97
add edi, 0xfffffffe
jmp 0x59ab97
add edi, 0xffffffff
jmp 0x59ab97
add edi, 1
jmp 0x59ab97
add edi, 2
jmp 0x59ab97
add edi, 3
jmp 0x59ab97
add edi, 4
jmp 0x59ab97
add edi, 5
jmp 0x59ab97
add edi, 6
jmp 0x59ab97
add edi, 7
mov ebx, edx
mov ecx, 0xd
cmp al, 0x22
je 0x59acf4
mov dword [esp + 0x20], 0
test al, al
jns 0x59cde4
test dword [ebp + 0x1c], 0x40000000
jne 0x59ac7d
mov eax, dword [edi]
mov edx, eax
and edx, 0xc0c0f0
mov ecx, edi
cmp edx, 0x8080e0
jne 0x59abff
mov edx, eax
and edx, 0x200f
je 0x59abff
cmp edx, 0x200d
je 0x59abff
mov eax, dword [ecx + 3]
add ecx, 3
mov edx, eax
and edx, 0xc0c0f0
cmp edx, 0x8080e0
je 0x59abd7
test al, al
mov edx, ebx
jns 0x59aa39
jmp 0x59ac11
mov eax, dword [ecx + 2]
add ecx, 2
mov edx, eax
and edx, 0xc0e0
cmp edx, 0x80c0
jne 0x59ac30
mov edx, eax
and edx, 0x1e
jne 0x59ac0b
jmp 0x59ac30
mov eax, dword [ecx + 4]
add ecx, 4
mov edx, eax
and edx, 0xc0c0c0f8
cmp edx, 0x808080f0
jne 0x59ac55
mov edx, eax
and edx, 0x3007
je 0x59ac55
test al, 4
je 0x59ac2a
and eax, 0x3003
je 0x59ac2a
cmp edi, ecx
mov eax, dword [ebp + 0x1c]
mov edx, ebx
jne 0x59aa39
test al, 0x40
je 0x59df10
add edi, 1
mov ecx, edi
mov edx, ebx
jmp 0x59aa39
mov edi, ecx
jmp 0x59ab97
mov ecx, eax
add cl, 0x7f
cmp cl, 0x7d
ja 0x59aca7
add edi, 1
cmp byte [edi], 0
je 0x59d45b
movzx eax, byte [edi + 1]
mov ecx, eax
add cl, 0x7f
add edi, 2
cmp cl, 0x7e
jb 0x59ac8a
add edi, 0xffffffff
mov ecx, edi
cmp al, 0xff
mov edx, ebx
je 0x59acb7
cmp al, 0x80
jne 0x59aa39
add ecx, 1
jmp 0x59aa39
mov esi, ebx
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx]
cmp eax, 0x6c6c756e
jne 0x59bdfa
mov eax, dword [esp + 0x64]
mov dword [eax + 4], 0
mov dword [eax], 2
add ebx, 4
mov dword [esp + 0x10], ebx
mov ebx, esi
mov edx, dword [ebp + 0x14]
jmp 0x59b2f1
mov dword [esp + 0x20], 0
mov esi, edi
mov eax, esi
sub eax, ebx
mov edx, eax
sar edx, 0x1f
shld edx, eax, 8
or edx, dword [esp + 0x20]
shl eax, 8
or eax, ecx
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], edx
mov dword [ecx + 0x28], ebx
mov byte [esi], 0
add edi, 1
mov dword [esp + 0x10], edi
mov edi, ecx
jmp 0x59b2e7
xor eax, eax
mov ecx, edx
neg ecx
sbb eax, edi
mov esi, edx
xor edx, edx
mov ebx, dword [esp + 0x18]
mov dword [ebx + 0x24], 0
cmp byte [esp + 0x1c], 0x2d
sete dl
lea edx, [edx*8 + 4]
mov dword [ebx + 0x20], edx
je 0x59ad61
mov eax, edi
mov ecx, esi
mov edi, dword [esp + 0x18]
mov dword [edi + 0x28], ecx
mov dword [edi + 0x2c], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
jmp 0x59af05
add ecx, 0xffffffd0
cmp dword [esp + 4], 0x99999999
mov esi, edi
sbb esi, 0x19999999
jb 0x59adae
mov esi, 0x19999999
mov ebx, 0x99999999
xor ebx, dword [esp + 4]
xor esi, edi
or esi, ebx
jne 0x59a8af
cmp ecx, 5
ja 0x59a8af
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov ebx, dword [esp + 0xc]
add ebx, 1
lea esi, [edi + edi*4]
lea edx, [edx + esi*2]
mov esi, ecx
sar esi, 0x1f
add eax, ecx
adc edx, esi
cmp byte [esp + 0x1c], 0x2d
jne 0x59aee9
mov esi, ebx
mov ebx, dword [ebp + 0x1c]
test bl, bl
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
js 0x59c2f7
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0x14
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], edx
shr edx, 0x1f
fild qword [esp + 0x88]
fadd dword [edx*4 + 0x5ffc50]
fstp qword [esp + 0x98]
fld qword [esp + 0x98]
fchs
fstp qword [edi + 0x28]
mov dword [esp + 0x10], esi
mov edx, dword [ebp + 0x14]
jmp 0x59b2f1
mov dword [esp], edi
mov ebx, dword [esp + 0xc]
mov dword [esp + 0xc], 0
lea edi, [ebx + 1]
mov dword [esp + 0x28], ebx
mov ecx, ebx
sub ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [edi]
movzx edx, byte [ebx + 0x5ffe78]
add edi, 1
add ecx, 1
test dl, 3
jne 0x59ae60
xor eax, eax
cmp byte [esp + 0x24], 0x34
seta al
add dword [esp + 4], eax
mov eax, edi
adc dword [esp], 0
lea esi, [edi - 1]
cmp dword [esp + 0xc], 0
je 0x59ae9a
mov eax, esi
jmp 0x59af2d
mov eax, dword [ebp + 0x1c]
test al, al
jns 0x59aeac
mov dh, dl
and dh, 0x30
je 0x59c494
cmp bl, 0x2e
jne 0x59af27
mov eax, edi
movzx ecx, byte [edi]
test byte [ecx + 0x5ffe78], 3
mov edi, dword [esp]
je 0x59b69f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [eax + 1]
add eax, 1
movzx edx, byte [ecx + 0x5ffe78]
test dl, 3
jne 0x59aed0
mov dword [esp + 0xc], esi
jmp 0x59af30
mov edi, dword [esp + 0x18]
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 4
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], edx
mov dword [esp + 0x10], ebx
mov edx, dword [ebp + 0x14]
mov ecx, dword [esp + 0x14]
mov ebx, dword [ebp + 0x1c]
jmp 0x59b2f1
mov dword [esp + 0x3c], str.no_digit_after_decimal_point
mov dword [esp + 0x10], ebx
mov eax, ebx
jmp 0x59b6ab
mov eax, esi
mov dword [esp + 0xc], esi
mov edi, dword [esp]
mov dword [esp + 8], eax
add eax, 0xffffffff
mov ebx, dword [ebp + 0x1c]
jmp 0x59af43
add eax, 0xffffffff
movzx ecx, byte [eax]
cmp cl, 0x30
je 0x59af40
cmp cl, 0x2e
je 0x59af40
xor ecx, ecx
mov esi, dword [esp + 0xc]
sub esi, dword [esp + 0x28]
mov dword [esp + 0x24], esi
setb cl
mov esi, ecx
mov ecx, dword [esp + 0x24]
sar ecx, 0x1f
add esi, dword [esp + 0x24]
mov dword [esp + 0x2c], esi
adc ecx, 0
mov dword [esp + 0x24], ecx
mov dword [esp + 0x40], 0
mov dword [esp + 0x30], 0
mov esi, dword [esp + 0x28]
cmp eax, esi
mov eax, dword [esp + 8]
jb 0x59af9f
mov ecx, esi
mov dword [esp + 0x40], eax
mov dword [esp + 0x30], esi
test dl, 0x20
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
je 0x59b06c
mov dword [esp + 0x24], edx
movzx ebx, byte [eax + 1]
add eax, 1
mov esi, eax
mov al, byte [ebx + 0x5ffe78]
and al, 0xc
cmp al, 1
sbb esi, 0xffffffff
movzx edx, byte [esi]
test byte [edx + 0x5ffe78], 3
je 0x59bce7
cmp dl, 0x30
mov dword [esp], edi
mov dword [esp + 0x2c], ecx
mov dword [esp + 8], ebx
jne 0x59b009
nop
nop
nop
nop
nop
nop
movzx edx, byte [esi + 1]
add esi, 1
cmp edx, 0x30
je 0x59aff0
test byte [edx + 0x5ffe78], 3
je 0x59b395
xor eax, eax
xor ebx, ebx
mov edi, esi
nop
add dl, 0xd0
movzx ecx, dl
mov edx, 0xa
mul edx
add ebx, ebx
add eax, ecx
lea ebx, [ebx + ebx*4]
adc ebx, edx
movzx edx, byte [edi + 1]
add edi, 1
test byte [edx + 0x5ffe78], 3
jne 0x59b010
mov ecx, edi
sub ecx, esi
cmp ecx, 0x13
jge 0x59bcfa
xor ecx, ecx
mov edx, eax
neg edx
sbb ecx, ebx
cmp byte [esp + 8], 0x2d
je 0x59b056
mov ecx, ebx
mov edx, eax
mov eax, dword [esp + 0x2c]
add eax, edx
mov edx, dword [esp + 0x24]
adc edx, ecx
mov ecx, eax
mov ebx, dword [ebp + 0x1c]
mov eax, edi
mov edi, dword [esp]
mov dword [esp + 8], eax
mov eax, 0xfffffea8
cmp eax, ecx
mov eax, 0xffffffff
sbb eax, edx
jge 0x59bc4f
cmp ecx, 0x135
sbb edx, 0
jge 0x59bc88
mov dword [esp + 0x6c], ecx
lea eax, [ecx + 0x132]
cmp eax, 0x251
ja 0x59bcd0
cmp dword [esp + 0x30], 0
jne 0x59bcd0
mov eax, ecx
shl eax, 4
mov dword [esp + 0x28], eax
mov eax, ecx
test edi, edi
jne 0x59b0cf
bsr ecx, dword [esp + 4]
xor ecx, 0x1f
add ecx, 0x20
jmp 0x59b0d5
bsr ecx, edi
xor ecx, 0x1f
mov ebx, edi
mov edx, dword [esp + 4]
shld ebx, edx, cl
imul eax, eax, 0x3526a
mov dword [esp + 0x24], eax
mov eax, edx
shl eax, cl
mov esi, dword [esp + 0x28]
mov edx, dword [esi + 0x6014ec]
mov dword [esp + 0x44], edx
mov edx, dword [esi + 0x6014e8]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x34], 0
test cl, 0x20
mov dword [esp + 0x54], ecx
jne 0x59b119
mov esi, eax
jmp 0x59b11d
mov ebx, eax
xor esi, esi
mov dword [esp + 0x50], ebx
mov eax, dword [esp + 0x2c]
mul esi
mov dword [esp], edx
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0x44]
mov eax, ecx
mov dword [esp + 0x58], esi
mul esi
mov esi, eax
mov dword [esp + 0x38], edx
add dword [esp + 0x24], 0xffc10000
mov eax, dword [esp + 0x2c]
mul ebx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], eax
mov eax, ecx
mul ebx
mov ebx, eax
add esi, dword [esp]
adc ebx, dword [esp + 0x38]
adc edx, 0
add esi, dword [esp + 0x48]
mov dword [esp + 0x48], esi
adc ebx, dword [esp + 0x4c]
adc edx, 0
mov dword [esp + 0x4c], edx
mov eax, ebx
and eax, 0x1ff
add eax, 0xffffffff
mov ecx, 0
adc ecx, 0xffffffff
cmp eax, 0x1fe
sbb ecx, 0
jae 0x59b19e
mov esi, dword [esp + 0x4c]
jmp 0x59b24f
mov dword [esp], edi
mov edi, dword [esp + 0x28]
mov eax, dword [edi + 0x6014f0]
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x58]
mul ecx
mov dword [esp + 0x38], edx
mov esi, dword [edi + 0x6014f4]
mov eax, esi
mul ecx
mov ecx, edx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0x50]
mul edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x68], eax
mov dword [esp + 0x74], esi
mov eax, esi
mul edi
mov esi, edx
mov edx, dword [esp + 0x78]
add edx, dword [esp + 0x38]
adc ecx, 0
add edx, dword [esp + 0x68]
mov edx, dword [esp + 0x28]
adc edx, 0
add ecx, eax
adc esi, 0
add ecx, edx
adc esi, 0
mov edi, ecx
add edi, dword [esp + 0x60]
mov edx, esi
adc edx, dword [esp + 0x48]
mov dword [esp + 0x28], edi
add edi, 1
mov eax, edx
adc eax, 0
cmp edi, 2
sbb eax, 0
jb 0x59b358
mov edi, dword [esp + 0x28]
cmp edi, dword [esp + 0x60]
mov eax, edx
sbb eax, dword [esp + 0x48]
setb al
cmp edi, ecx
sbb edx, esi
setb cl
or cl, al
movzx eax, cl
add ebx, eax
mov esi, dword [esp + 0x4c]
adc esi, 0
mov edi, dword [esp + 0x24]
shr edi, 0x10
mov ecx, esi
not ecx
shr ecx, 0x1f
shld esi, ebx, cl
shl ebx, cl
mov edx, ebx
and edx, 0x400
add edx, ebx
adc esi, 0
sub edi, dword [esp + 0x54]
sub edi, ecx
cmp edx, 0x400
mov eax, esi
sbb eax, 0
setb bl
adc edi, 0
mov dword [esp + 0x24], edi
xor ecx, ecx
mov eax, 0
test bl, bl
jne 0x59b29f
mov eax, esi
shr eax, 0xb
and eax, 0xfffff
test bl, bl
mov edi, dword [esp + 0x18]
jne 0x59b2ad
shld esi, edx, 0x15
mov ecx, esi
xor edx, edx
cmp byte [esp + 0x1c], 0x2d
sete dl
shl edx, 0x1f
or eax, edx
mov edx, dword [esp + 0x24]
shl edx, 0x14
add edx, 0x47e00000
or eax, edx
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0x14
mov dword [edi + 0x28], ecx
mov dword [edi + 0x2c], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x10], eax
mov edx, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x1c]
mov ecx, dword [esp + 0x14]
test bl, 2
jne 0x59b303
mov esi, dword [esp + 0x10]
cmp esi, dword [ebp + 8]
jb 0x59b762
mov eax, dword [ebp + 0x10]
cmp byte [esp + 0x7c], 0
je 0x59b316
mov ecx, dword [ecx]
test ecx, ecx
je 0x59b316
mov byte [ecx], 0
mov ecx, dword [esp + 0x64]
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 + 0x10]
mov ecx, dword [esp + 0x5c]
sub eax, ecx
mov dword [edi + 0x14], eax
mov dword [edi + 0x18], 1
and ebx, 1
jne 0x59b75b
mov dword [edi + 0x1c], ecx
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor edi, edi
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x74]
xor eax, eax
cmp dword [esp + 0x30], 0
setne al
shl eax, 2
xor edx, edx
mov ecx, dword [esp + 0x54]
shld edx, eax, cl
shl eax, cl
test cl, 0x20
mov dword [esp + 0x38], edi
jne 0x59b3a0
mov dword [esp + 0x60], 0
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], edx
jmp 0x59b3b4
xor eax, eax
mov edi, esi
xor ebx, ebx
jmp 0x59b036
mov dword [esp + 0x60], 0
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], 0
sar esi, 0x10
mov dword [esp + 0x24], esi
shr ebx, 0x1f
add ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x44]
adc esi, 0
mov ecx, ebx
imul ecx, dword [esp + 0x34]
mov eax, ebx
mov edi, dword [esp + 0x58]
mul edi
add edx, ecx
mov dword [esp + 0x2c], edx
mov eax, esi
mul edi
mov dword [esp + 0x28], eax
mov ecx, edx
mov eax, dword [esp + 0x34]
imul eax, esi
mov dword [esp + 0x34], eax
mov edi, ebx
mov eax, ebx
mul dword [esp + 0x50]
mov dword [esp + 0x58], eax
mov dword [esp + 0x44], edx
mov ebx, dword [esp + 0x38]
imul edi, ebx
mov eax, esi
mul dword [esp + 0x50]
mov dword [esp + 0x50], eax
mov eax, edx
mov edx, dword [esp + 0x28]
imul ebx, esi
add edx, dword [esp + 0x2c]
mov esi, eax
adc ecx, dword [esp + 0x34]
add edx, dword [esp + 0x58]
mov eax, dword [esp + 0x44]
adc eax, edi
add ecx, dword [esp + 0x50]
adc esi, ebx
add ecx, eax
adc esi, 0
shr edx, 0x1f
add edx, ecx
adc esi, 0
xor eax, eax
mov ebx, dword [esp + 0x4c]
mov ecx, ebx
mov edi, dword [esp + 0x48]
or ecx, edi
sete al
sub ebx, eax
sbb edi, 0
add ebx, 9
adc edi, 0
test esi, esi
mov ecx, ebx
mov eax, edi
mov dword [esp + 0x4c], ebx
jne 0x59b477
bsr ecx, edx
xor ecx, 0x1f
add ecx, 0x20
jmp 0x59b47d
bsr ecx, esi
xor ecx, 0x1f
mov edi, dword [esp + 0x18]
shld esi, edx, cl
mov dword [esp + 0x2c], esi
shl edx, cl
mov esi, dword [esp + 0x24]
sub esi, dword [esp + 0x54]
sub esi, ecx
lea ebx, [esi + 0x40]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x4c]
shld eax, ebx, cl
shl ebx, cl
test cl, 0x20
je 0x59b4b3
mov dword [esp + 0x2c], edx
xor edx, edx
mov eax, ebx
xor ebx, ebx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x54]
cmp eax, 0xfffffb8f
jl 0x59b4cc
add esi, 0x4b2
mov dword [esp + 0x60], esi
mov esi, 0x35
cmp eax, 0xfffffbc2
jle 0x59bed4
mov dword [esp + 0x28], edx
cmp esi, 3
jle 0x59bedd
mov edx, 0x40
sub edx, esi
mov eax, dword [esp + 0x2c]
mov ecx, edx
shr eax, cl
mov esi, 0
test dl, 0x20
jne 0x59b504
mov esi, eax
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x28]
mov ecx, edx
mov ebx, dword [esp + 0x2c]
shrd eax, ebx, cl
test dl, 0x20
jne 0x59b522
mov dword [esp + 0x24], eax
mov eax, 0xffffffff
mov ebx, 0xffffffff
mov ecx, edx
shl ebx, cl
test dl, 0x20
jne 0x59b539
mov ecx, ebx
jmp 0x59b53d
xor ecx, ecx
mov eax, ebx
not eax
not ecx
mov ebx, dword [esp + 0x28]
and ebx, ecx
mov ecx, dword [esp + 0x2c]
and ecx, eax
shld ecx, ebx, 3
mov dword [esp + 0x2c], ecx
shl ebx, 3
mov dword [esp + 0x28], ebx
mov ecx, edx
add cl, 0xff
mov ebx, 8
xor eax, eax
shld eax, ebx, cl
shl ebx, cl
test cl, 0x20
mov ecx, dword [esp + 0x4c]
je 0x59b57a
mov eax, ebx
xor ebx, ebx
mov dword [esp + 0x34], ebx
add ebx, ecx
mov dword [esp + 0x44], eax
mov ecx, eax
adc ecx, dword [esp + 0x48]
mov dword [esp + 0x50], ebx
cmp dword [esp + 0x28], ebx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x38], ecx
sbb eax, ecx
setae al
movzx eax, al
mov ecx, dword [esp + 0x24]
add ecx, eax
adc esi, 0
mov eax, ecx
or eax, esi
je 0x59bf37
mov ebx, ecx
test esi, esi
jne 0x59b5c8
mov eax, ebx
bsr ecx, ebx
xor ecx, 0x1f
add ecx, 0x20
jmp 0x59b5d0
bsr ecx, esi
xor ecx, 0x1f
mov eax, ebx
mov ebx, dword [esp + 0x54]
add ebx, edx
mov edx, ebx
shld esi, eax, cl
shl eax, cl
test cl, 0x20
je 0x59b5e6
mov esi, eax
xor eax, eax
sub edx, ecx
cmp edx, 0x3c0
mov ecx, dword [esp + 0x14]
jg 0x59bd33
mov ebx, eax
shrd ebx, esi, 0xb
shr esi, 0xb
cmp edx, 0xfffffbc2
mov dword [esp + 0x24], ebx
jle 0x59c156
shl edx, 0x14
and esi, 0xfffff
lea eax, [edx + esi]
add eax, 0x43e00000
mov dword [esp + 0x54], eax
xor eax, 0x7ff00000
or eax, ebx
je 0x59bd33
mov esi, dword [esp + 0x34]
sub esi, dword [esp + 0x4c]
mov edx, dword [esp + 0x44]
sbb edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x28]
cmp ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x2c]
sbb eax, dword [esp + 0x38]
jae 0x59b661
cmp esi, ebx
sbb edx, dword [esp + 0x2c]
jb 0x59bf50
xor eax, eax
cmp byte [esp + 0x1c], 0x2d
sete al
shl eax, 0x1f
mov edx, dword [esp + 0x54]
or edx, eax
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0x14
mov eax, dword [esp + 0x24]
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], edx
mov eax, dword [esp + 8]
mov dword [esp + 0x10], eax
mov ebx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x14]
jmp 0x59b2f1
mov dword [esp + 0x3c], str.no_digit_after_decimal_point
mov dword [esp + 0x10], eax
mov edi, dword [esp + 0x18]
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x5c]
mov ecx, ebx
mov edx, eax
push dword [ebp + 0x1c]
push 9
mov esi, dword [ebp + 8]
push esi
call fcn.005a86b0
add esp, 0xc
sub esi, ebx
mov edx, dword [esp + 0x20]
sub edx, ebx
mov ecx, eax
xor cl, 1
test al, al
jne 0x59b6e1
mov eax, edx
mov esi, edx
movzx eax, cl
lea eax, [eax*4 + 5]
mov ecx, str.unexpected_end_of_data
jne 0x59b6f6
mov ecx, dword [esp + 0x3c]
mov edx, dword [ebp + 0x20]
mov dword [edx + 8], esi
mov dword [edx], eax
mov dword [edx + 4], ecx
push edi
push dword [ebp + 0x18]
call dword [ebp + 0x14]
add esp, 8
xor edi, edi
jmp 0x59b34e
mov edi, dword [esp + 0x5c]
mov ecx, edi
mov eax, ebx
mov ebx, dword [esp + 0x20]
mov edx, ebx
push eax
push 2
mov esi, dword [ebp + 8]
push esi
call fcn.005a86b0
add esp, 0xc
test al, al
je 0x59b7db
sub esi, edi
mov eax, dword [ebp + 0x20]
mov dword [eax + 8], esi
mov dword [eax], 5
mov dword [eax + 4], str.unexpected_end_of_data
jmp 0x59b70b
mov dword [esp + 0x70], 0
jmp 0x59a5af
xor ecx, ecx
jmp 0x59b34b
test bl, 8
jne 0x59d4b9
movzx eax, byte [esi]
test byte [eax + 0x5ffc78], 1
je 0x59b790
add esi, 1
mov dword [esp + 0x10], esi
movzx eax, byte [esi]
add esi, 1
test byte [eax + 0x5ffc78], 1
jne 0x59b77a
add esi, 0xffffffff
cmp esi, dword [ebp + 8]
jae 0x59b303
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x5c]
mov ecx, edi
mov edx, esi
push ebx
push 4
mov ebx, dword [ebp + 8]
push ebx
call fcn.005a86b0
add esp, 0xc
sub ebx, edi
sub esi, edi
movzx ecx, al
or ecx, 4
test al, al
jne 0x59b7c4
mov ebx, esi
mov eax, str.unexpected_end_of_data
jne 0x59b7d0
mov eax, str.unexpected_content_after_document
mov edx, dword [ebp + 0x20]
mov dword [edx + 8], ebx
jmp 0x59aa1a
sub ebx, edi
mov eax, dword [ebp + 0x20]
mov dword [eax + 8], ebx
mov dword [eax], 2
mov dword [eax + 4], str.memory_allocation_failed
jmp 0x59b70b
cmp al, 0x30
jne 0x59d545
movzx ecx, byte [ebx + 1]
add ebx, 1
mov al, byte [ecx + 0x5ffe78]
test al, 0x33
mov edx, dword [ebp + 0x14]
jne 0x59d565
xor eax, eax
cmp byte [esp + 0x1c], 0x2d
sete al
lea eax, [eax*8 + 4]
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], 0
mov dword [edi + 0x2c], 0
mov dword [edi + 0x28], 0
mov dword [esp + 0x10], ebx
jmp 0x59af08
lea ecx, [ebx + 1]
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
jne 0x59d5a6
mov ecx, eax
sar ecx, 0x1f
xor esi, esi
mov edx, eax
neg edx
sbb esi, ecx
mov dword [esp + 0x20], esi
xor ebx, ebx
mov dword [edi + 0x24], 0
cmp byte [esp + 0x1c], 0x2d
sete bl
lea esi, [ebx*8 + 4]
mov dword [edi + 0x20], esi
mov esi, dword [esp + 0x20]
je 0x59b891
mov esi, ecx
mov edx, eax
mov dword [edi + 0x28], edx
mov dword [edi + 0x2c], esi
jmp 0x59b2df
lea ecx, [ebx + 2]
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
jne 0x59d5f7
xor esi, esi
mov ecx, eax
neg ecx
sbb esi, edi
xor edx, edx
mov ebx, dword [esp + 0x18]
mov dword [ebx + 0x24], 0
cmp byte [esp + 0x1c], 0x2d
sete dl
lea edx, [edx*8 + 4]
mov dword [ebx + 0x20], edx
je 0x59b8dd
mov esi, edi
mov ecx, eax
mov edi, dword [esp + 0x18]
mov dword [edi + 0x28], ecx
mov dword [edi + 0x2c], esi
jmp 0x59bc16
mov dword [esp + 4], eax
lea eax, [ebx + 3]
mov dword [esp + 8], eax
test byte [ecx + 0x5ffe78], 0x30
je 0x59bbdb
mov dword [esp], edi
cmp cl, 0x2e
jne 0x59ddae
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
jmp 0x59d641
mov dword [esp + 4], eax
lea eax, [ebx + 4]
mov dword [esp + 8], eax
test byte [edx + 0x5ffe78], 0x30
je 0x59bbdb
mov dword [esp], edi
cmp dl, 0x2e
jne 0x59ddae
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
jmp 0x59d673
mov dword [esp + 4], eax
lea eax, [ebx + 5]
mov dword [esp + 8], eax
test byte [ecx + 0x5ffe78], 0x30
je 0x59bbdb
mov dword [esp], edi
cmp cl, 0x2e
jne 0x59ddae
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
jmp 0x59d6a5
mov dword [esp + 4], eax
lea eax, [ebx + 6]
mov dword [esp + 8], eax
test byte [edx + 0x5ffe78], 0x30
je 0x59bbdb
mov dword [esp], edi
cmp dl, 0x2e
jne 0x59ddae
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
jmp 0x59d6d7
mov dword [esp + 4], eax
lea eax, [ebx + 7]
mov dword [esp + 8], eax
test byte [ecx + 0x5ffe78], 0x30
je 0x59bbdb
mov dword [esp], edi
cmp cl, 0x2e
jne 0x59ddae
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
jmp 0x59d709
mov dword [esp + 4], eax
lea eax, [ebx + 8]
mov dword [esp + 8], eax
test byte [edx + 0x5ffe78], 0x30
je 0x59bbdb
mov dword [esp], edi
cmp dl, 0x2e
jne 0x59ddae
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
jmp 0x59d73b
mov dword [esp + 4], eax
lea eax, [ebx + 9]
mov dword [esp + 8], eax
test byte [ecx + 0x5ffe78], 0x30
je 0x59bbdb
mov dword [esp], edi
cmp cl, 0x2e
jne 0x59ddae
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
jmp 0x59d76d
mov dword [esp + 4], eax
lea eax, [ebx + 0xa]
mov dword [esp + 8], eax
test byte [edx + 0x5ffe78], 0x30
je 0x59bbdb
mov dword [esp], edi
cmp dl, 0x2e
jne 0x59ddae
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
jmp 0x59d79f
mov dword [esp + 4], eax
lea eax, [ebx + 0xb]
mov dword [esp + 8], eax
test byte [ecx + 0x5ffe78], 0x30
je 0x59bbdb
mov dword [esp], edi
cmp cl, 0x2e
jne 0x59ddae
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
jmp 0x59d7d1
mov dword [esp + 4], eax
lea eax, [ebx + 0xc]
mov dword [esp + 8], eax
test byte [edx + 0x5ffe78], 0x30
je 0x59bbdb
mov dword [esp], edi
cmp dl, 0x2e
jne 0x59ddae
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
jmp 0x59d803
mov dword [esp + 4], eax
lea eax, [ebx + 0xd]
mov dword [esp + 8], eax
test byte [ecx + 0x5ffe78], 0x30
je 0x59bbdb
mov dword [esp], edi
cmp cl, 0x2e
jne 0x59ddae
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
jmp 0x59d835
mov dword [esp + 4], eax
lea eax, [ebx + 0xe]
mov dword [esp + 8], eax
test byte [edx + 0x5ffe78], 0x30
je 0x59bbdb
mov dword [esp], edi
cmp dl, 0x2e
jne 0x59ddae
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
jmp 0x59d867
mov dword [esp + 4], eax
lea eax, [ebx + 0xf]
mov dword [esp + 8], eax
test byte [ecx + 0x5ffe78], 0x30
je 0x59bbdb
mov dword [esp], edi
cmp cl, 0x2e
jne 0x59ddae
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
jmp 0x59d899
mov dword [esp + 4], eax
lea eax, [ebx + 0x10]
mov dword [esp + 8], eax
test byte [edx + 0x5ffe78], 0x30
je 0x59bbdb
mov dword [esp], edi
cmp dl, 0x2e
jne 0x59ddae
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
jmp 0x59d8cb
mov dword [esp + 4], eax
lea eax, [ebx + 0x11]
mov dword [esp + 8], eax
test byte [ecx + 0x5ffe78], 0x30
je 0x59bbdb
mov dword [esp], edi
cmp cl, 0x2e
jne 0x59ddae
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
jmp 0x59d8fd
mov dword [esp + 4], eax
lea eax, [ebx + 0x12]
mov dword [esp + 8], eax
test byte [edx + 0x5ffe78], 0x30
jne 0x59d9f1
xor eax, eax
mov esi, dword [esp + 4]
mov ecx, esi
neg ecx
sbb eax, edi
xor edx, edx
mov ebx, dword [esp + 0x18]
mov dword [ebx + 0x24], 0
cmp byte [esp + 0x1c], 0x2d
sete dl
lea edx, [edx*8 + 4]
mov dword [ebx + 0x20], edx
je 0x59bc0c
mov eax, edi
mov ecx, esi
mov edi, dword [esp + 0x18]
mov dword [edi + 0x28], ecx
mov dword [edi + 0x2c], eax
mov eax, dword [esp + 8]
jmp 0x59ad6f
lea eax, [esp + 0x3c]
mov esi, ecx
lea ecx, [esp + 0x10]
mov edx, esi
push eax
push dword [esp + 0x68]
push ebx
call fcn.005a8990
mov ecx, esi
mov edx, dword [ebp + 0x14]
add esp, 0xc
test al, al
jne 0x59b2f1
mov eax, dword [esp + 0x10]
jmp 0x59b6af
xor eax, eax
cmp byte [esp + 0x1c], 0x2d
sete al
mov edi, dword [esp + 0x18]
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0x14
shl eax, 0x1f
mov dword [edi + 0x2c], eax
mov dword [edi + 0x28], 0
mov eax, dword [esp + 8]
mov dword [esp + 0x10], eax
mov edx, dword [ebp + 0x14]
jmp 0x59b2ed
mov ecx, dword [esp + 0x1c]
mov eax, ebx
mov edi, dword [esp + 0x18]
test al, al
js 0x59da0a
test al, 0x10
je 0x59bd4b
mov eax, edi
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0x14
mov eax, 0xfff00000
cmp cl, 0x2d
je 0x59bcc1
mov eax, 0x7ff00000
mov dword [edi + 0x2c], eax
mov dword [edi + 0x28], 0
jmp 0x59b2df
mov eax, ecx
test edi, edi
jne 0x59bd5c
bsr ecx, dword [esp + 4]
xor ecx, 0x1f
add ecx, 0x20
jmp 0x59bd62
mov dword [esp + 0x3c], str.no_digit_after_exponent_sign
mov dword [esp + 0x10], esi
mov eax, esi
jmp 0x59b6ab
cmp byte [esp + 8], 0x2d
jne 0x59bea7
xor eax, eax
cmp byte [esp + 0x1c], 0x2d
sete al
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x20], 0x14
shl eax, 0x1f
mov dword [ecx + 0x2c], eax
mov dword [ecx + 0x28], 0
jmp 0x59ad27
mov esi, ecx
mov eax, dword [ebp + 0x1c]
test al, al
js 0x59da20
mov eax, dword [ebp + 0x1c]
test al, 0x10
jne 0x59da5a
mov dword [esp + 0x3c], str.number_is_infinity_when_parsed_as_double
mov eax, dword [esp + 0x20]
jmp 0x59b6af
bsr ecx, edi
xor ecx, 0x1f
mov dword [esp + 0x34], 0
mov dword [esp], edi
mov edx, dword [esp + 4]
shld edi, edx, cl
mov dword [esp + 0x50], edi
shl edx, cl
mov dword [esp + 0x58], edx
mov dword [esp + 0x54], ecx
test cl, 0x20
je 0x59bd97
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x58], 0
imul esi, eax, 0x3526a
shl eax, 4
add esi, 0xffc10000
mov ecx, dword [eax + 0x6014ec]
mov dword [esp + 0x44], ecx
mov ecx, dword [eax + 0x6014e8]
mov dword [esp + 0x2c], ecx
mov ebx, dword [eax + 0x6014f4]
xor edi, edi
jmp 0x59b362
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x18]
cmp al, 0x49
je 0x59c187
cmp al, 0x69
je 0x59c187
cmp al, 0x4e
mov esi, dword [ebp + 0x1c]
mov ecx, dword [esp + 0x14]
jne 0x59a9d9
mov eax, dword [esp + 0x20]
mov al, byte [eax + 1]
jmp 0x59c29a
mov edx, esi
test dl, 0x10
jne 0x59da9a
mov ecx, dword [esp + 0x5c]
mov edx, ebx
push esi
push 0xb
mov esi, dword [ebp + 8]
push esi
call fcn.005a86b0
add esp, 0xc
mov ecx, dword [esp + 0x5c]
sub esi, ecx
sub ebx, ecx
test al, al
jne 0x59be3c
mov esi, ebx
mov eax, 5
je 0x59be43
mov ecx, str.unexpected_end_of_data
jne 0x59b6f6
jmp 0x59be53
mov eax, 5
jne 0x59be2f
mov eax, 0xb
mov ecx, str.unexpected_end_of_data
jne 0x59b6f6
mov ecx, str.invalid_literal
jmp 0x59b6f6
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
test eax, eax
je 0x59be6e
mov byte [eax], 0
mov esi, dword [esp + 0xc]
mov eax, esi
mov edx, dword [esp + 0x20]
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 ecx, dword [esp + 0x14]
mov dword [ecx], esi
mov dword [esp + 0x10], esi
mov edx, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x1c]
jmp 0x59b2f1
mov esi, dword [esp + 0x18]
mov eax, dword [ebp + 0x1c]
test al, al
js 0x59daf6
mov eax, dword [ebp + 0x1c]
test al, 0x10
jne 0x59db34
mov dword [esp + 0x3c], str.number_is_infinity_when_parsed_as_double
mov edi, esi
mov eax, dword [esp + 0x20]
jmp 0x59b6af
mov esi, dword [esp + 0x60]
jmp 0x59b4dc
mov ecx, 4
sub ecx, esi
mov eax, dword [esp + 0x2c]
shrd dword [esp + 0x28], eax, cl
shr eax, cl
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x48]
shrd ebx, eax, cl
shr eax, cl
mov dword [esp + 0x48], eax
test cl, 0x20
je 0x59bf21
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 0
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x48], 0
add dword [esp + 0x54], ecx
add ebx, 9
adc dword [esp + 0x48], 0
mov edx, 0x3c
jmp 0x59b4f0
mov dword [esp + 0x24], 0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x54], 0
jmp 0x59b633
mov esi, dword [esp + 0x54]
mov eax, esi
and eax, 0x7ff00000
mov ecx, dword [esp + 0x24]
shld esi, ecx, 1
lea ebx, [ecx + ecx]
and esi, 0x1fffff
mov ecx, ebx
add ecx, 0xfffffffe
mov edx, esi
adc edx, 0x1fffff
add ecx, 2
adc edx, 0
mov dword [esp + 0x38], 0xfffffbcd
test eax, eax
je 0x59bf9b
shr eax, 0x14
add eax, 0xfffffbcc
mov dword [esp + 0x38], eax
mov esi, edx
mov ebx, ecx
or ebx, 1
lea eax, [esp + 0x6c]
lea ecx, [esp + 0xa0]
mov edx, dword [esp + 4]
push dword [esp + 0xc]
push dword [esp + 0x44]
push dword [esp + 0x38]
push eax
push dword [esp + 0x10]
call fcn.005a8ba0
add esp, 0x14
mov dword [esp + 0x2a8], 1
mov dword [esp + 0x2b0], ebx
mov dword [esp + 0x2b4], esi
mov ecx, dword [esp + 0x6c]
mov eax, ecx
test ecx, ecx
js 0x59c309
cmp eax, 0x13
jl 0x59c24f
mov edx, eax
jmp 0x59c008
lea eax, [edx - 0x13]
cmp edx, 0x25
mov edx, eax
jle 0x59c24f
mov ecx, dword [esp + 0xa0]
xor esi, esi
test ecx, ecx
je 0x59c02e
mov eax, dword [esp + esi*8 + 0xa8]
or eax, dword [esp + esi*8 + 0xac]
jne 0x59c02e
add esi, 1
cmp ecx, esi
jne 0x59c015
jmp 0x59bffa
cmp esi, ecx
jae 0x59bffa
mov dword [esp + 0x58], edx
xor edi, edi
xor ebx, ebx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], edi
mov edi, dword [esp + esi*8 + 0xa8]
mov eax, edi
mov ecx, 0x89e80000
mul ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x44], edx
xor ecx, ecx
mov ebx, 0x89e80000
add ebx, 0xdf2304
setb cl
mov dword [esp + 4], edi
mov eax, edi
mul ebx
mov edi, eax
mov dword [esp + 0xc], edx
mov eax, dword [esp + esi*8 + 0xac]
mov dword [esp], eax
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x34], edx
mov eax, dword [esp + 4]
imul eax, ecx
mov dword [esp + 4], eax
mov eax, dword [esp]
mul ebx
mov dword [esp + 0x4c], eax
imul ecx, dword [esp]
add edi, dword [esp + 0x44]
mov ebx, dword [esp + 0xc]
adc ebx, dword [esp + 4]
add edi, dword [esp + 0x50]
mov eax, dword [esp + 0x34]
adc eax, 0
add ebx, dword [esp + 0x4c]
adc edx, ecx
add ebx, eax
mov dword [esp + 0xc], ebx
adc edx, 0
mov ecx, dword [esp + 0x30]
and ecx, 0xfff80000
mov ebx, dword [esp + 0x2c]
add ecx, ebx
mov eax, dword [esp + 0x28]
adc edi, eax
setb byte [esp + 4]
cmp ecx, ebx
mov ebx, ecx
mov ecx, edi
sbb ecx, eax
mov dword [esp + esi*8 + 0xac], edi
setb cl
or cl, byte [esp + 4]
movzx edi, cl
add edi, dword [esp + 0xc]
mov dword [esp + esi*8 + 0xa8], ebx
mov ebx, edx
adc ebx, 0
add esi, 1
cmp dword [esp + 0x48], esi
jne 0x59c03e
mov eax, edi
or eax, ebx
mov edx, dword [esp + 0x58]
je 0x59bffa
mov eax, dword [esp + 0xa0]
lea ecx, [eax + 1]
mov dword [esp + 0xa0], ecx
mov dword [esp + eax*8 + 0xac], ebx
mov dword [esp + eax*8 + 0xa8], edi
jmp 0x59bffa
mov ebx, edx
mov eax, ecx
cmp edx, 0xfffffb8f
jl 0x59db91
mov cl, 0xc3
sub cl, dl
shrd dword [esp + 0x24], esi, cl
shr esi, cl
test cl, 0x20
je 0x59c17c
mov dword [esp + 0x24], esi
xor esi, esi
mov dword [esp + 0x54], esi
mov ecx, eax
jmp 0x59b633
mov ebx, eax
mov eax, dword [esp + 0x20]
mov al, byte [eax + 1]
mov ecx, eax
or cl, 0x20
cmp cl, 0x6e
jne 0x59c28a
mov ecx, dword [esp + 0x20]
mov cl, byte [ecx + 2]
or cl, 0x20
cmp cl, 0x66
jne 0x59c28a
mov ecx, dword [esp + 0x20]
lea eax, [ecx + 3]
mov cl, byte [ecx + 3]
or cl, 0x20
cmp cl, 0x69
jne 0x59c206
mov ecx, dword [esp + 0x20]
mov cl, byte [ecx + 4]
or cl, 0x20
cmp cl, 0x6e
jne 0x59c206
mov ecx, dword [esp + 0x20]
mov cl, byte [ecx + 5]
or cl, 0x20
cmp cl, 0x69
jne 0x59c206
mov ecx, dword [esp + 0x20]
mov cl, byte [ecx + 6]
or cl, 0x20
cmp cl, 0x74
jne 0x59c206
mov ecx, dword [esp + 0x20]
mov cl, byte [ecx + 7]
or cl, 0x20
cmp cl, 0x79
jne 0x59c206
mov eax, dword [esp + 0x20]
add eax, 8
mov dword [esp + 0x10], eax
cmp dword [esp + 0x14], 0
je 0x59c629
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx]
test ecx, ecx
je 0x59c222
mov byte [ecx], 0
mov esi, dword [esp + 0x14]
mov dword [esi], eax
mov edi, dword [esp + 0x20]
sub eax, edi
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
shl eax, 8
or eax, 1
mov dword [edx + 0x24], ecx
mov ecx, esi
mov dword [edx + 0x20], eax
mov dword [edx + 0x28], edi
mov edi, edx
jmp 0x59be9c
test eax, eax
je 0x59c76a
mov ecx, dword [esp + 0xa0]
mov edx, ecx
xor esi, esi
test ecx, ecx
je 0x59c4c6
mov ecx, dword [esp + esi*8 + 0xa8]
or ecx, dword [esp + esi*8 + 0xac]
jne 0x59c4c6
add esi, 1
cmp edx, esi
jne 0x59c26a
jmp 0x59c76a
cmp bl, 0x4e
mov esi, dword [ebp + 0x1c]
mov ecx, dword [esp + 0x14]
jne 0x59a9d9
or al, 0x20
cmp al, 0x61
jne 0x59a9d9
mov eax, dword [esp + 0x20]
mov al, byte [eax + 2]
or al, 0x20
cmp al, 0x6e
jne 0x59a9d9
mov eax, dword [esp + 0x20]
add eax, 3
mov dword [esp + 0x10], eax
test ecx, ecx
je 0x59c716
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx]
test ecx, ecx
je 0x59c2d5
mov byte [ecx], 0
mov ecx, dword [esp + 0x14]
mov dword [ecx], eax
mov edi, edx
mov dword [edx + 0x24], 0
mov dword [edx + 0x20], 0x301
mov eax, dword [esp + 0x20]
mov dword [edx + 0x28], eax
jmp 0x59be9c
mov eax, dword [ecx]
test eax, eax
je 0x59be72
mov byte [eax], 0
jmp 0x59be72
mov ecx, eax
neg ecx
cmp eax, 0xffffffed
jg 0x59c5d2
mov edi, 1
mov edx, ecx
xor esi, esi
test edi, edi
je 0x59c33f
mov eax, dword [esp + esi*8 + 0x2b0]
or eax, dword [esp + esi*8 + 0x2b4]
jne 0x59c33f
add esi, 1
cmp edi, esi
jne 0x59c323
jmp 0x59c47a
cmp esi, edi
jae 0x59c47a
mov dword [esp + 0x58], edx
mov dword [esp + 0x28], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x48], edi
mov edi, dword [esp + esi*8 + 0x2b0]
mov eax, edi
mov ecx, 0x89e80000
mul ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x44], edx
xor ecx, ecx
mov ebx, 0x89e80000
add ebx, 0xdf2304
setb cl
mov dword [esp], edi
mov eax, edi
mul ebx
mov edi, eax
mov dword [esp + 4], edx
mov eax, dword [esp + esi*8 + 0x2b4]
mov dword [esp + 0x2c], eax
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x34], edx
mov eax, dword [esp]
imul eax, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
mul ebx
mov dword [esp + 0x4c], eax
imul ecx, dword [esp + 0x2c]
add edi, dword [esp + 0x44]
mov ebx, dword [esp + 4]
adc ebx, dword [esp]
add edi, dword [esp + 0x50]
mov eax, dword [esp + 0x34]
adc eax, 0
add ebx, dword [esp + 0x4c]
adc edx, ecx
add ebx, eax
mov dword [esp + 4], ebx
adc edx, 0
mov eax, dword [esp + 0xc]
and eax, 0xfff80000
mov ecx, dword [esp + 0x28]
add eax, ecx
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x30]
adc edi, ebx
setb byte [esp]
cmp eax, ecx
mov ecx, edi
sbb ecx, ebx
mov dword [esp + esi*8 + 0x2b4], edi
setb cl
or cl, byte [esp]
movzx eax, cl
add eax, dword [esp + 4]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xc]
mov dword [esp + esi*8 + 0x2b0], eax
adc edx, 0
mov dword [esp + 0x30], edx
add esi, 1
cmp dword [esp + 0x48], esi
jne 0x59c35f
mov eax, dword [esp + 0x28]
or eax, dword [esp + 0x30]
mov edx, dword [esp + 0x58]
je 0x59c47a
mov eax, dword [esp + 0x2a8]
lea ecx, [eax + 1]
mov dword [esp + 0x2a8], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + eax*8 + 0x2b4], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + eax*8 + 0x2b0], ecx
lea eax, [edx - 0x13]
cmp edx, 0x26
jl 0x59c5db
mov edi, dword [esp + 0x2a8]
mov edx, eax
jmp 0x59c31d
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
test edx, edx
je 0x59c4a5
mov byte [edx], 0
mov edx, ecx
sar edx, 0x1f
shld edx, ecx, 8
mov dword [edi + 0x24], edx
shl ecx, 8
or ecx, 1
mov dword [edi + 0x20], ecx
mov eax, dword [esp + 0x20]
mov dword [edi + 0x28], eax
jmp 0x59be92
cmp esi, edx
jae 0x59c76a
mov ecx, dword [eax*8 + 0x60293c]
mov dword [esp], ecx
mov eax, dword [eax*8 + 0x602938]
mov dword [esp + 0x2c], eax
mov dword [esp + 4], 0
xor ecx, ecx
mov dword [esp + 0x4c], edx
mov edi, dword [esp + esi*8 + 0xa8]
mov eax, edi
mul dword [esp + 0x2c]
mov dword [esp + 0x50], edx
mov dword [esp + 0x28], eax
mov eax, edi
mul dword [esp]
mov edi, eax
mov dword [esp + 0xc], edx
mov ebx, dword [esp + esi*8 + 0xac]
mov eax, ebx
mul dword [esp + 0x2c]
mov dword [esp + 0x30], edx
mov dword [esp + 0x44], eax
mov eax, ebx
mul dword [esp]
mov dword [esp + 0x34], eax
add edi, dword [esp + 0x50]
mov ebx, dword [esp + 0xc]
adc ebx, 0
add edi, dword [esp + 0x44]
mov eax, dword [esp + 0x30]
adc eax, 0
add ebx, dword [esp + 0x34]
adc edx, 0
add ebx, eax
mov dword [esp + 0xc], ebx
adc edx, 0
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 4]
add eax, ebx
adc edi, ecx
setb byte [esp + 0x28]
cmp eax, ebx
mov ebx, edi
sbb ebx, ecx
mov dword [esp + esi*8 + 0xac], edi
setb cl
or cl, byte [esp + 0x28]
movzx ecx, cl
add ecx, dword [esp + 0xc]
mov dword [esp + 4], ecx
mov dword [esp + esi*8 + 0xa8], eax
mov ecx, edx
adc ecx, 0
add esi, 1
cmp dword [esp + 0x4c], esi
jne 0x59c4f1
mov eax, dword [esp + 4]
or eax, ecx
je 0x59c76a
mov eax, dword [esp + 0xa0]
lea edx, [eax + 1]
mov dword [esp + 0xa0], edx
mov dword [esp + eax*8 + 0xac], ecx
mov ecx, dword [esp + 4]
mov dword [esp + eax*8 + 0xa8], ecx
jmp 0x59c76a
mov eax, ecx
mov edx, 1
jmp 0x59c5f2
test eax, eax
je 0x59c76a
mov edx, dword [esp + 0x2a8]
test edx, edx
je 0x59c76a
mov ecx, dword [eax*8 + 0x60293c]
mov dword [esp + 4], ecx
mov eax, dword [eax*8 + 0x602938]
mov dword [esp], eax
xor esi, esi
mov ecx, dword [esp + esi*8 + 0x2b0]
mov edi, dword [esp + esi*8 + 0x2b4]
mov eax, ecx
or eax, edi
jne 0x59c645
add esi, 1
cmp edx, esi
jne 0x59c609
jmp 0x59c76a
mov edi, edx
mov dword [edx + 0x24], 0
mov dword [edx + 0x20], 0x14
mov dword [edx + 0x2c], 0x7ff00000
jmp 0x59c72d
cmp esi, edx
jae 0x59c76a
mov dword [esp + 0x50], edx
add esi, 1
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov eax, ecx
mul dword [esp]
mov dword [esp + 0x30], edx
mov dword [esp + 0xc], eax
mov eax, ecx
mul dword [esp + 4]
mov ecx, edx
mov ebx, eax
mov eax, edi
mul dword [esp]
mov dword [esp + 0x44], edx
mov dword [esp + 0x34], eax
mov eax, edi
mul dword [esp + 4]
add ebx, dword [esp + 0x30]
adc ecx, 0
add ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x44]
adc edi, 0
add ecx, eax
adc edx, 0
add ecx, edi
adc edx, 0
mov dword [esp + 0x30], edx
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0xc]
add eax, edi
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x28]
adc ebx, edx
setb byte [esp + 0x44]
cmp eax, edi
mov edi, ebx
sbb edi, edx
mov dword [esp + esi*8 + 0x2ac], ebx
setb ah
or ah, byte [esp + 0x44]
movzx eax, ah
add eax, ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xc]
mov dword [esp + esi*8 + 0x2a8], eax
mov edx, dword [esp + 0x30]
adc edx, 0
mov dword [esp + 0x28], edx
cmp dword [esp + 0x50], esi
je 0x59c739
mov ecx, dword [esp + esi*8 + 0x2b0]
mov edi, dword [esp + esi*8 + 0x2b4]
add esi, 1
jmp 0x59c664
mov edi, edx
mov dword [edx + 0x24], 0
mov dword [edx + 0x20], 0x14
mov dword [edx + 0x2c], 0x7ff80000
mov dword [edx + 0x28], 0
jmp 0x59b2e7
mov eax, dword [esp + 0x2c]
or eax, dword [esp + 0x28]
je 0x59c76a
mov eax, dword [esp + 0x2a8]
lea ecx, [eax + 1]
mov dword [esp + 0x2a8], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + eax*8 + 0x2b4], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + eax*8 + 0x2b0], ecx
cmp dword [esp + 0x38], 0
jle 0x59c815
mov eax, dword [esp + 0x38]
mov ecx, eax
shr ecx, 6
mov dword [esp + 0x34], ecx
mov esi, dword [esp + 0x2a8]
and eax, 0x3f
mov dword [esp + 0x38], eax
je 0x59dba6
mov dword [esp + esi*8 + 0x2b4], 0
mov dword [esp + esi*8 + 0x2b0], 0
test esi, esi
je 0x59c935
mov ecx, 0x40
sub ecx, dword [esp + 0x38]
mov eax, dword [esp + esi*8 + 0x2a8]
mov edi, dword [esp + esi*8 + 0x2ac]
mov edx, edi
shr edx, cl
shrd eax, edi, cl
lea ebx, [esi - 1]
mov dword [esp + 0xc], ecx
test cl, 0x20
je 0x59c7e2
mov eax, edx
xor edx, edx
mov ecx, dword [esp + 0x34]
add ecx, esi
mov dword [esp + ecx*8 + 0x2b0], eax
mov dword [esp + ecx*8 + 0x2b4], edx
test ebx, ebx
je 0x59c935
test bl, 1
jne 0x59c8b7
lea ecx, [esp + esi*8]
add ecx, 0x2a8
jmp 0x59c930
mov eax, dword [esp + 0x38]
neg eax
mov ecx, eax
shr ecx, 6
mov dword [esp + 0x34], ecx
mov esi, dword [esp + 0xa0]
and eax, 0x3f
mov dword [esp + 0x38], eax
je 0x59dc05
mov dword [esp + esi*8 + 0xac], 0
mov dword [esp + esi*8 + 0xa8], 0
test esi, esi
je 0x59cb59
mov ecx, 0x40
sub ecx, dword [esp + 0x38]
mov eax, dword [esp + esi*8 + 0xa0]
mov edi, dword [esp + esi*8 + 0xa4]
mov edx, edi
shr edx, cl
shrd eax, edi, cl
lea ebx, [esi - 1]
mov dword [esp + 0xc], ecx
test cl, 0x20
je 0x59c884
mov eax, edx
xor edx, edx
mov ecx, dword [esp + 0x34]
add ecx, esi
mov dword [esp + ecx*8 + 0xa8], eax
mov dword [esp + ecx*8 + 0xac], edx
test ebx, ebx
je 0x59cb59
test bl, 1
jne 0x59cad7
lea ecx, [esp + esi*8]
add ecx, 0xa0
jmp 0x59cb50
mov edx, dword [esp + esi*8 + 0x2a8]
mov eax, dword [esp + esi*8 + 0x2ac]
mov ecx, dword [esp + 0x38]
shld eax, edx, cl
mov dword [esp], eax
shl edx, cl
mov dword [esp + 4], edx
test cl, 0x20
je 0x59c8e9
mov eax, dword [esp + 4]
mov dword [esp], eax
mov dword [esp + 4], 0
mov eax, dword [esp + esi*8 + 0x2a0]
mov edx, dword [esp + esi*8 + 0x2a4]
mov edi, edx
mov ecx, dword [esp + 0xc]
shr edi, cl
shrd eax, edx, cl
test cl, 0x20
je 0x59c90b
mov eax, edi
xor edi, edi
or eax, dword [esp + 4]
or edi, dword [esp]
add ebx, dword [esp + 0x34]
mov dword [esp + ebx*8 + 0x2b0], eax
mov dword [esp + ebx*8 + 0x2b4], edi
lea ebx, [esi - 2]
lea ecx, [esp + esi*8]
add ecx, 0x2a0
cmp esi, 2
jne 0x59c9ac
mov esi, dword [esp + 0x2b0]
mov eax, dword [esp + 0x2b4]
mov edx, esi
mov ecx, dword [esp + 0x38]
shl edx, cl
shld eax, esi, cl
test cl, 0x20
je 0x59c957
mov eax, edx
xor edx, edx
mov esi, dword [esp + 0x34]
mov dword [esp + esi*8 + 0x2b0], edx
mov dword [esp + esi*8 + 0x2b4], eax
mov eax, dword [esp + 0x2a8]
add eax, esi
mov ecx, dword [esp + eax*8 + 0x2b0]
xor edx, edx
or ecx, dword [esp + eax*8 + 0x2b4]
setne dl
add edx, eax
mov dword [esp + 0x2a8], edx
test esi, esi
je 0x59cbd0
mov eax, dword [esp + 0x34]
shl eax, 3
push eax
push 0
lea eax, [esp + 0x2b8]
jmp 0x59cbc7
mov eax, dword [esp + 0x34]
lea eax, [esp + eax*8]
add eax, 0x2b0
mov dword [esp + 4], eax
jmp 0x59c9e9
or esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
or ecx, dword [esp]
mov eax, dword [esp + 4]
mov dword [eax + ebx*8 - 8], esi
mov dword [eax + ebx*8 - 4], ecx
lea ecx, [esp + ebx*8]
add ecx, 0x2a0
add ebx, 0xfffffffe
test ebx, ebx
je 0x59c935
mov dword [esp + 0x28], ecx
mov esi, dword [ecx]
mov dword [esp + 0x30], esi
mov ecx, dword [esp + 0x38]
shl esi, cl
mov dword [esp + 0x2c], 0
mov dword [esp], 0
test cl, 0x20
jne 0x59ca10
mov dword [esp], esi
mov edx, dword [esp + ebx*8 + 0x2a8]
mov eax, dword [esp + ebx*8 + 0x2ac]
mov edi, eax
mov ecx, dword [esp + 0xc]
shr edi, cl
shrd edx, eax, cl
test cl, 0x20
je 0x59ca32
mov edx, edi
xor edi, edi
or edx, dword [esp]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 4]
mov ecx, dword [esp + 4]
mov dword [ecx + ebx*8], edx
mov edx, dword [esp + ebx*8 + 0x2a8]
mov dword [esp + 0x44], edx
mov ecx, dword [esp + 0x38]
shl edx, cl
mov dword [esp], edx
mov dword [esp + 0x28], 0
test cl, 0x20
jne 0x59ca6b
mov ecx, dword [esp]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x30]
shld eax, edx, cl
test cl, 0x20
jne 0x59ca7d
mov esi, eax
or edi, esi
mov eax, dword [esp + ebx*8 + 0x2a0]
mov ecx, dword [esp + 4]
mov dword [ecx + ebx*8 + 4], edi
mov esi, dword [esp + ebx*8 + 0x2ac]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x44]
shld esi, edx, cl
test cl, 0x20
jne 0x59caa8
mov dword [esp], esi
mov edi, dword [esp + ebx*8 + 0x2a4]
mov esi, edi
mov ecx, dword [esp + 0xc]
shr esi, cl
test cl, 0x20
jne 0x59cac0
mov dword [esp + 0x2c], esi
mov ecx, dword [esp + 0xc]
shrd eax, edi, cl
test cl, 0x20
jne 0x59c9be
mov esi, eax
jmp 0x59c9be
mov edx, dword [esp + esi*8 + 0xa0]
mov eax, dword [esp + esi*8 + 0xa4]
mov ecx, dword [esp + 0x38]
shld eax, edx, cl
mov dword [esp], eax
shl edx, cl
mov dword [esp + 4], edx
test cl, 0x20
je 0x59cb09
mov eax, dword [esp + 4]
mov dword [esp], eax
mov dword [esp + 4], 0
mov eax, dword [esp + esi*8 + 0x98]
mov edx, dword [esp + esi*8 + 0x9c]
mov edi, edx
mov ecx, dword [esp + 0xc]
shr edi, cl
shrd eax, edx, cl
test cl, 0x20
je 0x59cb2b
mov eax, edi
xor edi, edi
or eax, dword [esp + 4]
or edi, dword [esp]
add ebx, dword [esp + 0x34]
mov dword [esp + ebx*8 + 0xa8], eax
mov dword [esp + ebx*8 + 0xac], edi
lea ebx, [esi - 2]
lea ecx, [esp + esi*8]
add ecx, 0x98
cmp esi, 2
jne 0x59ccb9
mov esi, dword [esp + 0xa8]
mov eax, dword [esp + 0xac]
mov edx, esi
mov ecx, dword [esp + 0x38]
shl edx, cl
shld eax, esi, cl
test cl, 0x20
je 0x59cb7b
mov eax, edx
xor edx, edx
mov esi, dword [esp + 0x34]
mov dword [esp + esi*8 + 0xa8], edx
mov dword [esp + esi*8 + 0xac], eax
mov eax, dword [esp + 0xa0]
add eax, esi
mov ecx, dword [esp + eax*8 + 0xa8]
xor edx, edx
or ecx, dword [esp + eax*8 + 0xac]
setne dl
add edx, eax
mov dword [esp + 0xa0], edx
test esi, esi
je 0x59cbd0
lea eax, [esp + 0xa8]
mov ecx, dword [esp + 0x34]
shl ecx, 3
push ecx
push 0
push eax
call fcn.005c5400
add esp, 0xc
mov esi, dword [esp + 0xa0]
cmp esi, dword [esp + 0x2a8]
jne 0x59cc54
mov ecx, esi
jmp 0x59cbea
or ebx, edx
mov esi, ecx
jne 0x59cc5c
mov dword [esp + 0x28], eax
sub ecx, 1
jb 0x59cc6b
mov ebx, dword [esp + esi*8 + 0xa0]
mov edi, dword [esp + esi*8 + 0xa4]
mov eax, dword [esp + esi*8 + 0x2a8]
mov edx, dword [esp + esi*8 + 0x2ac]
mov esi, ebx
mov dword [esp], eax
cmp eax, ebx
mov dword [esp + 0xc], edx
sbb edx, edi
mov dword [esp + 4], 1
jb 0x59cc2e
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
mov ebx, esi
mov dword [esp + 0x2c], esi
mov esi, dword [esp]
xor ebx, esi
mov edx, edi
mov eax, dword [esp + 0xc]
xor edx, eax
cmp dword [esp + 0x2c], esi
sbb edi, eax
mov eax, 0xffffffff
jb 0x59cbe4
mov eax, dword [esp + 4]
jmp 0x59cbe4
setae al
movzx ecx, al
jmp 0x59cc72
xor ecx, ecx
test eax, eax
setg al
je 0x59cc6b
xor edx, edx
mov cl, al
jmp 0x59cc74
mov ecx, dword [esp + 0x24]
and ecx, 1
xor edx, edx
add ecx, dword [esp + 0x24]
adc edx, dword [esp + 0x54]
mov eax, edx
mov esi, 0x7ff00000
xor eax, esi
or eax, ecx
je 0x59db6a
xor eax, eax
cmp byte [esp + 0x1c], 0x2d
sete al
shl eax, 0x1f
or edx, eax
mov edi, dword [esp + 0x18]
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0x14
mov dword [edi + 0x28], ecx
mov dword [edi + 0x2c], edx
jmp 0x59b2df
mov eax, dword [esp + 0x34]
lea eax, [esp + eax*8]
add eax, 0xa8
mov dword [esp + 4], eax
jmp 0x59ccf6
or edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
or ecx, dword [esp]
mov eax, dword [esp + 4]
mov dword [eax + ebx*8 - 8], edx
mov dword [eax + ebx*8 - 4], ecx
lea ecx, [esp + ebx*8]
add ecx, 0x98
add ebx, 0xfffffffe
test ebx, ebx
je 0x59cb59
mov dword [esp + 0x28], ecx
mov esi, dword [ecx]
mov dword [esp + 0x30], esi
mov ecx, dword [esp + 0x38]
shl esi, cl
mov dword [esp + 0x2c], 0
mov dword [esp], 0
test cl, 0x20
jne 0x59cd1d
mov dword [esp], esi
mov edi, dword [esp + ebx*8 + 0xa0]
mov eax, dword [esp + ebx*8 + 0xa4]
mov edx, eax
mov ecx, dword [esp + 0xc]
shr edx, cl
shrd edi, eax, cl
test cl, 0x20
je 0x59cd3f
mov edi, edx
xor edx, edx
or edi, dword [esp]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 4]
mov ecx, dword [esp + 4]
mov dword [ecx + ebx*8], edi
mov edi, dword [esp + ebx*8 + 0xa0]
mov dword [esp + 0x44], edi
mov ecx, dword [esp + 0x38]
shl edi, cl
mov dword [esp], edi
mov dword [esp + 0x28], 0
test cl, 0x20
jne 0x59cd78
mov ecx, dword [esp]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x30]
shld eax, edi, cl
test cl, 0x20
jne 0x59cd8a
mov esi, eax
or edx, esi
mov eax, dword [esp + ebx*8 + 0x98]
mov ecx, dword [esp + 4]
mov dword [ecx + ebx*8 + 4], edx
mov edx, dword [esp + ebx*8 + 0xa4]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x44]
shld edx, esi, cl
test cl, 0x20
jne 0x59cdb5
mov dword [esp], edx
mov esi, dword [esp + ebx*8 + 0x9c]
mov edx, esi
mov ecx, dword [esp + 0xc]
shr edx, cl
test cl, 0x20
jne 0x59cdcd
mov dword [esp + 0x2c], edx
mov ecx, dword [esp + 0xc]
shrd eax, esi, cl
test cl, 0x20
jne 0x59cccb
mov edx, eax
jmp 0x59cccb
mov esi, edi
cmp al, 0x5c
jne 0x59d338
mov al, byte [edi + 1]
add al, 0xde
cmp al, 0x53
ja case.0x59cdfe.221
movzx eax, al
jmp dword [eax*4 + 0x604954]
mov byte [esi], 0x22
jmp 0x59cef4
mov byte [esi], 0xa
jmp 0x59cef4
mov byte [esi], 0x2f
jmp 0x59cef4
mov byte [esi], 8
jmp 0x59cef4
movzx eax, byte [edi + 2]
movzx ecx, byte [eax + 0x5ffd78]
movzx eax, byte [edi + 3]
movzx edx, byte [eax + 0x5ffd78]
movzx eax, byte [edi + 4]
movzx eax, byte [eax + 0x5ffd78]
mov dword [esp + 0x1c], eax
movzx eax, byte [edi + 5]
movzx eax, byte [eax + 0x5ffd78]
shl ecx, 8
add ecx, dword [esp + 0x1c]
shl edx, 8
or edx, eax
mov eax, ecx
shl eax, 4
or eax, edx
mov word [esp + 0xa0], ax
or edx, ecx
test edx, 0xf0f0
jne 0x59defb
lea ecx, [edi + 6]
mov dword [esp + 0x1c], ecx
test dword [ebp + 0x1c], 0x40000000
jne 0x59d2e4
mov ecx, eax
and ecx, 0xf800
cmp ecx, 0xd800
je 0x59d362
movzx ecx, ax
cmp ecx, 0x800
jb 0x59d309
shr ecx, 0xc
or cl, 0xe0
mov byte [esi], cl
movzx eax, word [esp + 0xa0]
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [esi + 1], al
mov al, byte [esp + 0xa0]
and al, 0x3f
or al, 0x80
mov byte [esi + 2], al
add esi, 3
jmp 0x59cefe
mov byte [esi], 0x5c
jmp 0x59cef4
mov byte [esi], 0xd
jmp 0x59cef4
mov byte [esi], 0xc
jmp 0x59cef4
mov byte [esi], 9
add esi, 1
add edi, 2
mov dword [esp + 0x1c], edi
mov edx, dword [esp + 0x1c]
jmp 0x59cf0c
mov byte [esi], al
add esi, 1
add edx, 1
movzx eax, byte [edx]
test byte [eax + 0x5ffc78], 0xc
jne 0x59d178
movzx eax, byte [edx + 1]
test byte [eax + 0x5ffc78], 0xc
jne 0x59d26b
movzx eax, byte [edx + 2]
test byte [eax + 0x5ffc78], 0xc
jne 0x59d044
movzx eax, byte [edx + 3]
test byte [eax + 0x5ffc78], 0xc
jne 0x59d055
movzx eax, byte [edx + 4]
test byte [eax + 0x5ffc78], 0xc
jne 0x59d064
movzx eax, byte [edx + 5]
test byte [eax + 0x5ffc78], 0xc
jne 0x59d073
movzx eax, byte [edx + 6]
test byte [eax + 0x5ffc78], 0xc
jne 0x59d08a
movzx eax, byte [edx + 7]
test byte [eax + 0x5ffc78], 0xc
jne 0x59d0a1
movzx eax, byte [edx + 8]
test byte [eax + 0x5ffc78], 0xc
jne 0x59d0b6
movzx eax, byte [edx + 9]
test byte [eax + 0x5ffc78], 0xc
jne 0x59d0cb
movzx eax, byte [edx + 0xa]
test byte [eax + 0x5ffc78], 0xc
jne 0x59d0e8
movzx eax, byte [edx + 0xb]
test byte [eax + 0x5ffc78], 0xc
jne 0x59d102
movzx eax, byte [edx + 0xc]
test byte [eax + 0x5ffc78], 0xc
jne 0x59d11a
movzx eax, byte [edx + 0xd]
test byte [eax + 0x5ffc78], 0xc
jne 0x59d132
movzx eax, byte [edx + 0xe]
test byte [eax + 0x5ffc78], 0xc
jne 0x59d152
movzx eax, byte [edx + 0xf]
test byte [eax + 0x5ffc78], 0xc
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edi, dword [edx + 0xc]
mov dword [esp + 0x1c], edi
mov edi, dword [edx + 8]
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], edi
mov eax, dword [esp + 0x1c]
mov dword [esi + 0xc], eax
jne 0x59d172
add edx, 0x10
add esi, 0x10
jmp 0x59cf0c
movzx eax, word [edx]
add edx, 2
mov word [esi], ax
add esi, 2
jmp 0x59d178
mov eax, dword [edx]
add edx, 3
mov dword [esi], eax
add esi, 3
jmp 0x59d178
mov eax, dword [edx]
add edx, 4
mov dword [esi], eax
add esi, 4
jmp 0x59d178
lea edi, [edx + 5]
mov eax, dword [edx]
mov dword [esi], eax
movzx eax, word [edx + 4]
mov word [esi + 4], ax
add esi, 5
jmp 0x59d17a
lea edi, [edx + 6]
mov eax, dword [edx]
mov dword [esi], eax
movzx eax, word [edx + 4]
mov word [esi + 4], ax
add esi, 6
jmp 0x59d17a
lea edi, [edx + 7]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esi + 4], ecx
mov dword [esi], eax
add esi, 7
jmp 0x59d17a
lea edi, [edx + 8]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esi + 4], ecx
mov dword [esi], eax
add esi, 8
jmp 0x59d17a
lea edi, [edx + 9]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esi + 4], ecx
mov dword [esi], eax
movzx eax, word [edx + 8]
mov word [esi + 8], ax
add esi, 9
jmp 0x59d17a
lea edi, [edx + 0xa]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esi + 4], ecx
mov dword [esi], eax
movzx eax, word [edx + 8]
mov word [esi + 8], ax
add esi, 0xa
jmp 0x59d17a
lea edi, [edx + 0xb]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esi + 4], ecx
mov dword [esi], eax
mov eax, dword [edx + 8]
mov dword [esi + 8], eax
add esi, 0xb
jmp 0x59d17a
lea edi, [edx + 0xc]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esi + 4], ecx
mov dword [esi], eax
mov eax, dword [edx + 8]
mov dword [esi + 8], eax
add esi, 0xc
jmp 0x59d17a
lea edi, [edx + 0xd]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esi + 4], ecx
mov dword [esi], eax
mov eax, dword [edx + 8]
mov dword [esi + 8], eax
movzx eax, word [edx + 0xc]
mov word [esi + 0xc], ax
add esi, 0xd
jmp 0x59d17a
lea edi, [edx + 0xe]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esi + 4], ecx
mov dword [esi], eax
mov eax, dword [edx + 8]
mov dword [esi + 8], eax
movzx eax, word [edx + 0xc]
mov word [esi + 0xc], ax
add esi, 0xe
jmp 0x59d17a
add edx, 0xf
add esi, 0xf
mov edi, edx
mov al, byte [edi]
test al, al
jns 0x59cde6
test dword [ebp + 0x1c], 0x40000000
jne 0x59d27c
mov eax, dword [edi]
mov ecx, eax
and ecx, 0xc0c0f0
mov dword [esp + 0x1c], edi
cmp ecx, 0x8080e0
jne 0x59d1dc
mov ecx, eax
and ecx, 0x200f
je 0x59d1dc
cmp ecx, 0x200d
je 0x59d1dc
mov dword [esi], eax
add esi, 3
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 3]
add ecx, 3
mov dword [esp + 0x1c], ecx
mov ecx, eax
and ecx, 0xc0c0f0
cmp ecx, 0x8080e0
je 0x59d1a7
test al, al
mov edx, dword [esp + 0x1c]
jns 0x59cf0c
jmp 0x59d1fe
mov word [esi], ax
add esi, 2
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 2]
add ecx, 2
mov dword [esp + 0x1c], ecx
mov ecx, eax
and ecx, 0xc0e0
cmp ecx, 0x80c0
jne 0x59d22a
mov ecx, eax
and ecx, 0x1e
jne 0x59d1ea
jmp 0x59d22a
mov dword [esi], eax
add esi, 4
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 4]
add ecx, 4
mov dword [esp + 0x1c], ecx
mov ecx, eax
and ecx, 0xc0c0c0f8
cmp ecx, 0x808080f0
jne 0x59d252
mov ecx, eax
and ecx, 0x3007
je 0x59d252
test al, 4
je 0x59d217
mov ecx, eax
and ecx, 0x3003
je 0x59d217
mov edx, dword [esp + 0x1c]
cmp edi, edx
jne 0x59cf0c
mov eax, dword [ebp + 0x1c]
test al, 0x40
je 0x59df10
mov edx, edi
movzx eax, word [edx]
mov word [esi], ax
add edx, 1
add esi, 1
jmp 0x59d178
movzx eax, word [edi]
movzx ecx, al
cmp ecx, 0x81
jb 0x59d2cd
movzx ecx, cx
cmp ecx, 0xff
je 0x59d2cd
add edi, 1
movzx ecx, ax
cmp ecx, 0xff
jbe 0x59d45b
mov word [esi], ax
add esi, 2
movzx eax, word [edi + 1]
movzx ecx, al
add edi, 2
cmp ecx, 0x81
jb 0x59d2ca
movzx ecx, cx
cmp ecx, 0xff
jne 0x59d298
add edi, 0xffffffff
cmp al, 0xff
mov edx, edi
je 0x59cf04
cmp al, 0x80
je 0x59cf04
jmp 0x59cf0c
push 0
push 0
push 2
push esi
push 1
lea eax, [esp + 0xb4]
push eax
push 0
push 0x3a8
call dword [sym.imp.kernel32.dll_WideCharToMultiByte_1]
add esi, eax
jmp 0x59cefe
cmp ecx, 0x80
jb 0x59d32e
shr eax, 6
or al, 0xc0
mov byte [esi], al
mov al, byte [esp + 0xa0]
and al, 0x3f
or al, 0x80
mov byte [esi + 1], al
add esi, 2
jmp 0x59cefe
mov byte [esi], al
add esi, 1
jmp 0x59cefe
cmp al, 0x22
je 0x59ddf2
mov ecx, dword [ebp + 0x1c]
test cl, 0x40
je 0x59e268
cmp edi, dword [ebp + 8]
jae 0x59e27d
add edi, 1
mov byte [esi], al
add esi, 1
jmp 0x59cefa
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x59e208
mov ecx, dword [esp + 0x1c]
movzx ecx, word [ecx]
cmp ecx, 0x755c
jne 0x59e21d
movzx ecx, byte [edi + 8]
movzx edx, byte [ecx + 0x5ffd78]
movzx ecx, byte [edi + 9]
movzx ecx, byte [ecx + 0x5ffd78]
mov dword [esp + 0xc], ecx
movzx ecx, byte [edi + 0xa]
movzx ecx, byte [ecx + 0x5ffd78]
mov dword [esp + 0x24], ecx
movzx ecx, byte [edi + 0xb]
movzx ecx, byte [ecx + 0x5ffd78]
mov dword [esp + 4], ecx
shl edx, 8
add edx, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
shl ecx, 8
add ecx, dword [esp + 4]
mov dword [esp + 0xc], ecx
or ecx, edx
test ecx, 0xf0f0
jne 0x59e236
shl edx, 4
movzx ecx, dx
mov edx, dword [esp + 0xc]
or edx, ecx
mov dword [esp + 0xc], edx
mov ecx, edx
and ecx, 0xfc00
cmp ecx, 0xdc00
jne 0x59e24f
movzx eax, ax
shl eax, 0xa
add eax, 0xfca00000
mov ecx, dword [esp + 0xc]
add ecx, 0xffff2400
or ecx, eax
add ecx, 0x10000
mov eax, ecx
shr eax, 0x12
or al, 0xf0
mov byte [esi], al
mov eax, ecx
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [esi + 1], al
mov eax, ecx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [esi + 2], al
and cl, 0x3f
or cl, 0x80
mov byte [esi + 3], cl
add esi, 4
add edi, 0xc
jmp 0x59cefa
mov dword [esp + 0x3c], str.unexpected_null_character_in_string
mov dword [esp + 0x20], str.unexpected_null_character_in_string
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x5c]
mov ecx, esi
mov edx, edi
push dword [ebp + 0x1c]
push 0xa
mov ebx, dword [ebp + 8]
push ebx
call fcn.005a86b0
add esp, 0xc
sub ebx, esi
sub edi, esi
mov ecx, eax
xor cl, 1
test al, al
jne 0x59d497
mov ebx, edi
movzx eax, cl
lea eax, [eax + eax*4 + 5]
mov ecx, str.unexpected_end_of_data
jne 0x59d4a9
mov ecx, dword [esp + 0x20]
mov edx, dword [ebp + 0x20]
mov dword [edx + 8], ebx
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x59aa1f
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edi
lea ecx, [esp + 0x10]
call fcn.0059a490
mov esi, dword [esp + 0x10]
test al, al
jne 0x59d529
movzx eax, word [esi]
cmp eax, 0x2a2f
jne 0x59d529
mov edi, dword [esp + 0x5c]
mov ecx, edi
mov edx, esi
push dword [ebp + 0x1c]
push 8
mov ebx, dword [ebp + 8]
push ebx
call fcn.005a86b0
add esp, 0xc
sub ebx, edi
mov dword [esp + 0x20], ebx
sub esi, edi
mov ecx, eax
xor cl, 1
test al, al
jne 0x59d50a
mov dword [esp + 0x20], esi
movzx eax, cl
lea eax, [eax + eax*2 + 5]
mov ecx, str.unexpected_end_of_data
jne 0x59d51d
mov ecx, str.unclosed_multiline_comment
mov edx, dword [ebp + 0x20]
mov esi, dword [esp + 0x20]
mov dword [edx + 8], esi
jmp 0x59d4af
mov edi, dword [esp + 0x18]
mov edx, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x1c]
mov ecx, dword [esp + 0x14]
cmp esi, dword [ebp + 8]
jae 0x59b303
jmp 0x59b799
mov esi, eax
mov eax, dword [ebp + 0x1c]
test al, 0x10
jne 0x59df25
mov dword [esp + 0x3c], str.no_digit_after_minus_sign
mov dword [esp + 0x10], ebx
mov eax, ebx
jmp 0x59b6af
mov dword [esp + 0xc], ebx
cmp cl, 0x2e
jne 0x59e036
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 1]
test byte [eax + 0x5ffe78], 3
je 0x59dff7
mov ecx, eax
mov ebx, dword [esp + 0xc]
cmp al, 0x30
je 0x59e00f
mov eax, ecx
add eax, 0xffffffd0
mov dword [esp + 4], eax
sar eax, 0x1f
mov dword [esp], eax
jmp 0x59d5c3
mov dword [esp + 4], eax
mov ecx, eax
sar ecx, 0x1f
mov dword [esp], ecx
cmp dl, 0x2e
jne 0x59ddae
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
movzx eax, byte [ebx + 2]
mov dword [esp + 0x24], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x59deef
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp], esi
jmp 0x59d60f
mov dword [esp + 4], eax
mov dword [esp], edi
cmp dl, 0x2e
jne 0x59ddae
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
movzx eax, byte [ebx + 3]
mov dword [esp + 0x24], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x59dee3
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp], esi
movzx eax, byte [ebx + 4]
mov dword [esp + 0x24], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x59ded7
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp], esi
movzx eax, byte [ebx + 5]
mov dword [esp + 0x24], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x59decb
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp], esi
movzx eax, byte [ebx + 6]
mov dword [esp + 0x24], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x59debf
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp], esi
movzx eax, byte [ebx + 7]
mov dword [esp + 0x24], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x59deb3
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp], esi
movzx eax, byte [ebx + 8]
mov dword [esp + 0x24], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x59de50
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp], esi
movzx eax, byte [ebx + 9]
mov dword [esp + 0x24], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x59de44
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp], esi
movzx eax, byte [ebx + 0xa]
mov dword [esp + 0x24], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x59de38
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp], esi
movzx eax, byte [ebx + 0xb]
mov dword [esp + 0x24], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x59de2c
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp], esi
movzx eax, byte [ebx + 0xc]
mov dword [esp + 0x24], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x59de20
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp], esi
movzx eax, byte [ebx + 0xd]
mov dword [esp + 0x24], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x59de14
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp], esi
movzx eax, byte [ebx + 0xe]
mov dword [esp + 0x24], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x59de08
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp], esi
movzx eax, byte [ebx + 0xf]
mov dword [esp + 0x24], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x59ddfc
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp], esi
movzx eax, byte [ebx + 0x10]
mov dword [esp + 0x24], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x59dde6
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp], esi
movzx eax, byte [ebx + 0x11]
mov dword [esp + 0x24], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x59ddda
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp], esi
movzx eax, byte [ebx + 0x12]
mov dword [esp + 0x24], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x59ddce
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp], esi
movzx eax, byte [ebx + 0x13]
mov dword [esp + 0x24], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x59dda2
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov esi, dword [esp]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 4], eax
adc esi, edx
mov dword [esp], esi
movzx eax, byte [ebx + 0x14]
add ebx, 0x14
mov dword [esp + 0x24], eax
test byte [eax + 0x5ffe78], 3
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x20]
jne 0x59ae4a
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
add eax, 1
cmp eax, dword [esp + 8]
je 0x59de5c
mov ecx, dword [esp + 8]
sub ecx, dword [esp + 0xc]
mov eax, ecx
sar eax, 0x1f
mov dword [esp + 0x30], 0
mov esi, 1
sub esi, ecx
mov ebx, 0
sbb ebx, eax
movzx eax, byte [esp + 0x24]
test byte [eax + 0x5ffe78], 0x20
jne 0x59de73
cmp ecx, 0x159
jge 0x59de87
mov dword [esp + 0x30], 0
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
mov edi, dword [esp]
mov ecx, esi
jmp 0x59b093
mov dword [esp], edi
cmp dl, 0x2e
jne 0x59ddae
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
jmp 0x59d92f
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
test eax, eax
je 0x59da17
mov byte [eax], 0
mov esi, dword [esp + 8]
jmp 0x59be72
mov eax, dword [esi]
test eax, eax
je 0x59da29
mov byte [eax], 0
mov ebx, dword [esp + 8]
mov eax, ebx
mov edx, dword [esp + 0x20]
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 ecx, esi
mov dword [esi], ebx
mov dword [esp + 0x10], ebx
jmp 0x59be9c
mov eax, edi
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0x14
mov eax, 0xfff00000
cmp byte [esp + 0x1c], 0x2d
je 0x59da7b
mov eax, 0x7ff00000
mov dword [edi + 0x2c], eax
mov dword [edi + 0x28], 0
mov eax, dword [esp + 8]
mov dword [esp + 0x10], eax
mov edx, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x1c]
mov ecx, esi
jmp 0x59b2f1
or al, 0x20
cmp al, 0x6e
jne 0x59be05
mov al, byte [ebx + 1]
or al, 0x20
cmp al, 0x61
jne 0x59be05
mov al, byte [ebx + 2]
or al, 0x20
cmp al, 0x6e
jne 0x59be05
lea eax, [ebx + 3]
mov dword [esp + 0x10], eax
mov esi, ecx
test ecx, ecx
je 0x59dc53
mov ecx, dword [esi]
test ecx, ecx
je 0x59dad8
mov byte [ecx], 0
mov ecx, esi
mov dword [esi], eax
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0x301
mov eax, dword [esp + 0x20]
mov dword [edi + 0x28], eax
jmp 0x59be9c
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
test eax, eax
je 0x59db03
mov byte [eax], 0
mov eax, edi
mov edx, dword [esp + 0x20]
sub eax, edx
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
mov dword [esi + 0x24], ecx
shl eax, 8
or eax, 1
mov dword [esi + 0x20], eax
mov dword [esi + 0x28], edx
mov ecx, dword [esp + 0x14]
mov dword [ecx], edi
mov dword [esp + 0x10], edi
mov edi, esi
jmp 0x59be9c
mov eax, esi
mov dword [esi + 0x24], 0
mov dword [esi + 0x20], 0x14
mov eax, 0xfff00000
cmp byte [esp + 0x1c], 0x2d
je 0x59db55
mov eax, 0x7ff00000
mov dword [esi + 0x2c], eax
mov dword [esi + 0x28], 0
mov dword [esp + 0x10], edi
mov edi, esi
jmp 0x59b2e7
mov eax, dword [ebp + 0x1c]
test al, al
js 0x59e0e1
mov eax, dword [ebp + 0x1c]
test al, 0x10
jne 0x59e10c
mov dword [esp + 0x3c], str.number_is_infinity_when_parsed_as_double
mov eax, dword [esp + 0x20]
jmp 0x59b6a7
mov dword [esp + 0x24], 0
mov dword [esp + 0x54], 0
jmp 0x59c180
test esi, esi
je 0x59dc4c
lea ecx, [esi - 1]
mov edx, esi
and edx, 3
je 0x59dc74
mov eax, dword [esp + 0x34]
lea edi, [esp + eax*8]
add edi, 0x2a8
mov eax, dword [esp + esi*8 + 0x2a8]
mov ebx, dword [esp + esi*8 + 0x2ac]
mov dword [edi + esi*8], eax
mov dword [edi + esi*8 + 4], ebx
lea eax, [esi - 1]
mov esi, eax
add edx, 0xffffffff
jne 0x59dbc9
jmp 0x59dc76
add edi, 1
mov dword [esp + 0x3c], str.invalid_escaped_character_in_string
mov dword [esp + 0x20], str.invalid_escaped_character_in_string
jmp 0x59d46b
test esi, esi
je 0x59dd09
lea ecx, [esi - 1]
mov edx, esi
and edx, 3
je 0x59dd0d
mov eax, dword [esp + 0x34]
lea edi, [esp + eax*8]
add edi, 0xa0
mov eax, dword [esp + esi*8 + 0xa0]
mov ebx, dword [esp + esi*8 + 0xa4]
mov dword [edi + esi*8], eax
mov dword [edi + esi*8 + 4], ebx
lea eax, [esi - 1]
mov esi, eax
add edx, 0xffffffff
jne 0x59dc28
jmp 0x59dd0f
xor eax, eax
jmp 0x59dcef
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0x14
mov dword [edi + 0x2c], 0x7ff80000
mov dword [edi + 0x28], 0
jmp 0x59da8d
mov eax, esi
cmp ecx, 3
jb 0x59dce8
mov ecx, dword [esp + 0x34]
lea ecx, [esp + ecx*8]
add ecx, 0x2a8
mov edx, eax
mov esi, dword [esp + eax*8 + 0x2a8]
mov edi, dword [esp + eax*8 + 0x2ac]
mov dword [ecx + eax*8 + 4], edi
mov dword [ecx + eax*8], esi
mov esi, dword [esp + eax*8 + 0x2a4]
mov edi, dword [esp + eax*8 + 0x2a0]
mov dword [ecx + eax*8 - 8], edi
mov dword [ecx + eax*8 - 4], esi
mov esi, dword [esp + eax*8 + 0x298]
mov edi, dword [esp + eax*8 + 0x29c]
mov dword [ecx + eax*8 - 0xc], edi
mov dword [ecx + eax*8 - 0x10], esi
mov esi, dword [esp + eax*8 + 0x294]
mov edi, dword [esp + eax*8 + 0x290]
mov dword [ecx + eax*8 - 0x18], edi
mov dword [ecx + eax*8 - 0x14], esi
add edx, 0xfffffffc
mov eax, edx
jne 0x59dc8a
mov eax, dword [esp + 0x2a8]
mov ecx, dword [esp + 0x34]
add eax, ecx
mov dword [esp + 0x2a8], eax
test ecx, ecx
jne 0x59c996
jmp 0x59cbd0
xor eax, eax
jmp 0x59dd88
mov eax, esi
cmp ecx, 3
jb 0x59dd81
mov ecx, dword [esp + 0x34]
lea ecx, [esp + ecx*8]
add ecx, 0xa0
mov edx, eax
mov esi, dword [esp + eax*8 + 0xa0]
mov edi, dword [esp + eax*8 + 0xa4]
mov dword [ecx + eax*8 + 4], edi
mov dword [ecx + eax*8], esi
mov esi, dword [esp + eax*8 + 0x9c]
mov edi, dword [esp + eax*8 + 0x98]
mov dword [ecx + eax*8 - 8], edi
mov dword [ecx + eax*8 - 4], esi
mov esi, dword [esp + eax*8 + 0x90]
mov edi, dword [esp + eax*8 + 0x94]
mov dword [ecx + eax*8 - 0xc], edi
mov dword [ecx + eax*8 - 0x10], esi
mov esi, dword [esp + eax*8 + 0x8c]
mov edi, dword [esp + eax*8 + 0x88]
mov dword [ecx + eax*8 - 0x18], edi
mov dword [ecx + eax*8 - 0x14], esi
add edx, 0xfffffffc
mov eax, edx
jne 0x59dd23
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x34]
add eax, ecx
mov dword [esp + 0xa0], eax
test ecx, ecx
jne 0x59cbb6
jmp 0x59cbd0
add ebx, 0x13
mov dword [esp + 8], ebx
jmp 0x59d981
xor ecx, ecx
xor edx, edx
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x30], 0
mov edi, dword [esp]
jmp 0x59afb0
add ebx, 0x12
mov dword [esp + 8], ebx
jmp 0x59d981
add ebx, 0x11
mov dword [esp + 8], ebx
jmp 0x59d981
add ebx, 0x10
mov dword [esp + 8], ebx
jmp 0x59d981
mov ecx, 5
jmp 0x59acfe
add ebx, 0xf
mov dword [esp + 8], ebx
jmp 0x59d981
add ebx, 0xe
mov dword [esp + 8], ebx
jmp 0x59d981
add ebx, 0xd
mov dword [esp + 8], ebx
jmp 0x59d981
add ebx, 0xc
mov dword [esp + 8], ebx
jmp 0x59d981
add ebx, 0xb
mov dword [esp + 8], ebx
jmp 0x59d981
add ebx, 0xa
mov dword [esp + 8], ebx
jmp 0x59d981
add ebx, 9
mov dword [esp + 8], ebx
jmp 0x59d981
add ebx, 8
mov dword [esp + 8], ebx
jmp 0x59d981
mov dword [esp + 0x3c], str.no_digit_after_decimal_point
mov eax, dword [esp + 8]
mov dword [esp + 0x10], eax
mov edi, edx
jmp 0x59b6af
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
mov edi, dword [esp]
mov ecx, esi
mov edx, ebx
jmp 0x59afb0
xor eax, eax
cmp byte [esp + 0x1c], 0x2d
sete al
mov edi, edx
mov dword [edx + 0x24], 0
mov dword [edx + 0x20], 0x14
shl eax, 0x1f
mov dword [edx + 0x2c], eax
mov dword [edx + 0x28], 0
jmp 0x59b2df
add ebx, 7
mov dword [esp + 8], ebx
jmp 0x59d981
add ebx, 6
mov dword [esp + 8], ebx
jmp 0x59d981
add ebx, 5
mov dword [esp + 8], ebx
jmp 0x59d981
add ebx, 4
mov dword [esp + 8], ebx
jmp 0x59d981
add ebx, 3
mov dword [esp + 8], ebx
jmp 0x59d981
add ebx, 2
mov dword [esp + 8], ebx
jmp 0x59d981
mov dword [esp + 0x3c], str.invalid_escaped_sequence_in_string
mov dword [esp + 0x20], str.invalid_escaped_sequence_in_string
jmp 0x59d46b
mov dword [esp + 0x3c], str.invalid_UTF_8_encoding_in_string
mov dword [esp + 0x20], str.invalid_UTF_8_encoding_in_string
jmp 0x59d46b
xor ecx, ecx
cmp byte [esp + 0x1c], 0x2d
sete al
mov edx, esi
mov ah, dl
add ah, 0xb7
cmp ah, 0x25
ja case.0x59df4c.182
mov cl, al
mov edx, ebx
sub edx, ecx
mov dword [esp + 0x20], edx
movzx ecx, ah
jmp dword [ecx*4 + 0x6048bc]
mov cl, byte [ebx + 1]
or cl, 0x20
cmp cl, 0x6e
jne 0x59e074
mov cl, byte [ebx + 2]
or cl, 0x20
cmp cl, 0x66
jne 0x59e074
mov eax, ebx
lea esi, [ebx + 3]
mov dl, byte [ebx + 3]
or dl, 0x20
cmp dl, 0x69
jne 0x59dfb2
mov dl, byte [ebx + 4]
or dl, 0x20
cmp dl, 0x6e
jne 0x59dfb2
mov dl, byte [ebx + 5]
or dl, 0x20
cmp dl, 0x69
jne 0x59dfb2
mov dl, byte [ebx + 6]
or dl, 0x20
cmp dl, 0x74
jne 0x59dfb2
mov dl, byte [ebx + 7]
or dl, 0x20
cmp dl, 0x79
jne 0x59dfb2
add ebx, 8
mov esi, ebx
cmp dword [esp + 0x14], 0
je 0x59e172
mov edx, dword [esp + 0x14]
mov edx, dword [edx]
test edx, edx
je 0x59dfca
mov byte [edx], 0
mov ecx, dword [esp + 0x14]
mov ebx, esi
mov dword [ecx], esi
mov edx, esi
mov eax, dword [esp + 0x20]
sub edx, eax
mov esi, edx
sar esi, 0x1f
shld esi, edx, 8
mov dword [edi + 0x24], esi
shl edx, 8
or edx, 1
mov dword [edi + 0x20], edx
mov dword [edi + 0x28], eax
jmp 0x59da51
mov eax, dword [esp + 0xc]
add eax, 1
mov dword [esp + 0x3c], str.no_digit_after_decimal_point
mov dword [esp + 0x10], eax
jmp 0x59b6af
mov ebx, dword [esp + 0xc]
movzx eax, byte [ebx + 2]
add ebx, 1
cmp eax, 0x30
je 0x59e013
mov ecx, eax
mov al, byte [ecx + 0x5ffe78]
test al, 3
jne 0x59d595
add ebx, 1
mov dword [esp + 0xc], ebx
test al, 3
jne 0x59e1a6
test al, 0x20
jne 0x59e1be
xor eax, eax
cmp byte [esp + 0x1c], 0x2d
sete al
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0x14
shl eax, 0x1f
mov dword [edi + 0x2c], eax
mov dword [edi + 0x28], 0
mov eax, dword [esp + 0xc]
jmp 0x59b2e3
mov eax, esi
cmp al, 0x4e
jne case.0x59df4c.182
mov cl, byte [ebx + 1]
or cl, 0x20
cmp cl, 0x61
jne case.0x59df4c.182
mov cl, byte [ebx + 2]
or cl, 0x20
cmp cl, 0x6e
jne case.0x59df4c.182
add ebx, 3
cmp dword [esp + 0x14], 0
je 0x59e140
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx]
test ecx, ecx
je 0x59e0b7
mov byte [ecx], 0
mov ecx, dword [esp + 0x14]
mov dword [ecx], ebx
mov ecx, 0x401
cmp byte [esp + 0x1c], 0x2d
je 0x59e0ce
mov ecx, 0x301
mov dword [edi + 0x20], ecx
mov dword [edi + 0x24], 0
mov eax, dword [esp + 0x20]
jmp 0x59e166
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
test eax, eax
je 0x59e0ee
mov byte [eax], 0
mov esi, dword [esp + 8]
mov eax, esi
mov edx, dword [esp + 0x20]
sub eax, edx
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
mov edi, dword [esp + 0x18]
jmp 0x59be83
xor eax, eax
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x20], 0x14
mov ecx, 0xfff00000
cmp byte [esp + 0x1c], 0x2d
je 0x59e131
mov ecx, 0x7ff00000
mov edi, dword [esp + 0x18]
mov dword [edi + 0x2c], ecx
mov dword [edi + 0x28], eax
jmp 0x59b2df
xor eax, eax
mov ecx, edi
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0x14
mov ecx, 0xfff80000
cmp byte [esp + 0x1c], 0x2d
je 0x59e163
mov ecx, 0x7ff80000
mov dword [edi + 0x2c], ecx
mov dword [edi + 0x28], eax
mov dword [esp + 0x10], ebx
jmp 0x59b2e7
mov eax, edi
mov dword [edi + 0x24], 0
mov dword [edi + 0x20], 0x14
mov eax, 0xfff00000
cmp byte [esp + 0x1c], 0x2d
je 0x59e193
mov eax, 0x7ff00000
mov dword [edi + 0x2c], eax
mov dword [edi + 0x28], 0
mov dword [esp + 0x10], esi
jmp 0x59b2e7
mov dword [esp + 0x3c], str.number_with_leading_zero_is_not_allowed
mov eax, dword [esp + 0xc]
add eax, 0xffffffff
mov dword [esp + 0x10], eax
jmp 0x59b6af
mov ecx, dword [esp + 0xc]
movzx eax, byte [ecx + 1]
mov al, byte [eax + 0x5ffe78]
and al, 0xc
cmp al, 1
sbb ecx, 0
movzx eax, byte [ecx + 2]
add ecx, 2
mov dword [esp + 0xc], ecx
test byte [eax + 0x5ffe78], 3
je 0x59e292
mov ecx, dword [esp + 0xc]
movzx eax, byte [ecx + 1]
add ecx, 1
mov dword [esp + 0xc], ecx
test byte [eax + 0x5ffe78], 3
jne 0x59e1eb
jmp 0x59e046
mov dword [esp + 0x3c], str.invalid_high_surrogate_in_string
mov dword [esp + 0x20], str.invalid_high_surrogate_in_string
jmp 0x59d46b
mov dword [esp + 0x3c], str.no_low_surrogate_in_string
mov dword [esp + 0x20], str.no_low_surrogate_in_string
mov edi, dword [esp + 0x1c]
jmp 0x59d46b
mov dword [esp + 0x3c], str.invalid_escaped_sequence_in_string
mov dword [esp + 0x20], str.invalid_escaped_sequence_in_string
mov edi, dword [esp + 0x1c]
jmp 0x59d46b
mov dword [esp + 0x3c], str.invalid_low_surrogate_in_string
mov dword [esp + 0x20], str.invalid_low_surrogate_in_string
mov edi, dword [esp + 0x1c]
jmp 0x59d46b
mov dword [esp + 0x3c], str.unexpected_control_character_in_string
mov dword [esp + 0x20], str.unexpected_control_character_in_string
jmp 0x59d46b
mov dword [esp + 0x3c], str.unclosed_string
mov dword [esp + 0x20], str.unclosed_string
jmp 0x59d46b
mov dword [esp + 0x3c], str.no_digit_after_exponent_sign
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
jmp 0x59b6af