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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x560
mov esi, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
test esi, esi
je 0x5884a2
mov dword [esp + 0x88], esi
jmp 0x5884b0
lea ecx, [esp + 0xa4]
mov dword [esp + 0x88], ecx
mov ebx, dword [ebp + 8]
test eax, eax
jne 0x589ade
mov ecx, 0x5a8670
mov dword [esp + 0x90], 0x5a8680
mov dword [esp + 0x8c], 0x5a86a0
mov dword [esp + 0x80], 0
test ebx, ebx
je 0x589b08
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x589b23
mov eax, dword [ebp + 0x10]
test al, 1
mov dword [esp + 0xb0], ecx
jne 0x589b49
cmp edi, 0xfffffffb
jae 0x589a87
lea eax, [edi + 4]
push eax
push dword [esp + 0x84]
call ecx
add esp, 8
test eax, eax
je 0x589a87
mov ecx, eax
add ecx, edi
mov dword [esp + 0x70], ecx
mov dword [esp + 0xbc], eax
push edi
push ebx
push eax
mov ebx, eax
call fcn.005c50c0
mov edx, ebx
add esp, 0xc
mov dword [ebx + edi], 0
movzx eax, byte [ebx]
mov cl, byte [eax + 0x5ffc78]
test cl, 0x21
mov dword [esp + 0xa0], esi
mov dword [esp + 0x4c], ebx
jne 0x589b5e
and al, 0xdf
cmp al, 0x5b
mov esi, dword [esp + 0x70]
jne 0x589b9a
lea edi, [ebx + 1]
movzx eax, byte [ebx + 1]
test byte [eax + 0x5ffc78], 1
mov dword [esp + 0xc4], edx
je 0x58859f
movzx eax, byte [ebx + 2]
test byte [eax + 0x5ffc78], 1
jne 0x58881b
mov eax, esi
sub eax, ebx
mov ecx, 0xaaaaaaab
mul ecx
mov dword [esp + 0x10], ebx
mov eax, dword [ebp + 0x10]
and eax, 2
test eax, eax
jne 0x589c3c
mov esi, edx
shr esi, 2
add esi, 6
mov eax, dword [esp + 0xb0]
cmp esi, 0xfffffff
jb 0x5885d8
mov esi, 0xfffffff
mov dword [esp + 0xc], esi
shl esi, 4
push esi
push dword [esp + 0x84]
call eax
add esp, 8
mov ecx, eax
test eax, eax
je 0x589be5
mov eax, dword [ebp + 0x10]
test al, 0x20
jne 0x589c46
mov dword [esp + 0x2c], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0x44], 0
test al, al
jns 0x588631
lea eax, [esp + 0xb8]
mov dword [esp + 0x44], eax
mov al, 1
mov dword [esp + 0x2c], eax
lea eax, [esi + ecx]
add eax, 0xffffffe0
mov dword [esp + 0x84], eax
mov esi, ecx
add esi, 0x20
mov dword [esp + 0x10], edi
cmp byte [ebx], 0x7b
jne 0x588670
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x20], 7
mov dword [ecx + 0x28], 0
mov dword [esp + 0x3c], 0
mov edx, esi
jmp 0x58c9a3
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x20], 6
mov dword [ecx + 0x28], 0
xor eax, eax
mov edx, esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 0x10]
movzx ecx, byte [edi]
cmp ecx, 0x5b
je 0x588920
cmp cl, 0x7b
je 0x58898d
mov al, byte [ecx + 0x5ffc78]
test al, 2
jne 0x588a00
mov ebx, edx
mov edx, ecx
add dl, 0xa3
cmp dl, 0x17
ja case.default.0x5886d6
movzx edx, dl
jmp dword [edx*4 + 0x604674]
cmp cl, 0x22
je 0x588e1e
test al, 1
jne 0x588710
mov eax, dword [ebp + 0x10]
test al, 0x10
jne 0x588738
test al, 8
je case.0x58877b.182
lea ecx, [esp + 0x10]
call fcn.0059a490
test al, al
mov edx, ebx
jne 0x5886a0
jmp 0x5911bc
add edi, 1
mov edx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
add edi, 1
test byte [eax + 0x5ffc78], 1
jne 0x588720
jmp 0x5886a0
cmp cl, 0x49
je 0x588747
cmp cl, 0x69
je 0x588747
cmp cl, 0x4e
jne 0x5886f4
mov dword [esp + 0x40], esi
mov eax, ebx
add eax, 0x10
mov ebx, eax
cmp eax, dword [esp + 0x84]
jae 0x58bdfa
mov eax, dword [esp + 0xc]
mov dword [esp + 0x30], eax
mov eax, ecx
add al, 0xb7
cmp al, 0x25
ja case.0x58877b.182
add dword [esp + 0x28], 1
movzx eax, al
jmp dword [eax*4 + 0x604824]
mov al, byte [edi + 1]
or al, 0x20
cmp al, 0x6e
jne 0x58a6db
mov al, byte [edi + 2]
or al, 0x20
cmp al, 0x66
jne 0x58a6db
lea eax, [edi + 3]
mov cl, byte [edi + 3]
or cl, 0x20
cmp cl, 0x69
jne 0x5887d9
mov cl, byte [edi + 4]
or cl, 0x20
cmp cl, 0x6e
jne 0x5887d9
mov cl, byte [edi + 5]
or cl, 0x20
cmp cl, 0x69
jne 0x5887d9
mov cl, byte [edi + 6]
or cl, 0x20
cmp cl, 0x74
jne 0x5887d9
mov cl, byte [edi + 7]
or cl, 0x20
cmp cl, 0x79
jne 0x5887d9
lea eax, [edi + 8]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x44], 0
je 0x58ab39
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx]
test ecx, ecx
je 0x5887f5
mov byte [ecx], 0
mov ecx, dword [esp + 0x44]
mov dword [ecx], eax
sub eax, edi
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
shl eax, 8
or eax, 1
mov edx, ebx
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov dword [ebx + 8], edi
jmp 0x58972e
mov dword [esp + 0x10], ebx
mov eax, dword [ebp + 0x10]
and eax, 2
mov eax, dword [esp + 0xb0]
jne 0x589c73
sub esi, ebx
shr esi, 4
add esi, 6
cmp esi, 0xfffffff
jb 0x588847
mov esi, 0xfffffff
mov dword [esp + 0x28], esi
shl esi, 4
push esi
push dword [esp + 0x84]
call eax
add esp, 8
mov ecx, eax
test eax, eax
je 0x589be5
mov eax, dword [ebp + 0x10]
test al, 0x20
jne 0x589c89
mov dword [esp + 0x24], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0x3c], 0
test al, al
jns 0x5888a0
lea eax, [esp + 0xb8]
mov dword [esp + 0x3c], eax
mov al, 1
mov dword [esp + 0x24], eax
mov edx, ecx
add edx, 0x20
mov dword [esp + 0x10], edi
cmp byte [ebx], 0x7b
lea eax, [ebx + 2]
lea esi, [esi + ecx - 0x20]
mov dword [esp + 0x84], esi
jne 0x5888eb
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x20], 7
mov dword [ecx + 0x28], 0
mov dword [esp + 0x40], 0
cmp byte [edi], 0xa
jne 0x5888e4
mov dword [esp + 0x10], eax
mov edi, eax
mov ebx, edx
jmp 0x5911d9
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x20], 6
mov dword [ecx + 0x28], 0
mov dword [esp + 0x30], 0
cmp byte [edi], 0xa
mov ebx, dword [esp + 0x4c]
jne 0x588917
mov dword [esp + 0x10], eax
mov edi, eax
mov dword [esp + 0x44], edx
jmp 0x595acf
mov ebx, edx
mov eax, dword [esp + 0xc]
mov dword [esp + 0x30], eax
add edi, 1
mov dword [esp + 0x10], edi
mov edx, dword [esp + 0x28]
mov eax, edx
shl edx, 8
movzx ecx, byte [esi]
or ecx, edx
shr eax, 0x18
add ecx, 0x100
adc eax, 0
mov dword [esi], ecx
mov dword [esi + 4], eax
add ebx, 0x10
mov edi, ebx
cmp ebx, dword [esp + 0x84]
jae 0x589dc5
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x14]
mov dword [edi + 4], 0
mov dword [edi], 6
mov eax, edi
sub eax, esi
mov dword [edi + 8], eax
xor eax, eax
mov esi, edi
mov edx, edi
jmp 0x588689
mov ebx, edx
mov eax, dword [esp + 0xc]
mov dword [esp + 0x30], eax
add edi, 1
mov dword [esp + 0x10], edi
mov edx, dword [esp + 0x28]
mov eax, edx
shl edx, 8
movzx ecx, byte [esi]
or ecx, edx
shr eax, 0x18
add ecx, 0x100
adc eax, 0
mov dword [esi], ecx
mov dword [esi + 4], eax
add ebx, 0x10
mov edi, ebx
cmp ebx, dword [esp + 0x84]
jae 0x589d5a
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x14]
mov dword [edi + 4], 0
mov dword [edi], 7
mov eax, edi
sub eax, esi
mov dword [edi + 8], eax
mov dword [esp + 0x3c], 0
mov esi, edi
mov edx, edi
jmp 0x58c9a3
add edx, 0x10
cmp edx, dword [esp + 0x84]
jae 0x589e7a
mov eax, dword [esp + 0xc]
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 4], edx
add dword [esp + 0x28], 1
mov dword [esp + 0x98], 0
test al, al
mov dword [esp + 0x40], esi
js 0x588a42
cmp dword [esp + 0x44], 0
jne 0x58a5e1
mov cl, byte [edi]
xor eax, eax
mov byte [esp + 0x1c], cl
cmp cl, 0x2d
sete al
lea ecx, [edi + eax]
movzx eax, byte [edi + eax]
test byte [eax + 0x5ffe78], 2
je 0x589eee
add eax, 0xffffffd0
movzx edx, byte [ecx + 1]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x589f46
mov edx, 0xa
imul edx
mov ebx, edx
add eax, esi
adc ebx, 0
movzx edx, byte [ecx + 2]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x589fa6
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 3]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x589fdc
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 4]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58a012
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 5]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58a048
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 6]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58a07e
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 7]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58a0b4
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 8]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58a0ea
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 9]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58a120
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 0xa]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58a156
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 0xb]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58a18c
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 0xc]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58a1c2
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 0xd]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58a1f8
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 0xe]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58a22e
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 0xf]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58a264
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 0x10]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58a29a
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 0x11]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58a2cc
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 0x12]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58a2fe
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
mov dword [esp + 0xc], eax
adc ebx, edx
mov esi, ecx
mov al, byte [ecx + 0x13]
add esi, 0x13
movzx ecx, al
mov dl, byte [ecx + 0x5ffe78]
test dl, 0x33
je 0x589102
mov dword [esp + 8], eax
test dl, 3
je 0x588ce1
mov eax, esi
movzx esi, byte [esi + 1]
test byte [esi + 0x5ffe78], 0x33
mov esi, eax
je 0x5891d7
test dl, 0x20
jne 0x589179
mov eax, dword [esp + 8]
cmp al, 0x2e
mov dword [esp + 0x24], ebx
jne 0x5892a4
lea ecx, [esi + 1]
movzx eax, byte [esi + 1]
test byte [eax + 0x5ffe78], 3
je 0x58dc5c
mov dword [esp + 0x3c], esi
jmp 0x5892ae
mov edx, ebx
add edx, 0x10
cmp edx, dword [esp + 0x84]
jae 0x58a359
mov eax, dword [esp + 0xc]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x40], esi
cmp dword [edi], 0x65757274
jne 0x5977d8
add dword [esp + 0x28], 1
mov dword [edx + 4], 0
mov dword [edx], 0xb
jmp 0x588d9a
mov edx, ebx
add edx, 0x10
cmp edx, dword [esp + 0x84]
jae 0x58a3cb
mov eax, dword [esp + 0xc]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x40], esi
add dword [esp + 0x28], 1
mov eax, dword [edi]
cmp eax, 0x6c6c756e
jne 0x58a504
mov dword [edx + 4], 0
mov dword [edx], 2
add edi, 4
mov dword [esp + 0x10], edi
jmp 0x59a1c6
lea eax, [edi + 1]
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], eax
cmp dword [esp + 0x28], 0
jne 0x58a43d
xor edi, edi
mov eax, dword [esp + 0xc]
mov dword [esp + 0x30], eax
mov edx, ebx
mov ebx, dword [esp + 0x24]
jmp 0x59a262
mov edx, ebx
add edx, 0x10
cmp edx, dword [esp + 0x84]
jae 0x58a492
mov eax, dword [esp + 0xc]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x40], esi
cmp dword [edi + 1], 0x65736c61
jne 0x5977d8
add dword [esp + 0x28], 1
mov dword [edx + 4], 0
mov dword [edx], 3
add edi, 5
mov dword [esp + 0x10], edi
jmp 0x59a1c6
add ebx, 0x10
cmp ebx, dword [esp + 0x84]
jae 0x58a612
mov dword [esp + 0x40], esi
mov eax, dword [esp + 0xc]
mov dword [esp + 0x30], eax
mov dword [esp + 4], ebx
add dword [esp + 0x28], 1
add edi, 1
mov ecx, edi
movzx eax, byte [ecx]
test byte [eax + 0x5ffc78], 0xc
jne 0x58907e
add ecx, 8
mov esi, ecx
nop
nop
nop
movzx eax, byte [esi - 7]
test byte [eax + 0x5ffc78], 0xc
jne 0x588f63
movzx eax, byte [esi - 6]
test byte [eax + 0x5ffc78], 0xc
jne 0x588f68
movzx eax, byte [esi - 5]
test byte [eax + 0x5ffc78], 0xc
jne 0x588f6d
movzx eax, byte [esi - 4]
test byte [eax + 0x5ffc78], 0xc
jne 0x588f72
movzx eax, byte [esi - 3]
test byte [eax + 0x5ffc78], 0xc
jne 0x588f77
movzx eax, byte [esi - 2]
test byte [eax + 0x5ffc78], 0xc
jne 0x588f7c
movzx eax, byte [esi - 1]
test byte [eax + 0x5ffc78], 0xc
jne 0x588f81
movzx eax, byte [esi]
test byte [eax + 0x5ffc78], 0xc
jne 0x588fa7
movzx eax, byte [esi + 1]
test byte [eax + 0x5ffc78], 0xc
jne 0x588f86
movzx eax, byte [esi + 2]
test byte [eax + 0x5ffc78], 0xc
jne 0x588f8b
movzx eax, byte [esi + 3]
test byte [eax + 0x5ffc78], 0xc
jne 0x588f90
movzx eax, byte [esi + 4]
test byte [eax + 0x5ffc78], 0xc
jne 0x588f95
movzx eax, byte [esi + 5]
test byte [eax + 0x5ffc78], 0xc
jne 0x588f9a
movzx eax, byte [esi + 6]
test byte [eax + 0x5ffc78], 0xc
jne 0x588f9f
movzx eax, byte [esi + 7]
test byte [eax + 0x5ffc78], 0xc
jne 0x588fa4
movzx eax, byte [esi + 8]
add esi, 0x10
test byte [eax + 0x5ffc78], 0xc
je 0x588e60
add esi, 0xfffffff8
jmp 0x588fa7
add esi, 0xfffffff9
jmp 0x588fa7
add esi, 0xfffffffa
jmp 0x588fa7
add esi, 0xfffffffb
jmp 0x588fa7
add esi, 0xfffffffc
jmp 0x588fa7
add esi, 0xfffffffd
jmp 0x588fa7
add esi, 0xfffffffe
jmp 0x588fa7
add esi, 0xffffffff
jmp 0x588fa7
add esi, 1
jmp 0x588fa7
add esi, 2
jmp 0x588fa7
add esi, 3
jmp 0x588fa7
add esi, 4
jmp 0x588fa7
add esi, 5
jmp 0x588fa7
add esi, 6
jmp 0x588fa7
add esi, 7
mov ecx, 0xd
cmp al, 0x22
je 0x5890c5
mov dword [esp + 0xc], 0
test al, al
jns 0x58b05f
test dword [ebp + 0x10], 0x40000000
jne 0x589085
mov eax, dword [esi]
mov edx, eax
and edx, 0xc0c0f0
mov ecx, esi
cmp edx, 0x8080e0
jne 0x58900d
mov edx, eax
and edx, 0x200f
je 0x58900d
cmp edx, 0x200d
je 0x58900d
mov eax, dword [ecx + 3]
add ecx, 3
mov edx, eax
and edx, 0xc0c0f0
cmp edx, 0x8080e0
je 0x588fe5
test al, al
jns 0x588e48
jmp 0x58901d
mov eax, dword [ecx + 2]
add ecx, 2
mov edx, eax
and edx, 0xc0e0
cmp edx, 0x80c0
jne 0x58903c
mov edx, eax
and edx, 0x1e
jne 0x589017
jmp 0x58903c
mov eax, dword [ecx + 4]
add ecx, 4
mov edx, eax
and edx, 0xc0c0c0f8
cmp edx, 0x808080f0
jne 0x589061
mov edx, eax
and edx, 0x3007
je 0x589061
test al, 4
je 0x589036
and eax, 0x3003
je 0x589036
cmp esi, ecx
jne 0x588e48
mov eax, dword [ebp + 0x10]
test al, 0x40
je 0x5909e6
add esi, 1
mov ecx, esi
jmp 0x588e48
mov esi, ecx
jmp 0x588fa7
mov ecx, eax
add cl, 0x7f
cmp cl, 0x7d
ja 0x5890af
add esi, 1
cmp byte [esi], 0
je 0x58eee5
movzx eax, byte [esi + 1]
mov ecx, eax
add cl, 0x7f
add esi, 2
cmp cl, 0x7e
jb 0x589092
add esi, 0xffffffff
mov ecx, esi
cmp al, 0xff
je 0x5890bd
cmp al, 0x80
jne 0x588e48
add ecx, 1
jmp 0x588e48
mov dword [esp + 0xc], 0
mov ebx, esi
mov eax, ebx
sub eax, edi
mov edx, eax
sar edx, 0x1f
shld edx, eax, 8
or edx, dword [esp + 0xc]
shl eax, 8
or eax, ecx
mov ecx, dword [esp + 4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, ecx
mov dword [ecx + 8], edi
mov byte [ebx], 0
add esi, 1
mov dword [esp + 0x10], esi
jmp 0x58972e
cmp byte [esp + 0x1c], 0x2d
mov edx, dword [esp + 0xc]
jne 0x589196
mov eax, SysReAllocString
mov ecx, edx
neg ecx
sbb eax, ebx
jae 0x589196
mov eax, dword [ebp + 0x10]
test al, al
mov edx, dword [esp + 4]
js 0x58a7d4
mov dword [edx + 4], 0
mov dword [edx], 0x14
mov eax, dword [esp + 0xc]
mov dword [esp + 0x4d8], eax
mov dword [esp + 0x4dc], ebx
shr ebx, 0x1f
fild qword [esp + 0x4d8]
fadd dword [ebx*4 + 0x5ffc50]
fstp qword [esp + 0x518]
fld qword [esp + 0x518]
fchs
fstp qword [edx + 8]
mov dword [esp + 0x10], esi
jmp 0x58972e
xor ecx, ecx
mov dword [esp + 8], esi
xor edx, edx
mov dword [esp + 0x74], 0
mov dword [esp + 0x38], 0
jmp 0x5893ba
mov edi, esi
xor eax, eax
mov ecx, edx
neg ecx
sbb eax, ebx
xor edx, edx
mov esi, dword [esp + 4]
mov dword [esi + 4], 0
cmp byte [esp + 0x1c], 0x2d
sete dl
lea edx, [edx*8 + 4]
mov dword [esi], edx
mov edx, esi
je 0x5891c8
mov eax, ebx
mov ecx, dword [esp + 0xc]
mov dword [edx + 8], ecx
mov dword [edx + 0xc], eax
mov dword [esp + 0x10], edi
jmp 0x58972e
add ecx, 0xffffffd0
cmp dword [esp + 0xc], 0x99999999
mov esi, ebx
sbb esi, 0x19999999
mov esi, eax
jb 0x58921b
mov esi, 0x19999999
mov dword [esp + 0x24], ebx
mov ebx, 0x99999999
xor ebx, dword [esp + 0xc]
xor esi, dword [esp + 0x24]
or esi, ebx
mov esi, eax
mov ebx, dword [esp + 0x24]
jne 0x588ce1
cmp ecx, 5
ja 0x588ce1
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
add esi, 1
mov dword [esp + 0x3c], esi
lea esi, [ebx + ebx*4]
lea edx, [edx + esi*2]
mov esi, ecx
sar esi, 0x1f
add eax, ecx
adc edx, esi
cmp byte [esp + 0x1c], 0x2d
jne 0x589aad
mov esi, dword [esp + 0x3c]
mov ecx, dword [ebp + 0x10]
test cl, cl
js 0x58a7d4
mov ecx, dword [esp + 4]
mov dword [ecx + 4], 0
mov dword [ecx], 0x14
mov dword [esp + 0x4e0], eax
mov dword [esp + 0x4e4], edx
shr edx, 0x1f
fild qword [esp + 0x4e0]
fadd dword [edx*4 + 0x5ffc50]
mov edx, ecx
fstp qword [esp + 0x520]
fld qword [esp + 0x520]
fchs
fstp qword [ecx + 8]
mov dword [esp + 0x10], esi
jmp 0x58972e
mov ecx, esi
mov dword [esp + 0x3c], 0
mov dword [esp + 8], eax
lea esi, [ecx + 1]
mov dword [esp + 0x18], ecx
sub ecx, edi
movzx ebx, byte [esi]
movzx edx, byte [ebx + 0x5ffe78]
add esi, 1
add ecx, 1
test dl, 3
jne 0x5892bb
xor eax, eax
cmp byte [esp + 8], 0x34
seta al
add dword [esp + 0xc], eax
mov eax, esi
adc dword [esp + 0x24], 0
lea eax, [esi - 1]
cmp dword [esp + 0x3c], 0
je 0x5892f5
mov ebx, dword [esp + 0x24]
jmp 0x58933d
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0x10]
test al, al
jns 0x58930b
mov dh, dl
and dh, 0x30
je 0x58ad0a
cmp bl, 0x2e
jne 0x589acf
mov eax, esi
movzx ecx, byte [esi]
test byte [ecx + 0x5ffe78], 3
mov ebx, dword [esp + 0x24]
je 0x590a83
movzx ecx, byte [eax + 1]
add eax, 1
movzx edx, byte [ecx + 0x5ffe78]
test dl, 3
jne 0x58932a
mov esi, dword [esp + 0x3c]
mov dword [esp + 8], eax
add eax, 0xffffffff
jmp 0x589353
add eax, 0xffffffff
movzx ecx, byte [eax]
cmp cl, 0x30
je 0x589350
cmp cl, 0x2e
je 0x589350
xor ecx, ecx
mov dword [esp + 0x3c], esi
sub esi, dword [esp + 0x18]
setb cl
mov dword [esp + 0x34], ecx
mov ecx, esi
sar ecx, 0x1f
add dword [esp + 0x34], esi
mov esi, dword [esp + 0x18]
adc ecx, 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x74], 0
mov dword [esp + 0x38], 0
cmp eax, esi
jb 0x5893a5
mov eax, dword [esp + 8]
mov dword [esp + 0x74], eax
mov dword [esp + 0x38], esi
test dl, 0x20
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x20]
je 0x589498
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 8]
movzx eax, byte [ebx + 1]
add ebx, 1
mov dword [esp + 0x5c], eax
mov al, byte [eax + 0x5ffe78]
and al, 0xc
cmp al, 1
mov eax, ebx
sbb eax, 0xffffffff
movzx edx, byte [eax]
test byte [edx + 0x5ffe78], 3
je 0x58e2cb
cmp dl, 0x30
mov dword [esp + 0x3c], esi
mov dword [esp + 0x34], ecx
jne 0x589428
mov ebx, dword [esp + 0x24]
movzx edx, byte [eax + 1]
add eax, 1
cmp edx, 0x30
je 0x589401
mov dword [esp + 0x18], eax
test byte [edx + 0x5ffe78], 3
jne 0x58942c
xor eax, eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 8], ecx
xor ecx, ecx
jmp 0x589462
mov dword [esp + 0x18], eax
xor eax, eax
xor ecx, ecx
mov esi, dword [esp + 0x18]
add dl, 0xd0
movzx ebx, dl
mov edx, 0xa
mul edx
add ecx, ecx
add eax, ebx
lea ecx, [ecx + ecx*4]
adc ecx, edx
movzx edx, byte [esi + 1]
add esi, 1
test byte [edx + 0x5ffe78], 3
jne 0x589434
mov dword [esp + 8], esi
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 8]
sub edx, dword [esp + 0x18]
cmp edx, 0x13
jge 0x58a684
xor edx, edx
mov esi, eax
neg esi
sbb edx, ecx
cmp byte [esp + 0x5c], 0x2d
je 0x589486
mov edx, ecx
mov esi, eax
mov ecx, dword [esp + 0x34]
add ecx, esi
mov eax, dword [esp + 0x20]
adc eax, edx
mov edx, eax
mov esi, dword [esp + 0x3c]
mov eax, 0xfffffea8
cmp eax, ecx
mov eax, 0xffffffff
sbb eax, edx
jge 0x58a68b
cmp ecx, 0x135
sbb edx, 0
mov edx, dword [esp + 0xc]
jge 0x58a6b8
mov dword [esp + 0x98], ecx
lea eax, [ecx + 0x132]
cmp eax, 0x251
mov dword [esp + 0xc], edx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x3c], esi
ja 0x58a5c7
cmp dword [esp + 0x38], 0
jne 0x58a5c7
mov eax, ecx
shl eax, 4
mov dword [esp + 0x18], eax
mov eax, ecx
test ebx, ebx
jne 0x589508
bsr ecx, edx
xor ecx, 0x1f
add ecx, 0x20
jmp 0x58950e
bsr ecx, ebx
xor ecx, 0x1f
mov esi, ebx
shld esi, edx, cl
mov dword [esp + 0x34], esi
imul eax, eax, 0x3526a
mov dword [esp + 0x20], eax
shl edx, cl
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x6014ec]
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0x6014e8]
mov dword [esp + 0x58], eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x5c], ecx
test cl, 0x20
jne 0x589552
mov eax, dword [esp + 0x34]
jmp 0x589556
mov eax, edx
xor edx, edx
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x58]
mov eax, ecx
mov esi, edx
mul edx
mov dword [esp + 0x60], edx
mov dword [esp + 0x7c], eax
mov ebx, dword [esp + 0x50]
mov eax, ebx
mov dword [esp + 0x6c], esi
mul esi
mov esi, eax
mov dword [esp + 0x68], edx
add dword [esp + 0x20], 0xffc10000
mov eax, ecx
mov ecx, dword [esp + 0x34]
mul ecx
mov dword [esp + 0x78], edx
mov dword [esp + 0x64], eax
mov eax, ebx
mul ecx
mov ebx, eax
add esi, dword [esp + 0x60]
adc ebx, dword [esp + 0x68]
adc edx, 0
add esi, dword [esp + 0x64]
mov dword [esp + 0x64], esi
adc ebx, dword [esp + 0x78]
adc edx, 0
mov dword [esp + 0x60], edx
mov eax, ebx
and eax, 0x1ff
add eax, 0xffffffff
mov ecx, 0
adc ecx, 0xffffffff
cmp eax, 0x1fe
sbb ecx, 0
jae 0x5895e3
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x60]
jmp 0x5896a3
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x6014f0]
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x6c]
mul ecx
mov dword [esp + 0x68], edx
mov eax, dword [esi + 0x6014f4]
mov dword [esp + 0x18], eax
mul ecx
mov ecx, edx
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x78]
mov esi, dword [esp + 0x34]
mul esi
mov dword [esp + 0x78], edx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x18]
mul esi
mov esi, dword [esp + 0x9c]
add esi, dword [esp + 0x68]
adc ecx, 0
add esi, dword [esp + 0x94]
mov esi, dword [esp + 0x78]
adc esi, 0
add ecx, eax
adc edx, 0
add ecx, esi
adc edx, 0
mov esi, ecx
add esi, dword [esp + 0x7c]
mov dword [esp + 0x68], edx
adc edx, dword [esp + 0x64]
mov dword [esp + 0x78], esi
add esi, 1
mov eax, edx
adc eax, 0
cmp esi, 2
sbb eax, 0
jb 0x589737
mov esi, dword [esp + 0x78]
cmp esi, dword [esp + 0x7c]
mov eax, edx
sbb eax, dword [esp + 0x64]
setb al
cmp esi, ecx
sbb edx, dword [esp + 0x68]
setb cl
or cl, al
movzx eax, cl
add ebx, eax
mov edi, dword [esp + 0x60]
adc edi, 0
mov esi, dword [esp + 0x20]
shr esi, 0x10
mov ecx, edi
not ecx
shr ecx, 0x1f
shld edi, ebx, cl
shl ebx, cl
mov edx, ebx
and edx, 0x400
add edx, ebx
adc edi, 0
sub esi, dword [esp + 0x5c]
sub esi, ecx
cmp edx, 0x400
mov eax, edi
sbb eax, 0
setb bl
adc esi, 0
xor ecx, ecx
mov eax, 0
test bl, bl
jne 0x5896eb
mov eax, edi
shr eax, 0xb
and eax, 0xfffff
test bl, bl
jne 0x5896f5
shld edi, edx, 0x15
mov ecx, edi
xor edx, edx
cmp byte [esp + 0x1c], 0x2d
sete dl
shl edx, 0x1f
or eax, edx
shl esi, 0x14
add esi, 0x47e00000
or eax, esi
mov edx, dword [esp + 4]
mov dword [edx + 4], 0
mov dword [edx], 0x14
mov dword [edx + 8], ecx
mov dword [edx + 0xc], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x14]
jmp 0x59a1c6
mov dword [esp + 0x68], 0
mov esi, dword [esp + 0x20]
xor eax, eax
cmp dword [esp + 0x38], 0
setne al
shl eax, 2
mov dword [esp + 0x9c], 0
xor edx, edx
mov ecx, dword [esp + 0x5c]
shld edx, eax, cl
shl eax, cl
test cl, 0x20
jne 0x589775
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], edx
jmp 0x589781
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], 0
sar esi, 0x10
mov dword [esp + 0x20], esi
mov ebx, dword [esp + 0x18]
shr ebx, 0x1f
add ebx, dword [esp + 0x58]
mov ecx, dword [esp + 0x50]
adc ecx, 0
mov esi, ebx
imul esi, dword [esp + 0x48]
mov eax, ebx
mul dword [esp + 0x6c]
add edx, esi
mov dword [esp + 0x50], edx
mov eax, ecx
mul dword [esp + 0x6c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x58], edx
mov eax, dword [esp + 0x48]
imul eax, ecx
mov dword [esp + 0x48], eax
mov esi, ebx
mov eax, ebx
mul dword [esp + 0x34]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x6c], edx
mov ebx, dword [esp + 0x68]
imul esi, ebx
mov dword [esp + 0x78], esi
mov eax, ecx
mul dword [esp + 0x34]
mov dword [esp + 0x94], eax
mov dword [esp + 0x34], edx
imul ebx, ecx
mov edx, dword [esp + 0x18]
add edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x58]
adc ecx, dword [esp + 0x48]
add edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x6c]
adc eax, dword [esp + 0x78]
mov esi, dword [esp + 0x34]
add ecx, dword [esp + 0x94]
adc esi, ebx
add ecx, eax
adc esi, 0
shr edx, 0x1f
add edx, ecx
mov dword [esp + 0x18], edx
adc esi, 0
xor ebx, ebx
mov eax, dword [esp + 0x64]
mov ecx, eax
mov edx, dword [esp + 0x60]
or ecx, edx
sete bl
sub eax, ebx
sbb edx, 0
add eax, 9
adc edx, 0
test esi, esi
mov ecx, edx
mov dword [esp + 0x60], edx
jne 0x589864
mov ebx, dword [esp + 0x18]
bsr ecx, ebx
xor ecx, 0x1f
add ecx, 0x20
jmp 0x58986e
bsr ecx, esi
xor ecx, 0x1f
mov ebx, dword [esp + 0x18]
shld esi, ebx, cl
mov dword [esp + 0x34], esi
shl ebx, cl
mov esi, dword [esp + 0x20]
sub esi, dword [esp + 0x5c]
sub esi, ecx
lea edx, [esi + 0x40]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x60]
shld edx, eax, cl
shl eax, cl
test cl, 0x20
je 0x5898a0
mov dword [esp + 0x34], ebx
xor ebx, ebx
mov edx, eax
xor eax, eax
cmp dword [esp + 0x20], 0xfffffb8f
jl 0x5898b7
add esi, 0x4b2
mov dword [esp + 0x9c], esi
mov esi, 0x35
cmp dword [esp + 0x20], 0xfffffbc2
jle 0x58a80f
cmp esi, 3
jle 0x58a81f
mov dword [esp + 0x18], ebx
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], eax
mov ecx, 0x40
sub ecx, esi
mov esi, dword [esp + 0x34]
shr esi, cl
mov ebx, 0
test cl, 0x20
jne 0x5898f8
mov ebx, esi
mov eax, dword [esp + 0x18]
mov dword [esp + 0x58], ecx
mov edx, dword [esp + 0x34]
shrd eax, edx, cl
mov ecx, dword [esp + 0x58]
test cl, 0x20
jne 0x589912
mov esi, eax
mov dword [esp + 0x5c], esi
mov eax, 0xffffffff
mov esi, 0xffffffff
shl esi, cl
test cl, 0x20
jne 0x58992b
mov edx, esi
jmp 0x58992f
xor edx, edx
mov eax, esi
not eax
not edx
mov esi, dword [esp + 0x18]
and esi, edx
mov edx, dword [esp + 0x34]
and edx, eax
shld edx, esi, 3
mov dword [esp + 0x34], edx
shl esi, 3
mov dword [esp + 0x18], esi
add cl, 0xff
mov eax, 8
xor edx, edx
shld edx, eax, cl
shl eax, cl
test cl, 0x20
mov esi, dword [esp + 0x5c]
je 0x58996a
mov edx, eax
xor eax, eax
mov dword [esp + 0x50], eax
mov ecx, eax
add ecx, dword [esp + 0x64]
mov dword [esp + 0x48], edx
adc edx, dword [esp + 0x60]
cmp dword [esp + 0x18], ecx
mov eax, dword [esp + 0x34]
mov dword [esp + 0x68], edx
sbb eax, edx
setae al
movzx eax, al
add esi, eax
adc ebx, 0
mov eax, esi
or eax, ebx
mov dword [esp + 0x6c], ecx
je 0x58a87b
test ebx, ebx
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x58]
jne 0x5899ba
bsr ecx, esi
xor ecx, 0x1f
add ecx, 0x20
jmp 0x5899c0
bsr ecx, ebx
xor ecx, 0x1f
add eax, edx
shld ebx, esi, cl
shl esi, cl
test cl, 0x20
je 0x5899d0
mov ebx, esi
xor esi, esi
mov edx, dword [esp + 4]
sub eax, ecx
cmp eax, 0x3c0
mov ecx, dword [esp + 0x14]
jg 0x58a6b8
shrd esi, ebx, 0xb
shr ebx, 0xb
cmp eax, 0xfffffbc2
jle 0x58ab09
shl eax, 0x14
and ebx, 0xfffff
add eax, ebx
add eax, 0x43e00000
mov dword [esp + 0x20], eax
xor eax, 0x7ff00000
or eax, esi
je 0x58a6b8
mov dword [esp + 0x5c], esi
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x64]
mov dword [esp + 0x50], eax
mov esi, dword [esp + 0x48]
sbb esi, dword [esp + 0x60]
mov ebx, dword [esp + 0x18]
cmp ebx, dword [esp + 0x6c]
mov eax, dword [esp + 0x34]
sbb eax, dword [esp + 0x68]
jae 0x589a50
cmp dword [esp + 0x50], ebx
sbb esi, dword [esp + 0x34]
jb 0x58a892
xor eax, eax
cmp byte [esp + 0x1c], 0x2d
sete al
shl eax, 0x1f
mov esi, dword [esp + 0x20]
or esi, eax
mov dword [edx + 4], 0
mov dword [edx], 0x14
mov eax, dword [esp + 0x5c]
mov dword [edx + 8], eax
mov dword [edx + 0xc], esi
mov eax, dword [esp + 8]
mov dword [esp + 0x10], eax
jmp 0x59a1c6
test esi, esi
jne 0x589a92
lea esi, [esp + 0xa4]
mov dword [esi + 8], 0
mov dword [esi + 4], str.memory_allocation_failed
mov dword [esi], 2
xor esi, esi
jmp 0x599f2b
mov ecx, dword [esp + 4]
mov dword [ecx + 4], 0
mov dword [ecx], 4
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
mov edx, ecx
mov eax, dword [esp + 0x3c]
jmp 0x58972a
mov esi, dword [esp + 0x3c]
mov eax, esi
mov ebx, dword [esp + 0x24]
jmp 0x589341
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x90], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x8c], ecx
mov ecx, edx
mov eax, dword [eax + 0xc]
mov dword [esp + 0x80], eax
test ebx, ebx
jne 0x5884e9
test esi, esi
jne 0x589b13
lea esi, [esp + 0xa4]
mov dword [esi + 8], 0
mov dword [esi + 4], str.input_data_is_NULL
jmp 0x589b3c
test esi, esi
jne 0x589b2e
lea esi, [esp + 0xa4]
mov dword [esi + 8], 0
mov dword [esi + 4], str.input_length_is_0
mov dword [esi], 1
xor esi, esi
jmp 0x599f2b
lea eax, [ebx + edi]
mov dword [esp + 0x70], eax
mov dword [esp + 0xbc], ebx
xor edx, edx
jmp 0x58854c
mov eax, dword [ebp + 0x10]
test al, 8
jne 0x58ae7a
test cl, 1
je 0x589b89
mov ebx, dword [esp + 0x4c]
movzx eax, byte [ebx + 1]
add ebx, 1
test byte [eax + 0x5ffc78], 1
jne 0x589b72
mov dword [esp + 0xbc], ebx
cmp ebx, dword [esp + 0x70]
jae 0x58aea6
mov al, byte [ebx]
jmp 0x588569
mov ecx, dword [esp + 0x4c]
mov edx, ebx
mov ebx, dword [esp + 0x88]
push ebx
push dword [ebp + 0x10]
push dword [esp + 0x88]
push dword [esp + 0x98]
push dword [esp + 0xa0]
push dword [esp + 0xc4]
push esi
call fcn.0059a560
add esp, 0x1c
mov esi, eax
mov edi, dword [ebp + 0x18]
test esi, esi
jne 0x599f17
test edi, edi
je 0x589c56
mov eax, edi
jmp 0x589c5d
mov dword [esp + 0x14], ecx
mov eax, dword [ebp + 0x10]
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x4c]
mov ecx, ebx
mov edx, esi
push eax
push 2
push dword [esp + 0x78]
call fcn.005a86b0
add esp, 0xc
test al, al
mov edi, dword [ebp + 0x18]
jne 0x589c12
mov dword [esp + 0x70], esi
mov ecx, str.unexpected_end_of_data
jne 0x589c1e
mov ecx, str.memory_allocation_failed
mov esi, dword [esp + 0x70]
sub esi, ebx
movzx eax, al
lea eax, [eax + eax*2]
add eax, 2
test edi, edi
je 0x590ae4
mov edx, edi
jmp 0x590aeb
mov esi, 0x30
jmp 0x5885c4
mov dword [esp + 0xb8], 0
jmp 0x588620
lea eax, [esp + 0xa4]
mov edx, dword [esp + 0x4c]
cmp dword [eax + 8], 0
jne 0x58a5a3
test edi, edi
je 0x589c99
mov eax, edi
jmp 0x589ca0
mov esi, 0x16
cmp esi, 0xfffffff
jae 0x588842
jmp 0x588847
mov dword [esp + 0xb8], 0
jmp 0x58888f
lea eax, [esp + 0xa4]
cmp dword [eax], 2
je 0x58a5a3
mov al, byte [edx]
cmp al, 0xef
jne 0x589ce2
cmp byte [edx + 1], 0xbb
jne 0x589ce2
cmp byte [edx + 2], 0xbf
jne 0x589ce2
cmp dword [ebp + 0x18], 0
jne 0x589ccf
lea eax, [esp + 0xa4]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xa0]
mov dword [eax + 4], str.byte_order_mark__BOM__is_not_supported
jmp 0x58a59f
mov ecx, dword [ebp + 0xc]
cmp ecx, 4
jb 0x589d2b
cmp al, 0xfe
mov ecx, dword [ebp + 0x18]
je 0x589d4b
cmp al, 0xff
je 0x589e30
test al, al
mov ecx, dword [ebp + 0x18]
mov edx, dword [esp + 0x4c]
jne 0x58a5a3
cmp byte [edx + 1], 0
jne 0x58a5a3
cmp byte [edx + 2], 0xfe
jne 0x58a5a3
cmp byte [edx + 3], 0xff
jne 0x58a5a3
jmp 0x589e55
cmp ecx, 2
jb 0x58a5a3
cmp al, 0xff
je 0x58a572
cmp al, 0xfe
mov ecx, dword [ebp + 0x18]
mov edx, dword [esp + 0x4c]
jne 0x58a5a3
cmp byte [edx + 1], 0xff
jne 0x58a5a3
jmp 0x58a57f
mov eax, dword [esp + 0x30]
mov ecx, eax
shr ecx, 1
add ecx, eax
mov dword [esp + 0xc], ecx
cmp ecx, 0xffffffe
ja 0x589be9
mov ebx, esi
mov esi, dword [esp + 0xc]
shl esi, 4
mov eax, dword [esp + 0x30]
shl eax, 4
push esi
push eax
push dword [esp + 0x1c]
push dword [esp + 0x8c]
call dword [esp + 0xa0]
add esp, 0x10
test eax, eax
je 0x589be9
mov ecx, dword [esp + 0x14]
sub edi, ecx
add edi, eax
sub ebx, ecx
add ebx, eax
lea ecx, [esi + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x84], ecx
mov esi, ebx
mov ecx, eax
jmp 0x5889db
mov eax, dword [esp + 0x30]
mov ecx, eax
shr ecx, 1
add ecx, eax
mov dword [esp + 0xc], ecx
cmp ecx, 0xffffffe
ja 0x589be9
mov ebx, esi
mov esi, dword [esp + 0xc]
shl esi, 4
mov eax, dword [esp + 0x30]
shl eax, 4
push esi
push eax
push dword [esp + 0x1c]
push dword [esp + 0x8c]
call dword [esp + 0xa0]
add esp, 0x10
test eax, eax
je 0x589be9
mov ecx, dword [esp + 0x14]
sub edi, ecx
add edi, eax
sub ebx, ecx
add ebx, eax
lea ecx, [esi + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x84], ecx
mov esi, ebx
mov ecx, eax
jmp 0x58896e
mov edx, dword [esp + 0x4c]
cmp byte [edx + 1], 0xfe
mov ecx, dword [ebp + 0x18]
jne 0x58a5a3
cmp byte [edx + 2], 0
jne 0x58a57f
cmp byte [edx + 3], 0
jne 0x58a57f
test ecx, ecx
jne 0x589e67
lea eax, [esp + 0xa4]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xa0]
mov dword [eax + 4], str.UTF_32_encoding_is_not_supported
jmp 0x58a59f
mov ecx, dword [esp + 0xc]
mov eax, ecx
shr eax, 1
add eax, ecx
mov dword [esp + 0x30], eax
cmp eax, 0xffffffe
ja 0x589be9
mov ebx, edx
mov edi, esi
mov esi, dword [esp + 0x30]
shl esi, 4
mov eax, dword [esp + 0xc]
shl eax, 4
push esi
push eax
push dword [esp + 0x1c]
push dword [esp + 0x8c]
call dword [esp + 0xa0]
add esp, 0x10
test eax, eax
je 0x589be9
mov ecx, dword [esp + 0x14]
mov edx, ebx
sub edx, ecx
add edx, eax
sub edi, ecx
add edi, eax
lea ecx, [esi + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x84], ecx
mov esi, edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x14], eax
jmp 0x588a18
mov ebx, ecx
cmp al, 0x30
jne 0x58be70
movzx ecx, byte [ebx + 1]
add ebx, 1
mov dword [esp + 0x3c], ebx
mov al, byte [ecx + 0x5ffe78]
test al, 0x33
jne 0x58be8e
xor eax, eax
cmp byte [esp + 0x1c], 0x2d
sete al
lea eax, [eax*8 + 4]
mov edx, dword [esp + 4]
mov dword [edx], eax
mov dword [edx + 4], 0
mov dword [edx + 0xc], 0
mov dword [edx + 8], 0
mov eax, dword [esp + 0x3c]
jmp 0x58972a
mov dword [esp + 0xc], eax
mov eax, ecx
add ecx, 1
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
jne 0x58becc
mov edx, dword [esp + 0xc]
mov ecx, edx
sar ecx, 0x1f
xor eax, eax
neg edx
sbb eax, ecx
xor ebx, ebx
mov edi, dword [esp + 4]
mov dword [edi + 4], 0
cmp byte [esp + 0x1c], 0x2d
sete bl
lea esi, [ebx*8 + 4]
mov dword [edi], esi
je 0x589f95
mov eax, ecx
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 4]
mov dword [ecx + 8], edx
mov edx, ecx
mov dword [ecx + 0xc], eax
jmp 0x589726
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], ebx
mov eax, ecx
add ecx, 2
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58a31c
cmp dl, 0x2e
jne 0x58c625
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
jmp 0x58bf1c
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], ebx
mov eax, ecx
add ecx, 3
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58a31c
cmp dl, 0x2e
jne 0x58c625
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
jmp 0x58bf4e
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], ebx
mov eax, ecx
add ecx, 4
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58a31c
cmp dl, 0x2e
jne 0x58c625
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
jmp 0x58bf80
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], ebx
mov eax, ecx
add ecx, 5
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58a31c
cmp dl, 0x2e
jne 0x58c625
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
jmp 0x58bfb2
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], ebx
mov eax, ecx
add ecx, 6
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58a31c
cmp dl, 0x2e
jne 0x58c625
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
jmp 0x58bfe4
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], ebx
mov eax, ecx
add ecx, 7
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58a31c
cmp dl, 0x2e
jne 0x58c625
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
jmp 0x58c016
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], ebx
mov eax, ecx
add ecx, 8
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58a31c
cmp dl, 0x2e
jne 0x58c625
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
jmp 0x58c048
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], ebx
mov eax, ecx
add ecx, 9
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58a31c
cmp dl, 0x2e
jne 0x58c625
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
jmp 0x58c07a
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], ebx
mov eax, ecx
add ecx, 0xa
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58a31c
cmp dl, 0x2e
jne 0x58c625
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
jmp 0x58c0ac
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], ebx
mov eax, ecx
add ecx, 0xb
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58a31c
cmp dl, 0x2e
jne 0x58c625
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
jmp 0x58c0de
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], ebx
mov eax, ecx
add ecx, 0xc
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58a31c
cmp dl, 0x2e
jne 0x58c625
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
jmp 0x58c110
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], ebx
mov eax, ecx
add ecx, 0xd
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58a31c
cmp dl, 0x2e
jne 0x58c625
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
jmp 0x58c142
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], ebx
mov eax, ecx
add ecx, 0xe
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58a31c
cmp dl, 0x2e
jne 0x58c625
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
jmp 0x58c174
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], ebx
mov eax, ecx
add ecx, 0xf
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58a31c
cmp dl, 0x2e
jne 0x58c625
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
jmp 0x58c1a6
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], ebx
mov eax, ecx
add ecx, 0x10
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58a31c
cmp dl, 0x2e
jne 0x58c625
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
jmp 0x58c1d8
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], ebx
mov eax, ecx
add ecx, 0x11
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58a31c
cmp dl, 0x2e
jne 0x58c625
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
jmp 0x58c20a
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], ebx
mov eax, ecx
add ecx, 0x12
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
jne 0x58c303
xor eax, eax
mov ecx, dword [esp + 0xc]
neg ecx
sbb eax, dword [esp + 0x24]
xor edx, edx
mov esi, dword [esp + 4]
mov dword [esi + 4], 0
cmp byte [esp + 0x1c], 0x2d
sete dl
lea edx, [edx*8 + 4]
mov dword [esi], edx
je 0x58a350
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 4]
jmp 0x589720
mov ecx, dword [esp + 0xc]
mov eax, ecx
shr eax, 1
add eax, ecx
mov dword [esp + 0x30], eax
cmp eax, 0xffffffe
ja 0x589be9
mov ebx, edx
mov edi, esi
mov esi, dword [esp + 0x30]
shl esi, 4
mov eax, dword [esp + 0xc]
shl eax, 4
push esi
push eax
push dword [esp + 0x1c]
push dword [esp + 0x8c]
call dword [esp + 0xa0]
add esp, 0x10
test eax, eax
je 0x589be9
mov ecx, dword [esp + 0x14]
mov edx, ebx
sub edx, ecx
add edx, eax
sub edi, ecx
add edi, eax
lea ecx, [esi + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x84], ecx
mov esi, edi
mov edi, dword [esp + 0x10]
mov ecx, eax
jmp 0x588d35
mov ecx, dword [esp + 0xc]
mov eax, ecx
shr eax, 1
add eax, ecx
mov dword [esp + 0x30], eax
cmp eax, 0xffffffe
ja 0x589be9
mov ebx, edx
mov edi, esi
mov esi, dword [esp + 0x30]
shl esi, 4
mov eax, dword [esp + 0xc]
shl eax, 4
push esi
push eax
push dword [esp + 0x1c]
push dword [esp + 0x8c]
call dword [esp + 0xa0]
add esp, 0x10
test eax, eax
je 0x589be9
mov ecx, dword [esp + 0x14]
mov edx, ebx
sub edx, ecx
add edx, eax
sub edi, ecx
add edi, eax
lea ecx, [esi + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x84], ecx
mov esi, edi
mov edi, dword [esp + 0x10]
mov ecx, eax
jmp 0x588d77
mov eax, dword [ebp + 0x10]
test al, 4
jne 0x58c346
mov eax, dword [esp + 0x24]
cmp byte [eax], 0x2c
je 0x58a464
mov dword [esp + 0x10], edi
cmp byte [edi], 0x2c
lea edi, [edi - 1]
jne 0x58a451
add edi, 1
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x24]
push dword [ebp + 0x10]
push 7
push dword [esp + 0x78]
call fcn.005a86b0
add esp, 0xc
test al, al
jne 0x597726
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x70], ecx
jmp 0x597726
mov ecx, dword [esp + 0xc]
mov eax, ecx
shr eax, 1
add eax, ecx
mov dword [esp + 0x30], eax
cmp eax, 0xffffffe
ja 0x589be9
mov ebx, edx
mov edi, esi
mov esi, dword [esp + 0x30]
shl esi, 4
mov eax, dword [esp + 0xc]
shl eax, 4
push esi
push eax
push dword [esp + 0x1c]
push dword [esp + 0x8c]
call dword [esp + 0xa0]
add esp, 0x10
test eax, eax
je 0x589be9
mov ecx, dword [esp + 0x14]
mov edx, ebx
sub edx, ecx
add edx, eax
sub edi, ecx
add edi, eax
lea ecx, [esi + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x84], ecx
mov esi, edi
mov edi, dword [esp + 0x10]
mov ecx, eax
jmp 0x588def
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 0x10]
test cl, 0x10
je 0x5977dc
or al, 0x20
cmp al, 0x6e
jne 0x5977dc
mov al, byte [edi + 1]
or al, 0x20
cmp al, 0x61
jne 0x5977dc
mov al, byte [edi + 2]
or al, 0x20
cmp al, 0x6e
jne 0x5977dc
lea eax, [edi + 3]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x44], 0
je 0x58c35d
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx]
test ecx, ecx
je 0x58a557
mov byte [ecx], 0
mov ecx, dword [esp + 0x44]
mov dword [ecx], eax
mov dword [edx + 4], 0
mov dword [edx], 0x301
mov dword [edx + 8], edi
jmp 0x58972e
mov edx, dword [esp + 0x4c]
cmp byte [edx + 1], 0xfe
mov ecx, dword [ebp + 0x18]
jne 0x58a5a3
test ecx, ecx
jne 0x58a591
lea eax, [esp + 0xa4]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xa0]
mov dword [eax + 4], str.UTF_16_encoding_is_not_supported
mov edx, dword [esp + 0x4c]
xor esi, esi
mov eax, dword [ebp + 0x10]
test al, 1
jne 0x599f2b
push edx
push dword [esp + 0x84]
call dword [esp + 0x94]
add esp, 8
jmp 0x599f2b
mov edx, ecx
test ebx, ebx
jne 0x58a758
bsr eax, dword [esp + 0xc]
xor eax, 0x1f
add eax, 0x20
jmp 0x58a760
lea eax, [esp + 0x54]
lea ecx, [esp + 0x10]
mov edx, dword [esp + 0x44]
push eax
push dword [esp + 8]
push dword [ebp + 0x10]
call fcn.005a8990
mov edx, dword [esp + 0x10]
add esp, 0xc
test al, al
mov ecx, dword [esp + 0x14]
jne 0x59a1c6
jmp 0x590a93
mov ecx, dword [esp + 0xc]
mov eax, ecx
shr eax, 1
add eax, ecx
mov dword [esp + 0x30], eax
cmp eax, 0xffffffe
ja 0x589be9
mov edi, esi
mov esi, dword [esp + 0x30]
shl esi, 4
mov eax, dword [esp + 0xc]
shl eax, 4
push esi
push eax
push dword [esp + 0x1c]
push dword [esp + 0x8c]
call dword [esp + 0xa0]
add esp, 0x10
test eax, eax
je 0x589be9
mov ecx, dword [esp + 0x14]
sub ebx, ecx
add ebx, eax
sub edi, ecx
add edi, eax
mov dword [esp + 0x40], edi
lea ecx, [esi + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x84], ecx
mov edi, dword [esp + 0x10]
mov dword [esp + 0x14], eax
jmp 0x588e3a
cmp byte [esp + 0x5c], 0x2d
jne 0x58a6b8
xor eax, eax
cmp byte [esp + 0x1c], 0x2d
sete al
mov edx, dword [esp + 4]
mov dword [edx + 4], 0
mov dword [edx], 0x14
shl eax, 0x1f
mov dword [edx + 0xc], eax
mov dword [edx + 8], 0
jmp 0x589726
mov eax, dword [ebp + 0x10]
test al, al
js 0x58c3c2
mov eax, dword [ebp + 0x10]
test al, 0x10
jne 0x58c31b
mov dword [esp + 0x54], str.number_is_infinity_when_parsed_as_double
jmp 0x590a8f
cmp cl, 0x4e
jne case.0x58877b.182
mov al, byte [edi + 1]
or al, 0x20
cmp al, 0x61
jne case.0x58877b.182
mov al, byte [edi + 2]
or al, 0x20
cmp al, 0x6e
jne case.0x58877b.182
lea eax, [edi + 3]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x44], 0
je 0x58a736
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx]
test ecx, ecx
je 0x58a719
mov byte [ecx], 0
mov ecx, dword [esp + 0x44]
mov dword [ecx], eax
mov edx, ebx
mov dword [ebx + 4], 0
mov dword [ebx], 0x301
mov dword [ebx + 8], edi
jmp 0x58972e
mov edx, ebx
mov dword [ebx + 4], 0
mov dword [ebx], 0x14
mov dword [ebx + 0xc], 0x7ff80000
mov dword [ebx + 8], 0
jmp 0x58972e
bsr eax, dword [esp + 0x24]
xor eax, 0x1f
mov dword [esp + 0x5c], eax
mov dword [esp + 0x48], 0
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0xc]
shld esi, eax, cl
mov dword [esp + 0x34], esi
shl eax, cl
mov dword [esp + 0x6c], eax
test cl, 0x20
je 0x58a79a
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x6c], 0
imul esi, edx, 0x3526a
shl edx, 4
add esi, 0xffc10000
mov eax, dword [edx + 0x6014ec]
mov dword [esp + 0x50], eax
mov eax, dword [edx + 0x6014e8]
mov dword [esp + 0x58], eax
mov eax, dword [edx + 0x6014f4]
mov dword [esp + 0x18], eax
mov dword [esp + 0x68], 0
jmp 0x589743
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
test eax, eax
je 0x58a7e1
mov byte [eax], 0
mov eax, esi
sub eax, edi
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
mov edx, dword [esp + 4]
mov dword [edx + 4], ecx
shl eax, 8
or eax, 1
mov dword [edx], eax
mov dword [edx + 8], edi
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov dword [esp + 0x10], esi
jmp 0x58972e
mov esi, dword [esp + 0x9c]
cmp esi, 3
jg 0x5898d3
mov ecx, 4
sub ecx, esi
mov esi, dword [esp + 0x34]
shrd ebx, esi, cl
mov dword [esp + 0x18], ebx
shr esi, cl
mov dword [esp + 0x34], esi
shrd eax, edx, cl
shr edx, cl
mov dword [esp + 0x60], edx
test cl, 0x20
je 0x58a861
mov eax, dword [esp + 0x34]
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x60]
mov dword [esp + 0x60], 0
add dword [esp + 0x20], ecx
add eax, 9
mov dword [esp + 0x64], eax
adc dword [esp + 0x60], 0
mov ecx, 0x3c
jmp 0x5898e6
xor esi, esi
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 4]
mov dword [esp + 0x20], 0
jmp 0x589a18
mov ebx, dword [esp + 0x20]
mov eax, ebx
and eax, 0x7ff00000
mov ecx, dword [esp + 0x5c]
shld ebx, ecx, 1
lea esi, [ecx + ecx]
and ebx, 0x1fffff
mov ecx, esi
add ecx, 0xfffffffe
mov edx, ebx
adc edx, 0x1fffff
add ecx, 2
adc edx, 0
mov dword [esp + 0x68], 0xfffffbcd
test eax, eax
je 0x58a8dd
shr eax, 0x14
add eax, 0xfffffbcc
mov dword [esp + 0x68], eax
mov ebx, edx
mov esi, ecx
or esi, 1
lea eax, [esp + 0x98]
lea ecx, [esp + 0xc8]
mov edx, dword [esp + 0xc]
push dword [esp + 0x3c]
push dword [esp + 0x78]
push dword [esp + 0x40]
push eax
push dword [esp + 0x34]
call fcn.005a8ba0
add esp, 0x14
mov dword [esp + 0x2d0], 1
mov dword [esp + 0x2d8], esi
mov dword [esp + 0x2dc], ebx
mov eax, dword [esp + 0x98]
mov dword [esp + 0x78], eax
test eax, eax
js 0x58ab5b
cmp dword [esp + 0x78], 0x13
jge 0x58a991
mov eax, dword [esp + 0x78]
test eax, eax
je 0x58b711
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x18], ecx
xor ebx, ebx
test ecx, ecx
je 0x58ad47
mov ecx, dword [esp + ebx*8 + 0xd0]
or ecx, dword [esp + ebx*8 + 0xd4]
jne 0x58ad47
add ebx, 1
cmp dword [esp + 0x18], ebx
jne 0x58a95f
jmp 0x58b711
mov ecx, dword [esp + 0x78]
lea eax, [ecx - 0x13]
cmp ecx, 0x25
mov dword [esp + 0x78], eax
jle 0x58a942
mov eax, dword [esp + 0xc8]
mov ecx, eax
xor ebx, ebx
test eax, eax
je 0x58a9b9
mov eax, dword [esp + ebx*8 + 0xd0]
or eax, dword [esp + ebx*8 + 0xd4]
jne 0x58a9b9
add ebx, 1
cmp ecx, ebx
jne 0x58a9a0
jmp 0x58a981
cmp ebx, ecx
jae 0x58a981
mov dword [esp + 0x50], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + ebx*8 + 0xd0]
mov eax, ecx
mov edx, 0x89e80000
mul edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x48], edx
xor eax, eax
mov esi, 0x89e80000
add esi, 0xdf2304
setb al
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], ecx
mov eax, ecx
mul esi
mov ecx, eax
mov dword [esp + 0x3c], edx
mov eax, dword [esp + ebx*8 + 0xd4]
mov dword [esp + 0x38], eax
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x24]
imul eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x38]
mul esi
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x18]
imul eax, dword [esp + 0x38]
add ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x3c]
adc esi, dword [esp + 0x24]
add ecx, dword [esp + 0x6c]
adc dword [esp + 0x34], 0
add esi, dword [esp + 0x60]
adc edx, eax
add esi, dword [esp + 0x34]
mov dword [esp + 0x3c], esi
adc edx, 0
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0xc]
and eax, 0xfff80000
mov esi, dword [esp + 0x50]
add eax, esi
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x58]
adc ecx, edx
setb byte [esp + 0x34]
cmp eax, esi
mov esi, ecx
sbb esi, edx
mov dword [esp + ebx*8 + 0xd4], ecx
setb cl
or cl, byte [esp + 0x34]
movzx eax, cl
add eax, dword [esp + 0x3c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xc]
mov dword [esp + ebx*8 + 0xd0], eax
mov edx, dword [esp + 0x24]
adc edx, 0
mov dword [esp + 0x58], edx
add ebx, 1
cmp dword [esp + 0x64], ebx
jne 0x58a9d1
mov eax, dword [esp + 0x50]
or eax, dword [esp + 0x58]
je 0x58a981
mov eax, dword [esp + 0xc8]
lea ecx, [eax + 1]
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + eax*8 + 0xd4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + eax*8 + 0xd0], ecx
jmp 0x58a981
cmp eax, 0xfffffb8f
jl 0x58c3d8
mov edx, eax
mov cl, 0xc3
sub cl, dl
shrd esi, ebx, cl
shr ebx, cl
test cl, 0x20
je 0x58ab28
mov esi, ebx
xor ebx, ebx
mov dword [esp + 0x20], ebx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 4]
jmp 0x589a18
mov edx, ebx
mov dword [ebx + 4], 0
mov dword [ebx], 0x14
mov dword [ebx + 0xc], 0x7ff00000
mov dword [ebx + 8], 0
jmp 0x58972e
mov eax, dword [esp + 0x78]
mov ecx, eax
neg ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x24], 1
cmp eax, 0xffffffed
jg 0x58aed8
mov ecx, 1
xor ebx, ebx
test ecx, ecx
je 0x58ab9f
mov eax, dword [esp + ebx*8 + 0x2d8]
or eax, dword [esp + ebx*8 + 0x2dc]
jne 0x58ab9f
add ebx, 1
cmp ecx, ebx
jne 0x58ab83
jmp 0x58acea
cmp ebx, ecx
jae 0x58acea
mov dword [esp + 0x50], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + ebx*8 + 0x2d8]
mov eax, ecx
mov edx, 0x89e80000
mul edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x48], edx
xor eax, eax
mov esi, 0x89e80000
add esi, 0xdf2304
setb al
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], ecx
mov eax, ecx
mul esi
mov ecx, eax
mov dword [esp + 0x3c], edx
mov eax, dword [esp + ebx*8 + 0x2dc]
mov dword [esp + 0x38], eax
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x24]
imul eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x38]
mul esi
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x18]
imul eax, dword [esp + 0x38]
add ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x3c]
adc esi, dword [esp + 0x24]
add ecx, dword [esp + 0x6c]
adc dword [esp + 0x34], 0
add esi, dword [esp + 0x60]
adc edx, eax
add esi, dword [esp + 0x34]
mov dword [esp + 0x3c], esi
adc edx, 0
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0xc]
and eax, 0xfff80000
mov esi, dword [esp + 0x50]
add eax, esi
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x58]
adc ecx, edx
setb byte [esp + 0x34]
cmp eax, esi
mov esi, ecx
sbb esi, edx
mov dword [esp + ebx*8 + 0x2dc], ecx
setb cl
or cl, byte [esp + 0x34]
movzx eax, cl
add eax, dword [esp + 0x3c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xc]
mov dword [esp + ebx*8 + 0x2d8], eax
mov edx, dword [esp + 0x24]
adc edx, 0
mov dword [esp + 0x58], edx
add ebx, 1
cmp dword [esp + 0x64], ebx
jne 0x58abbb
mov eax, dword [esp + 0x50]
or eax, dword [esp + 0x58]
je 0x58acea
mov eax, dword [esp + 0x2d0]
lea ecx, [eax + 1]
mov dword [esp + 0x2d0], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + eax*8 + 0x2dc], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + eax*8 + 0x2d8], ecx
mov ecx, dword [esp + 0x7c]
lea eax, [ecx - 0x13]
cmp ecx, 0x26
jl 0x58aede
mov ecx, dword [esp + 0x2d0]
mov dword [esp + 0x7c], eax
jmp 0x58ab7d
mov eax, dword [esp + 0x44]
mov edx, dword [eax]
test edx, edx
je 0x58ad17
mov byte [edx], 0
mov edx, ecx
sar edx, 0x1f
shld edx, ecx, 8
mov eax, dword [esp + 4]
mov dword [eax + 4], edx
mov edx, eax
shl ecx, 8
or ecx, 1
mov dword [edx], ecx
mov dword [edx + 8], edi
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x3c]
mov dword [eax], ecx
mov dword [esp + 0x10], ecx
jmp 0x58972e
cmp ebx, dword [esp + 0x18]
jae 0x58b711
mov ecx, dword [eax*8 + 0x60293c]
mov dword [esp + 0x60], ecx
mov eax, dword [eax*8 + 0x602938]
mov dword [esp + 0x38], eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x34], 0
mov ecx, dword [esp + ebx*8 + 0xd0]
mov eax, ecx
mul dword [esp + 0x38]
mov dword [esp + 0x50], edx
mov dword [esp + 0xc], eax
mov eax, ecx
mov ecx, dword [esp + 0x60]
mul ecx
mov esi, eax
mov dword [esp + 0x3c], edx
mov eax, dword [esp + ebx*8 + 0xd4]
mov dword [esp + 0x6c], eax
mul dword [esp + 0x38]
mov dword [esp + 0x58], edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x6c]
mul ecx
mov dword [esp + 0x6c], eax
add esi, dword [esp + 0x50]
mov ecx, dword [esp + 0x3c]
adc ecx, 0
add esi, dword [esp + 0x48]
mov eax, dword [esp + 0x58]
adc eax, 0
add ecx, dword [esp + 0x6c]
adc edx, 0
add ecx, eax
mov dword [esp + 0x3c], ecx
adc edx, 0
mov dword [esp + 0x50], edx
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0xc]
add eax, ecx
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x34]
adc esi, edx
setb byte [esp + 0x58]
cmp eax, ecx
mov ecx, esi
sbb ecx, edx
mov dword [esp + ebx*8 + 0xd4], esi
setb cl
or cl, byte [esp + 0x58]
movzx eax, cl
add eax, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xc]
mov dword [esp + ebx*8 + 0xd0], eax
mov edx, dword [esp + 0x50]
adc edx, 0
mov dword [esp + 0x34], edx
add ebx, 1
cmp dword [esp + 0x18], ebx
jne 0x58ad77
mov eax, dword [esp + 0x24]
or eax, dword [esp + 0x34]
je 0x58b711
mov eax, dword [esp + 0xc8]
lea ecx, [eax + 1]
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + eax*8 + 0xd4], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + eax*8 + 0xd0], ecx
jmp 0x58b711
mov edi, edx
lea ecx, [esp + 0xbc]
call fcn.0059a490
mov ebx, dword [esp + 0xbc]
test al, al
je 0x58b01a
mov esi, dword [ebp + 0x18]
mov edx, edi
cmp ebx, dword [esp + 0x70]
jb 0x589b93
test esi, esi
jne 0x58aeb8
lea eax, [esp + 0xa4]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xa0]
mov dword [eax + 8], 0
mov dword [eax + 4], str.input_data_is_empty
mov dword [eax], 3
jmp 0x58b049
mov eax, dword [esp + 0x7c]
jmp 0x58aef9
test eax, eax
je 0x58b711
mov ecx, dword [esp + 0x2d0]
mov dword [esp + 0x24], ecx
test ecx, ecx
je 0x58b711
mov ecx, dword [eax*8 + 0x60293c]
mov dword [esp + 0x34], ecx
mov eax, dword [eax*8 + 0x602938]
mov dword [esp + 0x18], eax
xor ebx, ebx
mov ecx, dword [esp + ebx*8 + 0x2d8]
mov esi, dword [esp + ebx*8 + 0x2dc]
mov eax, ecx
or eax, esi
jne 0x58af33
add ebx, 1
cmp dword [esp + 0x24], ebx
jne 0x58af11
jmp 0x58b711
cmp ebx, dword [esp + 0x24]
jae 0x58b711
add ebx, 1
mov dword [esp + 0x38], 0
mov dword [esp + 0x50], 0
mov eax, ecx
mul dword [esp + 0x18]
mov dword [esp + 0x58], edx
mov dword [esp + 0xc], eax
mov eax, ecx
mul dword [esp + 0x34]
mov dword [esp + 0x3c], edx
mov ecx, eax
mov eax, esi
mul dword [esp + 0x18]
mov dword [esp + 0x48], edx
mov dword [esp + 0x6c], eax
mov eax, esi
mul dword [esp + 0x34]
mov dword [esp + 0x60], eax
add ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x3c]
adc esi, 0
add ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x48]
adc eax, 0
add esi, dword [esp + 0x60]
adc edx, 0
add esi, eax
mov dword [esp + 0x3c], esi
adc edx, 0
mov dword [esp + 0x58], edx
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0xc]
add eax, esi
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x50]
adc ecx, edx
setb byte [esp + 0x48]
cmp eax, esi
mov esi, ecx
sbb esi, edx
mov dword [esp + ebx*8 + 0x2d4], ecx
setb cl
or cl, byte [esp + 0x48]
movzx eax, cl
add eax, dword [esp + 0x3c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xc]
mov dword [esp + ebx*8 + 0x2d0], eax
mov edx, dword [esp + 0x58]
adc edx, 0
mov dword [esp + 0x50], edx
cmp dword [esp + 0x24], ebx
je 0x58b6e0
mov ecx, dword [esp + ebx*8 + 0x2d8]
mov esi, dword [esp + ebx*8 + 0x2dc]
add ebx, 1
jmp 0x58af50
sub ebx, dword [esp + 0x4c]
cmp dword [ebp + 0x18], 0
jne 0x58b032
lea eax, [esp + 0xa4]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xa0]
mov dword [eax + 8], ebx
mov dword [eax + 4], str.unclosed_multiline_comment
mov dword [eax], 8
xor esi, esi
mov eax, dword [ebp + 0x10]
test al, 1
jne 0x599f2b
push dword [esp + 0x4c]
jmp 0x58a5b1
mov ebx, esi
cmp al, 0x5c
jne 0x58b5bc
mov al, byte [esi + 1]
add al, 0xde
cmp al, 0x53
ja case.0x58e887.221
movzx eax, al
jmp dword [eax*4 + 0x6046d4]
mov byte [ebx], 0x22
jmp 0x58b178
mov byte [ebx], 0xa
jmp 0x58b178
mov byte [ebx], 0x2f
jmp 0x58b178
mov byte [ebx], 0x5c
jmp 0x58b178
mov byte [ebx], 8
jmp 0x58b178
mov byte [ebx], 0xc
jmp 0x58b178
mov byte [ebx], 0xd
jmp 0x58b178
movzx eax, byte [esi + 2]
movzx ecx, byte [eax + 0x5ffd78]
movzx eax, byte [esi + 3]
movzx edx, byte [eax + 0x5ffd78]
movzx eax, byte [esi + 4]
movzx eax, byte [eax + 0x5ffd78]
mov dword [esp + 0x3c], eax
movzx eax, byte [esi + 5]
movzx eax, byte [eax + 0x5ffd78]
shl ecx, 8
add ecx, dword [esp + 0x3c]
shl edx, 8
or edx, eax
mov eax, ecx
shl eax, 4
or eax, edx
mov word [esp + 0xc8], ax
or edx, ecx
test edx, 0xf0f0
jne 0x5909c2
lea ecx, [esi + 6]
mov dword [esp + 0x3c], ecx
test dword [ebp + 0x10], 0x40000000
jne 0x58b568
mov ecx, eax
and ecx, 0xf800
cmp ecx, 0xd800
je 0x58b5e7
movzx ecx, ax
cmp ecx, 0x800
jb 0x58b58d
shr ecx, 0xc
or cl, 0xe0
mov byte [ebx], cl
movzx eax, word [esp + 0xc8]
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [ebx + 1], al
mov al, byte [esp + 0xc8]
and al, 0x3f
or al, 0x80
mov byte [ebx + 2], al
add ebx, 3
jmp 0x58b182
mov byte [ebx], 9
add ebx, 1
add esi, 2
mov dword [esp + 0x3c], esi
mov edx, dword [esp + 0x3c]
jmp 0x58b190
mov byte [ebx], al
add ebx, 1
add edx, 1
movzx eax, byte [edx]
test byte [eax + 0x5ffc78], 0xc
jne 0x58b3fc
movzx eax, byte [edx + 1]
test byte [eax + 0x5ffc78], 0xc
jne 0x58b4ef
movzx eax, byte [edx + 2]
test byte [eax + 0x5ffc78], 0xc
jne 0x58b2c8
movzx eax, byte [edx + 3]
test byte [eax + 0x5ffc78], 0xc
jne 0x58b2d9
movzx eax, byte [edx + 4]
test byte [eax + 0x5ffc78], 0xc
jne 0x58b2e8
movzx eax, byte [edx + 5]
test byte [eax + 0x5ffc78], 0xc
jne 0x58b2f7
movzx eax, byte [edx + 6]
test byte [eax + 0x5ffc78], 0xc
jne 0x58b30e
movzx eax, byte [edx + 7]
test byte [eax + 0x5ffc78], 0xc
jne 0x58b325
movzx eax, byte [edx + 8]
test byte [eax + 0x5ffc78], 0xc
jne 0x58b33a
movzx eax, byte [edx + 9]
test byte [eax + 0x5ffc78], 0xc
jne 0x58b34f
movzx eax, byte [edx + 0xa]
test byte [eax + 0x5ffc78], 0xc
jne 0x58b36c
movzx eax, byte [edx + 0xb]
test byte [eax + 0x5ffc78], 0xc
jne 0x58b386
movzx eax, byte [edx + 0xc]
test byte [eax + 0x5ffc78], 0xc
jne 0x58b39e
movzx eax, byte [edx + 0xd]
test byte [eax + 0x5ffc78], 0xc
jne 0x58b3b6
movzx eax, byte [edx + 0xe]
test byte [eax + 0x5ffc78], 0xc
jne 0x58b3d6
movzx eax, byte [edx + 0xf]
test byte [eax + 0x5ffc78], 0xc
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov esi, dword [edx + 0xc]
mov dword [esp + 0x3c], esi
mov esi, dword [edx + 8]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], esi
mov eax, dword [esp + 0x3c]
mov dword [ebx + 0xc], eax
jne 0x58b3f6
add edx, 0x10
add ebx, 0x10
jmp 0x58b190
movzx eax, word [edx]
add edx, 2
mov word [ebx], ax
add ebx, 2
jmp 0x58b3fc
mov eax, dword [edx]
add edx, 3
mov dword [ebx], eax
add ebx, 3
jmp 0x58b3fc
mov eax, dword [edx]
add edx, 4
mov dword [ebx], eax
add ebx, 4
jmp 0x58b3fc
lea esi, [edx + 5]
mov eax, dword [edx]
mov dword [ebx], eax
movzx eax, word [edx + 4]
mov word [ebx + 4], ax
add ebx, 5
jmp 0x58b3fe
lea esi, [edx + 6]
mov eax, dword [edx]
mov dword [ebx], eax
movzx eax, word [edx + 4]
mov word [ebx + 4], ax
add ebx, 6
jmp 0x58b3fe
lea esi, [edx + 7]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
add ebx, 7
jmp 0x58b3fe
lea esi, [edx + 8]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
add ebx, 8
jmp 0x58b3fe
lea esi, [edx + 9]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
movzx eax, word [edx + 8]
mov word [ebx + 8], ax
add ebx, 9
jmp 0x58b3fe
lea esi, [edx + 0xa]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
movzx eax, word [edx + 8]
mov word [ebx + 8], ax
add ebx, 0xa
jmp 0x58b3fe
lea esi, [edx + 0xb]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov eax, dword [edx + 8]
mov dword [ebx + 8], eax
add ebx, 0xb
jmp 0x58b3fe
lea esi, [edx + 0xc]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov eax, dword [edx + 8]
mov dword [ebx + 8], eax
add ebx, 0xc
jmp 0x58b3fe
lea esi, [edx + 0xd]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov eax, dword [edx + 8]
mov dword [ebx + 8], eax
movzx eax, word [edx + 0xc]
mov word [ebx + 0xc], ax
add ebx, 0xd
jmp 0x58b3fe
lea esi, [edx + 0xe]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov eax, dword [edx + 8]
mov dword [ebx + 8], eax
movzx eax, word [edx + 0xc]
mov word [ebx + 0xc], ax
add ebx, 0xe
jmp 0x58b3fe
add edx, 0xf
add ebx, 0xf
mov esi, edx
mov al, byte [esi]
test al, al
jns 0x58b061
test dword [ebp + 0x10], 0x40000000
jne 0x58b500
mov eax, dword [esi]
mov ecx, eax
and ecx, 0xc0c0f0
mov dword [esp + 0x3c], esi
cmp ecx, 0x8080e0
jne 0x58b460
mov ecx, eax
and ecx, 0x200f
je 0x58b460
cmp ecx, 0x200d
je 0x58b460
mov dword [ebx], eax
add ebx, 3
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx + 3]
add ecx, 3
mov dword [esp + 0x3c], ecx
mov ecx, eax
and ecx, 0xc0c0f0
cmp ecx, 0x8080e0
je 0x58b42b
test al, al
mov edx, dword [esp + 0x3c]
jns 0x58b190
jmp 0x58b482
mov word [ebx], ax
add ebx, 2
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx + 2]
add ecx, 2
mov dword [esp + 0x3c], ecx
mov ecx, eax
and ecx, 0xc0e0
cmp ecx, 0x80c0
jne 0x58b4ae
mov ecx, eax
and ecx, 0x1e
jne 0x58b46e
jmp 0x58b4ae
mov dword [ebx], eax
add ebx, 4
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx + 4]
add ecx, 4
mov dword [esp + 0x3c], ecx
mov ecx, eax
and ecx, 0xc0c0c0f8
cmp ecx, 0x808080f0
jne 0x58b4d6
mov ecx, eax
and ecx, 0x3007
je 0x58b4d6
test al, 4
je 0x58b49b
mov ecx, eax
and ecx, 0x3003
je 0x58b49b
mov edx, dword [esp + 0x3c]
cmp esi, edx
jne 0x58b190
mov eax, dword [ebp + 0x10]
test al, 0x40
je 0x5909e6
mov edx, esi
movzx eax, word [edx]
mov word [ebx], ax
add edx, 1
add ebx, 1
jmp 0x58b3fc
movzx eax, word [esi]
movzx ecx, al
cmp ecx, 0x81
jb 0x58b551
movzx ecx, cx
cmp ecx, 0xff
je 0x58b551
add esi, 1
movzx ecx, ax
cmp ecx, 0xff
jbe 0x58eee5
mov word [ebx], ax
add ebx, 2
movzx eax, word [esi + 1]
movzx ecx, al
add esi, 2
cmp ecx, 0x81
jb 0x58b54e
movzx ecx, cx
cmp ecx, 0xff
jne 0x58b51c
add esi, 0xffffffff
cmp al, 0xff
mov edx, esi
je 0x58b188
cmp al, 0x80
je 0x58b188
jmp 0x58b190
push 0
push 0
push 2
push ebx
push 1
lea eax, [esp + 0xdc]
push eax
push 0
push 0x3a8
call dword [sym.imp.kernel32.dll_WideCharToMultiByte_1]
add ebx, eax
jmp 0x58b182
cmp ecx, 0x80
jb 0x58b5b2
shr eax, 6
or al, 0xc0
mov byte [ebx], al
mov al, byte [esp + 0xc8]
and al, 0x3f
or al, 0x80
mov byte [ebx + 1], al
add ebx, 2
jmp 0x58b182
mov byte [ebx], al
add ebx, 1
jmp 0x58b182
cmp al, 0x22
je 0x58c578
mov ecx, dword [ebp + 0x10]
test cl, 0x40
je 0x5909b0
cmp esi, dword [esp + 0x70]
jae 0x59099e
add esi, 1
mov byte [ebx], al
add ebx, 1
jmp 0x58b17e
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x5909d4
mov ecx, dword [esp + 0x3c]
movzx ecx, word [ecx]
cmp ecx, 0x755c
jne 0x58c3e7
movzx ecx, byte [esi + 8]
movzx edx, byte [ecx + 0x5ffd78]
movzx ecx, byte [esi + 9]
movzx ecx, byte [ecx + 0x5ffd78]
mov dword [esp + 0x24], ecx
movzx ecx, byte [esi + 0xa]
movzx ecx, byte [ecx + 0x5ffd78]
mov dword [esp + 0x34], ecx
movzx ecx, byte [esi + 0xb]
movzx ecx, byte [ecx + 0x5ffd78]
mov dword [esp + 8], ecx
shl edx, 8
add edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
shl ecx, 8
add ecx, dword [esp + 8]
mov dword [esp + 0x24], ecx
or ecx, edx
test ecx, 0xf0f0
jne 0x58c3fd
shl edx, 4
movzx ecx, dx
mov edx, dword [esp + 0x24]
or edx, ecx
mov dword [esp + 0x24], edx
mov ecx, edx
and ecx, 0xfc00
cmp ecx, 0xdc00
jne 0x58c413
movzx eax, ax
shl eax, 0xa
add eax, 0xfca00000
mov ecx, dword [esp + 0x24]
add ecx, 0xffff2400
or ecx, eax
add ecx, 0x10000
mov eax, ecx
shr eax, 0x12
or al, 0xf0
mov byte [ebx], al
mov eax, ecx
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [ebx + 1], al
mov eax, ecx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [ebx + 2], al
and cl, 0x3f
or cl, 0x80
mov byte [ebx + 3], cl
add ebx, 4
add esi, 0xc
jmp 0x58b17e
mov eax, dword [esp + 0x38]
or eax, dword [esp + 0x50]
je 0x58b711
mov eax, dword [esp + 0x2d0]
lea ecx, [eax + 1]
mov dword [esp + 0x2d0], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + eax*8 + 0x2dc], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + eax*8 + 0x2d8], ecx
cmp dword [esp + 0x68], 0
jle 0x58b7bb
mov eax, dword [esp + 0x68]
mov ecx, eax
shr ecx, 6
mov dword [esp + 0x48], ecx
mov esi, dword [esp + 0x2d0]
and eax, 0x3f
mov dword [esp + 0x68], eax
je 0x58c447
mov dword [esp + esi*8 + 0x2dc], 0
mov dword [esp + esi*8 + 0x2d8], 0
test esi, esi
je 0x58b8f0
mov ecx, 0x40
sub ecx, dword [esp + 0x68]
mov eax, dword [esp + esi*8 + 0x2d0]
mov ebx, dword [esp + esi*8 + 0x2d4]
mov edx, ebx
shr edx, cl
shrd eax, ebx, cl
lea ebx, [esi - 1]
mov dword [esp + 0xc], ecx
test cl, 0x20
je 0x58b789
mov eax, edx
xor edx, edx
mov ecx, dword [esp + 0x48]
add ecx, esi
mov dword [esp + ecx*8 + 0x2d8], eax
mov dword [esp + ecx*8 + 0x2dc], edx
test ebx, ebx
je 0x58b8f0
test bl, 1
jne 0x58b85c
lea eax, [esp + esi*8]
add eax, 0x2d0
jmp 0x58b8e7
mov eax, dword [esp + 0x68]
neg eax
mov ecx, eax
shr ecx, 6
mov dword [esp + 0x48], ecx
mov edx, dword [esp + 0xc8]
and eax, 0x3f
mov dword [esp + 0x68], eax
je 0x58c48b
mov dword [esp + edx*8 + 0xd4], 0
mov dword [esp + edx*8 + 0xd0], 0
test edx, edx
je 0x58bb40
mov ecx, 0x40
sub ecx, dword [esp + 0x68]
mov eax, dword [esp + edx*8 + 0xc8]
mov ebx, dword [esp + edx*8 + 0xcc]
mov esi, ebx
shr esi, cl
shrd eax, ebx, cl
lea ebx, [edx - 1]
mov dword [esp + 0xc], ecx
test cl, 0x20
je 0x58b82a
mov eax, esi
xor esi, esi
mov ecx, dword [esp + 0x48]
add ecx, edx
mov dword [esp + ecx*8 + 0xd0], eax
mov dword [esp + ecx*8 + 0xd4], esi
test ebx, ebx
je 0x58bb40
test bl, 1
jne 0x58baa8
lea eax, [esp + edx*8]
add eax, 0xc8
jmp 0x58bb33
mov edx, dword [esp + esi*8 + 0x2d0]
mov eax, dword [esp + esi*8 + 0x2d4]
mov ecx, dword [esp + 0x68]
shld eax, edx, cl
mov dword [esp + 0x34], eax
shl edx, cl
mov dword [esp + 0x3c], edx
test cl, 0x20
je 0x58b890
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], 0
mov eax, dword [esp + esi*8 + 0x2c8]
mov dword [esp + 0x24], eax
mov eax, dword [esp + esi*8 + 0x2cc]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0xc]
shr eax, cl
mov edx, dword [esp + 0x18]
shrd dword [esp + 0x24], edx, cl
mov edx, dword [esp + 0x24]
test cl, 0x20
je 0x58b8c2
mov edx, eax
xor eax, eax
or edx, dword [esp + 0x3c]
or eax, dword [esp + 0x34]
add ebx, dword [esp + 0x48]
mov dword [esp + ebx*8 + 0x2d8], edx
mov dword [esp + ebx*8 + 0x2dc], eax
lea ebx, [esi - 2]
lea eax, [esp + esi*8]
add eax, 0x2c8
mov dword [esp + 0x3c], eax
cmp esi, 2
jne 0x58b967
mov esi, dword [esp + 0x2d8]
mov eax, dword [esp + 0x2dc]
mov edx, esi
mov ecx, dword [esp + 0x68]
shl edx, cl
shld eax, esi, cl
test cl, 0x20
je 0x58b912
mov eax, edx
xor edx, edx
mov esi, dword [esp + 0x48]
mov dword [esp + esi*8 + 0x2d8], edx
mov dword [esp + esi*8 + 0x2dc], eax
mov eax, dword [esp + 0x2d0]
add eax, esi
mov ecx, dword [esp + eax*8 + 0x2d8]
xor edx, edx
or ecx, dword [esp + eax*8 + 0x2dc]
setne dl
add edx, eax
mov dword [esp + 0x2d0], edx
test esi, esi
je 0x58bbb7
mov eax, dword [esp + 0x48]
shl eax, 3
push eax
push 0
lea eax, [esp + 0x2e0]
jmp 0x58bbae
mov eax, dword [esp + 0x48]
lea eax, [esp + eax*8]
add eax, 0x2d8
mov dword [esp + 0x24], eax
jmp 0x58b9a8
or edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x18]
or ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x24]
mov dword [eax + ebx*8 - 8], edx
mov dword [eax + ebx*8 - 4], ecx
lea eax, [esp + ebx*8]
add eax, 0x2c8
mov dword [esp + 0x3c], eax
add ebx, 0xfffffffe
test ebx, ebx
je 0x58b8f0
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x68]
shl eax, cl
mov dword [esp + 0x34], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x38], 0
test cl, 0x20
jne 0x58b9d9
mov eax, dword [esp + 0x34]
mov dword [esp + 0x38], eax
mov esi, dword [esp + ebx*8 + 0x2d0]
mov eax, dword [esp + ebx*8 + 0x2d4]
mov edx, eax
mov ecx, dword [esp + 0xc]
shr edx, cl
shrd esi, eax, cl
test cl, 0x20
je 0x58b9fb
mov esi, edx
xor edx, edx
or esi, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x24]
mov dword [ecx + ebx*8], esi
mov esi, dword [esp + ebx*8 + 0x2d0]
mov dword [esp + 0x58], esi
mov ecx, dword [esp + 0x68]
shl esi, cl
mov dword [esp + 0x3c], esi
mov dword [esp + 0x38], 0
test cl, 0x20
jne 0x58ba37
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x50]
shld eax, esi, cl
test cl, 0x20
jne 0x58ba4b
mov dword [esp + 0x34], eax
or edx, dword [esp + 0x34]
mov eax, dword [esp + ebx*8 + 0x2c8]
mov ecx, dword [esp + 0x24]
mov dword [ecx + ebx*8 + 4], edx
mov edx, dword [esp + ebx*8 + 0x2d4]
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x58]
shld edx, esi, cl
test cl, 0x20
jne 0x58ba79
mov dword [esp + 0x3c], edx
mov esi, dword [esp + ebx*8 + 0x2cc]
mov edx, esi
mov ecx, dword [esp + 0xc]
shr edx, cl
test cl, 0x20
jne 0x58ba91
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0xc]
shrd eax, esi, cl
test cl, 0x20
jne 0x58b979
mov edx, eax
jmp 0x58b979
mov esi, dword [esp + edx*8 + 0xc8]
mov eax, dword [esp + edx*8 + 0xcc]
mov ecx, dword [esp + 0x68]
shld eax, esi, cl
mov dword [esp + 0x34], eax
shl esi, cl
mov dword [esp + 0x3c], esi
test cl, 0x20
je 0x58badc
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], 0
mov eax, dword [esp + edx*8 + 0xc0]
mov dword [esp + 0x24], eax
mov eax, dword [esp + edx*8 + 0xc4]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0xc]
shr eax, cl
mov esi, dword [esp + 0x18]
shrd dword [esp + 0x24], esi, cl
mov esi, dword [esp + 0x24]
test cl, 0x20
je 0x58bb0e
mov esi, eax
xor eax, eax
or esi, dword [esp + 0x3c]
or eax, dword [esp + 0x34]
add ebx, dword [esp + 0x48]
mov dword [esp + ebx*8 + 0xd0], esi
mov dword [esp + ebx*8 + 0xd4], eax
lea ebx, [edx - 2]
lea eax, [esp + edx*8]
add eax, 0xc0
mov dword [esp + 0x3c], eax
cmp edx, 2
jne 0x58bcb9
mov esi, dword [esp + 0xd0]
mov eax, dword [esp + 0xd4]
mov edx, esi
mov ecx, dword [esp + 0x68]
shl edx, cl
shld eax, esi, cl
test cl, 0x20
je 0x58bb62
mov eax, edx
xor edx, edx
mov esi, dword [esp + 0x48]
mov dword [esp + esi*8 + 0xd0], edx
mov dword [esp + esi*8 + 0xd4], eax
mov eax, dword [esp + 0xc8]
add eax, esi
mov ecx, dword [esp + eax*8 + 0xd0]
xor edx, edx
or ecx, dword [esp + eax*8 + 0xd4]
setne dl
add edx, eax
mov dword [esp + 0xc8], edx
test esi, esi
je 0x58bbb7
lea eax, [esp + 0xd0]
mov ecx, dword [esp + 0x48]
shl ecx, 3
push ecx
push 0
push eax
call fcn.005c5400
add esp, 0xc
mov esi, dword [esp + 0xc8]
cmp esi, dword [esp + 0x2d0]
jne 0x58bc50
mov dword [esp + 0x3c], esi
jmp 0x58bbd9
or eax, ebx
mov esi, dword [esp + 0x3c]
jne 0x58bc58
sub dword [esp + 0x3c], 1
jb 0x58bc6a
mov eax, dword [esp + esi*8 + 0xc8]
mov ecx, dword [esp + esi*8 + 0xcc]
mov edx, dword [esp + esi*8 + 0x2d0]
mov esi, dword [esp + esi*8 + 0x2d4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x38], edx
cmp edx, eax
mov dword [esp + 0x34], esi
mov eax, esi
sbb eax, ecx
mov dword [esp + 0x18], 1
jb 0x58bc24
mov eax, dword [esp + 0x24]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x38]
xor eax, esi
mov ebx, ecx
mov edx, dword [esp + 0x34]
xor ebx, edx
cmp dword [esp + 0xc], esi
sbb ecx, edx
mov dword [esp + 0x24], 0xffffffff
jb 0x58bbd1
mov edx, dword [esp + 0x18]
mov dword [esp + 0x24], edx
jmp 0x58bbd1
setae al
movzx ecx, al
jmp 0x58bc71
xor ecx, ecx
cmp dword [esp + 0x24], 0
setg al
je 0x58bc6a
xor edx, edx
mov cl, al
jmp 0x58bc73
mov ecx, dword [esp + 0x5c]
and ecx, 1
xor edx, edx
add ecx, dword [esp + 0x5c]
adc edx, dword [esp + 0x20]
mov eax, edx
mov esi, 0x7ff00000
xor eax, esi
or eax, ecx
je 0x58c37d
xor eax, eax
cmp byte [esp + 0x1c], 0x2d
sete al
shl eax, 0x1f
or edx, eax
mov eax, dword [esp + 4]
mov dword [eax + 4], 0
mov dword [eax], 0x14
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov edx, eax
jmp 0x589726
mov eax, dword [esp + 0x48]
lea eax, [esp + eax*8]
add eax, 0xd0
mov dword [esp + 0x24], eax
jmp 0x58bcfa
or esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x18]
or ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x24]
mov dword [eax + ebx*8 - 8], esi
mov dword [eax + ebx*8 - 4], ecx
lea eax, [esp + ebx*8]
add eax, 0xc0
mov dword [esp + 0x3c], eax
add ebx, 0xfffffffe
test ebx, ebx
je 0x58bb40
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x68]
shl eax, cl
mov dword [esp + 0x34], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x38], 0
test cl, 0x20
jne 0x58bd2b
mov eax, dword [esp + 0x34]
mov dword [esp + 0x38], eax
mov edx, dword [esp + ebx*8 + 0xc8]
mov eax, dword [esp + ebx*8 + 0xcc]
mov esi, eax
mov ecx, dword [esp + 0xc]
shr esi, cl
shrd edx, eax, cl
test cl, 0x20
je 0x58bd4d
mov edx, esi
xor esi, esi
or edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x24]
mov dword [ecx + ebx*8], edx
mov edx, dword [esp + ebx*8 + 0xc8]
mov dword [esp + 0x58], edx
mov ecx, dword [esp + 0x68]
shl edx, cl
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], 0
test cl, 0x20
jne 0x58bd89
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x50]
shld eax, edx, cl
test cl, 0x20
jne 0x58bd9d
mov dword [esp + 0x34], eax
or esi, dword [esp + 0x34]
mov eax, dword [esp + ebx*8 + 0xc0]
mov ecx, dword [esp + 0x24]
mov dword [ecx + ebx*8 + 4], esi
mov edx, dword [esp + ebx*8 + 0xcc]
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x58]
shld edx, esi, cl
test cl, 0x20
jne 0x58bdcb
mov dword [esp + 0x3c], edx
mov edx, dword [esp + ebx*8 + 0xc4]
mov esi, edx
mov ecx, dword [esp + 0xc]
shr esi, cl
test cl, 0x20
jne 0x58bde3
mov dword [esp + 0x18], esi
mov ecx, dword [esp + 0xc]
shrd eax, edx, cl
test cl, 0x20
jne 0x58bccb
mov esi, eax
jmp 0x58bccb
mov ecx, dword [esp + 0xc]
mov eax, ecx
shr eax, 1
add eax, ecx
mov dword [esp + 0x30], eax
cmp eax, 0xffffffe
ja 0x589be9
mov esi, dword [esp + 0x30]
shl esi, 4
mov eax, dword [esp + 0xc]
shl eax, 4
push esi
push eax
push dword [esp + 0x1c]
push dword [esp + 0x8c]
call dword [esp + 0xa0]
add esp, 0x10
test eax, eax
je 0x589be9
mov ecx, dword [esp + 0x14]
sub ebx, ecx
add ebx, eax
mov edx, dword [esp + 0x40]
sub edx, ecx
add edx, eax
mov dword [esp + 0x40], edx
lea ecx, [esi + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x84], ecx
mov edi, dword [esp + 0x10]
mov cl, byte [edi]
mov dword [esp + 0x14], eax
jmp 0x588767
mov esi, eax
mov eax, dword [ebp + 0x10]
test al, 0x10
jne 0x58c72d
mov dword [esp + 0x54], str.no_digit_after_minus_sign
mov dword [esp + 0x10], ebx
jmp 0x590a8f
cmp cl, 0x2e
jne 0x58c823
mov eax, dword [esp + 0x3c]
movzx eax, byte [eax + 1]
test byte [eax + 0x5ffe78], 3
je 0x58c429
mov ecx, eax
mov ebx, dword [esp + 0x3c]
cmp al, 0x30
je 0x58c7fc
mov eax, ecx
add eax, 0xffffffd0
mov dword [esp + 0xc], eax
sar eax, 0x1f
mov dword [esp + 0x24], eax
jmp 0x58beea
mov ecx, dword [esp + 0xc]
sar ecx, 0x1f
mov dword [esp + 0x24], ecx
cmp dl, 0x2e
jne 0x58c625
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
movzx ecx, byte [ebx + 2]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x58c721
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
mov esi, dword [esp + 0x24]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0xc], eax
adc esi, edx
mov dword [esp + 0x24], esi
movzx ecx, byte [ebx + 3]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x58c715
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
mov esi, dword [esp + 0x24]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0xc], eax
adc esi, edx
mov dword [esp + 0x24], esi
movzx ecx, byte [ebx + 4]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x58c709
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
mov esi, dword [esp + 0x24]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0xc], eax
adc esi, edx
mov dword [esp + 0x24], esi
movzx ecx, byte [ebx + 5]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x58c6fd
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
mov esi, dword [esp + 0x24]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0xc], eax
adc esi, edx
mov dword [esp + 0x24], esi
movzx ecx, byte [ebx + 6]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x58c6f1
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
mov esi, dword [esp + 0x24]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0xc], eax
adc esi, edx
mov dword [esp + 0x24], esi
movzx ecx, byte [ebx + 7]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x58c6e5
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
mov esi, dword [esp + 0x24]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0xc], eax
adc esi, edx
mov dword [esp + 0x24], esi
movzx ecx, byte [ebx + 8]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x58c6bc
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
mov esi, dword [esp + 0x24]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0xc], eax
adc esi, edx
mov dword [esp + 0x24], esi
movzx ecx, byte [ebx + 9]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x58c6b0
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
mov esi, dword [esp + 0x24]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0xc], eax
adc esi, edx
mov dword [esp + 0x24], esi
movzx ecx, byte [ebx + 0xa]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x58c6a4
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
mov esi, dword [esp + 0x24]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0xc], eax
adc esi, edx
mov dword [esp + 0x24], esi
movzx ecx, byte [ebx + 0xb]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x58c698
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
mov esi, dword [esp + 0x24]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0xc], eax
adc esi, edx
mov dword [esp + 0x24], esi
movzx ecx, byte [ebx + 0xc]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x58c68c
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
mov esi, dword [esp + 0x24]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0xc], eax
adc esi, edx
mov dword [esp + 0x24], esi
movzx ecx, byte [ebx + 0xd]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x58c680
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
mov esi, dword [esp + 0x24]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0xc], eax
adc esi, edx
mov dword [esp + 0x24], esi
movzx ecx, byte [ebx + 0xe]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x58c674
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
mov esi, dword [esp + 0x24]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0xc], eax
adc esi, edx
mov dword [esp + 0x24], esi
movzx ecx, byte [ebx + 0xf]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x58c668
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
mov esi, dword [esp + 0x24]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0xc], eax
adc esi, edx
mov dword [esp + 0x24], esi
movzx ecx, byte [ebx + 0x10]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x58c65c
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
mov esi, dword [esp + 0x24]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0xc], eax
adc esi, edx
mov dword [esp + 0x24], esi
movzx ecx, byte [ebx + 0x11]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x58c650
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
mov esi, dword [esp + 0x24]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0xc], eax
adc esi, edx
mov dword [esp + 0x24], esi
movzx ecx, byte [ebx + 0x12]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x58c644
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
mov esi, dword [esp + 0x24]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0xc], eax
adc esi, edx
mov dword [esp + 0x24], esi
movzx ecx, byte [ebx + 0x13]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x58c619
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
mov esi, dword [esp + 0x24]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0xc], eax
adc esi, edx
mov dword [esp + 0x24], esi
mov ecx, ebx
movzx eax, byte [ebx + 0x14]
add ecx, 0x14
test byte [eax + 0x5ffe78], 3
mov dword [esp + 8], ecx
jne 0x5892ae
mov edx, eax
mov eax, dword [esp + 0x3c]
add eax, 1
cmp eax, dword [esp + 8]
je 0x58c432
mov ecx, dword [esp + 8]
sub ecx, dword [esp + 0x3c]
mov eax, ecx
sar eax, 0x1f
mov dword [esp + 0x38], 0
mov esi, 1
sub esi, ecx
mov ebx, 0
sbb ebx, eax
mov dword [esp + 0x20], ebx
movzx eax, dl
test byte [eax + 0x5ffe78], 0x20
jne 0x58c6c8
cmp ecx, 0x159
jge 0x58a68b
mov dword [esp + 0x38], 0
mov eax, dword [esp + 8]
mov dword [esp + 0x74], eax
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x3c]
mov ecx, esi
mov esi, eax
jmp 0x5894bf
cmp dl, 0x2e
jne 0x58c625
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
jmp 0x58c23c
mov eax, dword [esp + 4]
mov dword [eax + 4], 0
mov dword [eax], 0x14
mov eax, 0xfff00000
cmp byte [esp + 0x1c], 0x2d
je 0x58c33d
mov eax, 0x7ff00000
mov edx, dword [esp + 4]
jmp 0x58a6a9
mov eax, dword [esp + 0xc]
mov dword [esp + 0x30], eax
mov edx, ebx
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
jmp 0x59a262
mov dword [edx + 4], 0
mov dword [edx], 0x14
mov dword [edx + 0xc], 0x7ff80000
mov dword [edx + 8], 0
jmp 0x58972e
mov eax, dword [ebp + 0x10]
test al, al
js 0x58c3c2
mov eax, dword [ebp + 0x10]
test al, 0x10
je 0x590b26
xor eax, eax
mov ecx, dword [esp + 4]
mov dword [ecx + 4], 0
mov dword [ecx], 0x14
mov ecx, 0xfff00000
cmp byte [esp + 0x1c], 0x2d
je 0x58c3b3
mov ecx, 0x7ff00000
mov edx, dword [esp + 4]
mov dword [edx + 0xc], ecx
mov dword [edx + 8], eax
jmp 0x589726
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
test eax, eax
je 0x58c3cf
mov byte [eax], 0
mov esi, dword [esp + 8]
jmp 0x58a7e1
xor esi, esi
mov dword [esp + 0x20], 0
jmp 0x58ab2c
mov dword [esp + 0x54], str.no_low_surrogate_in_string
mov edi, str.no_low_surrogate_in_string
mov esi, dword [esp + 0x3c]
jmp 0x58eef2
mov dword [esp + 0x54], str.invalid_escaped_sequence_in_string
mov edi, str.invalid_escaped_sequence_in_string
mov esi, dword [esp + 0x3c]
jmp 0x58eef2
mov dword [esp + 0x54], str.invalid_low_surrogate_in_string
mov edi, str.invalid_low_surrogate_in_string
mov esi, dword [esp + 0x3c]
jmp 0x58eef2
mov eax, dword [esp + 0x3c]
jmp 0x590a80
mov dword [esp + 0x54], str.no_digit_after_decimal_point
mov eax, dword [esp + 8]
mov dword [esp + 0x10], eax
jmp 0x590a8f
test esi, esi
je 0x58c4d6
lea eax, [esi - 1]
mov dword [esp + 0xc], eax
mov edx, esi
and edx, 3
je 0x58c4da
mov eax, dword [esp + 0x48]
lea ebx, [esp + eax*8]
add ebx, 0x2d0
mov eax, dword [esp + esi*8 + 0x2d0]
mov ecx, dword [esp + esi*8 + 0x2d4]
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], ecx
lea eax, [esi - 1]
mov esi, eax
add edx, 0xffffffff
jne 0x58c46a
jmp 0x58c4dc
test edx, edx
je 0x58c571
lea eax, [edx - 1]
mov dword [esp + 0xc], eax
mov esi, edx
and esi, 3
je 0x58c582
mov eax, dword [esp + 0x48]
lea ebx, [esp + eax*8]
add ebx, 0xc8
mov eax, dword [esp + edx*8 + 0xc8]
mov ecx, dword [esp + edx*8 + 0xcc]
mov dword [ebx + edx*8], eax
mov dword [ebx + edx*8 + 4], ecx
lea eax, [edx - 1]
mov edx, eax
add esi, 0xffffffff
jne 0x58c4b2
jmp 0x58c584
xor eax, eax
jmp 0x58c557
mov eax, esi
cmp dword [esp + 0xc], 3
jb 0x58c550
mov ecx, dword [esp + 0x48]
lea ecx, [esp + ecx*8]
add ecx, 0x2d0
mov edx, eax
mov esi, dword [esp + eax*8 + 0x2d0]
mov ebx, dword [esp + eax*8 + 0x2d4]
mov dword [ecx + eax*8 + 4], ebx
mov dword [ecx + eax*8], esi
mov esi, dword [esp + eax*8 + 0x2cc]
mov ebx, dword [esp + eax*8 + 0x2c8]
mov dword [ecx + eax*8 - 8], ebx
mov dword [ecx + eax*8 - 4], esi
mov esi, dword [esp + eax*8 + 0x2c0]
mov ebx, dword [esp + eax*8 + 0x2c4]
mov dword [ecx + eax*8 - 0xc], ebx
mov dword [ecx + eax*8 - 0x10], esi
mov esi, dword [esp + eax*8 + 0x2bc]
mov ebx, dword [esp + eax*8 + 0x2b8]
mov dword [ecx + eax*8 - 0x18], ebx
mov dword [ecx + eax*8 - 0x14], esi
add edx, 0xfffffffc
mov eax, edx
jne 0x58c4f2
mov eax, dword [esp + 0x2d0]
mov ecx, dword [esp + 0x48]
add eax, ecx
mov dword [esp + 0x2d0], eax
test ecx, ecx
jne 0x58b951
jmp 0x58bbb7
xor eax, eax
jmp 0x58c5ff
mov ecx, 5
jmp 0x5890cf
mov eax, edx
cmp dword [esp + 0xc], 3
jb 0x58c5f8
mov ecx, dword [esp + 0x48]
lea ecx, [esp + ecx*8]
add ecx, 0xc8
mov edx, eax
mov esi, dword [esp + eax*8 + 0xc8]
mov ebx, dword [esp + eax*8 + 0xcc]
mov dword [ecx + eax*8 + 4], ebx
mov dword [ecx + eax*8], esi
mov esi, dword [esp + eax*8 + 0xc4]
mov ebx, dword [esp + eax*8 + 0xc0]
mov dword [ecx + eax*8 - 8], ebx
mov dword [ecx + eax*8 - 4], esi
mov esi, dword [esp + eax*8 + 0xb8]
mov ebx, dword [esp + eax*8 + 0xbc]
mov dword [ecx + eax*8 - 0xc], ebx
mov dword [ecx + eax*8 - 0x10], esi
mov esi, dword [esp + eax*8 + 0xb4]
mov ebx, dword [esp + eax*8 + 0xb0]
mov dword [ecx + eax*8 - 0x18], ebx
mov dword [ecx + eax*8 - 0x14], esi
add edx, 0xfffffffc
mov eax, edx
jne 0x58c59a
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x48]
add eax, ecx
mov dword [esp + 0xc8], eax
test ecx, ecx
jne 0x58bb9d
jmp 0x58bbb7
add ebx, 0x13
mov dword [esp + 8], ebx
jmp 0x58c288
xor ecx, ecx
xor edx, edx
mov eax, dword [esp + 8]
mov esi, eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x38], 0
mov ebx, dword [esp + 0x24]
jmp 0x5893ba
add ebx, 0x12
mov dword [esp + 8], ebx
jmp 0x58c288
add ebx, 0x11
mov dword [esp + 8], ebx
jmp 0x58c288
add ebx, 0x10
mov dword [esp + 8], ebx
jmp 0x58c288
add ebx, 0xf
mov dword [esp + 8], ebx
jmp 0x58c288
add ebx, 0xe
mov dword [esp + 8], ebx
jmp 0x58c288
add ebx, 0xd
mov dword [esp + 8], ebx
jmp 0x58c288
add ebx, 0xc
mov dword [esp + 8], ebx
jmp 0x58c288
add ebx, 0xb
mov dword [esp + 8], ebx
jmp 0x58c288
add ebx, 0xa
mov dword [esp + 8], ebx
jmp 0x58c288
add ebx, 9
mov dword [esp + 8], ebx
jmp 0x58c288
add ebx, 8
mov dword [esp + 8], ebx
jmp 0x58c288
mov eax, dword [esp + 8]
mov dword [esp + 0x74], eax
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x3c]
mov ecx, esi
mov esi, eax
mov edx, dword [esp + 0x20]
jmp 0x5893ba
add ebx, 7
mov dword [esp + 8], ebx
jmp 0x58c288
add ebx, 6
mov dword [esp + 8], ebx
jmp 0x58c288
add ebx, 5
mov dword [esp + 8], ebx
jmp 0x58c288
add ebx, 4
mov dword [esp + 8], ebx
jmp 0x58c288
add ebx, 3
mov dword [esp + 8], ebx
jmp 0x58c288
add ebx, 2
mov dword [esp + 8], ebx
jmp 0x58c288
xor ecx, ecx
cmp byte [esp + 0x1c], 0x2d
sete al
mov edx, esi
add dl, 0xb7
cmp dl, 0x25
ja case.0x58c74e.182
mov cl, al
mov eax, ebx
sub eax, ecx
movzx ecx, dl
jmp dword [ecx*4 + 0x6045dc]
mov cl, byte [ebx + 1]
or cl, 0x20
cmp cl, 0x6e
jne 0x58c866
mov cl, byte [ebx + 2]
or cl, 0x20
cmp cl, 0x66
jne 0x58c866
mov edx, ebx
lea ecx, [ebx + 3]
mov dl, byte [ebx + 3]
or dl, 0x20
cmp dl, 0x69
jne 0x58c7b4
mov dl, byte [ebx + 4]
or dl, 0x20
cmp dl, 0x6e
jne 0x58c7b4
mov dl, byte [ebx + 5]
or dl, 0x20
cmp dl, 0x69
jne 0x58c7b4
mov dl, byte [ebx + 6]
or dl, 0x20
cmp dl, 0x74
jne 0x58c7b4
mov dl, byte [ebx + 7]
or dl, 0x20
cmp dl, 0x79
jne 0x58c7b4
mov ecx, ebx
add ecx, 8
cmp dword [esp + 0x44], 0
je 0x58c90f
mov edx, dword [esp + 0x44]
mov edx, dword [edx]
test edx, edx
je 0x58c7cc
mov byte [edx], 0
mov edx, dword [esp + 0x44]
mov dword [edx], ecx
mov edx, ecx
sub edx, eax
mov esi, edx
sar esi, 0x1f
shld esi, edx, 8
mov edi, dword [esp + 4]
mov dword [edi + 4], esi
shl edx, 8
or edx, 1
mov dword [edi], edx
mov edx, edi
mov dword [edi + 8], eax
mov dword [esp + 0x10], ecx
jmp 0x58972e
mov ebx, dword [esp + 0x3c]
movzx eax, byte [ebx + 2]
add ebx, 1
cmp eax, 0x30
je 0x58c800
mov ecx, eax
mov al, byte [ecx + 0x5ffe78]
test al, 3
jne 0x58beba
add ebx, 1
mov dword [esp + 0x3c], ebx
test al, 3
jne 0x58c855
test al, 0x20
jne 0x58c948
xor eax, eax
cmp byte [esp + 0x1c], 0x2d
sete al
mov edx, dword [esp + 4]
mov dword [edx + 4], 0
mov dword [edx], 0x14
shl eax, 0x1f
mov dword [edx + 0xc], eax
jmp 0x589f36
mov dword [esp + 0x54], str.number_with_leading_zero_is_not_allowed
mov eax, dword [esp + 0x3c]
jmp 0x59103f
mov ecx, esi
cmp cl, 0x4e
jne case.0x58c74e.182
mov cl, byte [ebx + 1]
or cl, 0x20
cmp cl, 0x61
jne case.0x58c74e.182
mov cl, byte [ebx + 2]
or cl, 0x20
cmp cl, 0x6e
jne case.0x58c74e.182
add ebx, 3
cmp dword [esp + 0x44], 0
je 0x58c8d6
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx]
test ecx, ecx
je 0x58c8a6
mov byte [ecx], 0
mov ecx, dword [esp + 0x44]
mov dword [ecx], ebx
mov ecx, 0x401
cmp byte [esp + 0x1c], 0x2d
je 0x58c8bd
mov ecx, 0x301
mov edx, dword [esp + 4]
mov dword [edx], ecx
mov dword [edx + 4], 0
mov dword [edx + 8], eax
mov dword [esp + 0x10], ebx
jmp 0x58972e
mov eax, dword [esp + 4]
mov dword [eax + 4], 0
mov dword [eax], 0x14
mov eax, 0xfff80000
cmp byte [esp + 0x1c], 0x2d
je 0x58c8f8
mov eax, 0x7ff80000
mov edx, dword [esp + 4]
mov dword [edx + 0xc], eax
mov dword [edx + 8], 0
mov dword [esp + 0x10], ebx
jmp 0x58972e
mov eax, dword [esp + 4]
mov dword [eax + 4], 0
mov dword [eax], 0x14
mov eax, 0xfff00000
cmp byte [esp + 0x1c], 0x2d
je 0x58c931
mov eax, 0x7ff00000
mov edx, dword [esp + 4]
mov dword [edx + 0xc], eax
mov dword [edx + 8], 0
mov dword [esp + 0x10], ecx
jmp 0x58972e
mov ecx, dword [esp + 0x3c]
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 + 0x3c], ecx
test byte [eax + 0x5ffe78], 3
je 0x58c98e
mov ecx, dword [esp + 0x3c]
movzx eax, byte [ecx + 1]
add ecx, 1
mov dword [esp + 0x3c], ecx
test byte [eax + 0x5ffe78], 3
jne 0x58c971
jmp 0x58c82f
mov dword [esp + 0x54], str.no_digit_after_exponent_sign
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
jmp 0x590a8f
lea ebx, [esp + 0x10]
mov edi, dword [esp + 0x10]
movzx eax, byte [edi]
cmp eax, 0x22
mov dword [esp + 0x14], ecx
je 0x58ca0f
cmp al, 0x7d
je 0x58dbcb
mov dword [esp + 4], edx
test byte [eax + 0x5ffc78], 1
jne 0x58c9ef
mov eax, dword [ebp + 0x10]
test al, 8
je case.0x58877b.182
mov ecx, ebx
call fcn.0059a490
test al, al
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 4]
jne 0x58c9a7
jmp 0x5911bc
add edi, 1
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 4]
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
add edi, 1
test byte [eax + 0x5ffc78], 1
jne 0x58c9fa
jmp 0x58c9a7
add edx, 0x10
cmp edx, dword [esp + 0x84]
mov dword [esp + 0x40], esi
jae 0x58dbec
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0xc]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x3c]
add eax, 1
mov dword [esp + 0x28], eax
add edi, 1
mov ecx, edi
movzx eax, byte [ecx]
test byte [eax + 0x5ffc78], 0xc
jne 0x58cc7f
add ecx, 8
mov esi, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esi - 7]
test byte [eax + 0x5ffc78], 0xc
jne 0x58cb63
movzx eax, byte [esi - 6]
test byte [eax + 0x5ffc78], 0xc
jne 0x58cb68
movzx eax, byte [esi - 5]
test byte [eax + 0x5ffc78], 0xc
jne 0x58cb6d
movzx eax, byte [esi - 4]
test byte [eax + 0x5ffc78], 0xc
jne 0x58cb72
movzx eax, byte [esi - 3]
test byte [eax + 0x5ffc78], 0xc
jne 0x58cb77
movzx eax, byte [esi - 2]
test byte [eax + 0x5ffc78], 0xc
jne 0x58cb7c
movzx eax, byte [esi - 1]
test byte [eax + 0x5ffc78], 0xc
jne 0x58cb81
movzx eax, byte [esi]
test byte [eax + 0x5ffc78], 0xc
jne 0x58cbb0
movzx eax, byte [esi + 1]
test byte [eax + 0x5ffc78], 0xc
jne 0x58cb86
movzx eax, byte [esi + 2]
test byte [eax + 0x5ffc78], 0xc
jne 0x58cb8b
movzx eax, byte [esi + 3]
test byte [eax + 0x5ffc78], 0xc
jne 0x58cb90
movzx eax, byte [esi + 4]
test byte [eax + 0x5ffc78], 0xc
jne 0x58cb95
movzx eax, byte [esi + 5]
test byte [eax + 0x5ffc78], 0xc
jne 0x58cb9a
movzx eax, byte [esi + 6]
test byte [eax + 0x5ffc78], 0xc
jne 0x58cb9f
movzx eax, byte [esi + 7]
test byte [eax + 0x5ffc78], 0xc
jne 0x58cba4
movzx eax, byte [esi + 8]
add esi, 0x10
test byte [eax + 0x5ffc78], 0xc
je 0x58ca60
add esi, 0xfffffff8
jmp 0x58cbb0
add esi, 0xfffffff9
jmp 0x58cbb0
add esi, 0xfffffffa
jmp 0x58cbb0
add esi, 0xfffffffb
jmp 0x58cbb0
add esi, 0xfffffffc
jmp 0x58cbb0
add esi, 0xfffffffd
jmp 0x58cbb0
add esi, 0xfffffffe
jmp 0x58cbb0
add esi, 0xffffffff
jmp 0x58cbb0
add esi, 1
jmp 0x58cbb0
add esi, 2
jmp 0x58cbb0
add esi, 3
jmp 0x58cbb0
add esi, 4
jmp 0x58cbb0
add esi, 5
jmp 0x58cbb0
add esi, 6
jmp 0x58cbb0
add esi, 7
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, 0xd
cmp al, 0x22
je 0x58ccc6
test al, al
jns 0x58dc6d
test dword [ebp + 0x10], 0x40000000
jne 0x58cc86
mov eax, dword [esi]
mov edx, eax
and edx, 0xc0c0f0
mov ecx, esi
cmp edx, 0x8080e0
jne 0x58cc0e
mov edx, eax
and edx, 0x200f
je 0x58cc0e
cmp edx, 0x200d
je 0x58cc0e
mov eax, dword [ecx + 3]
add ecx, 3
mov edx, eax
and edx, 0xc0c0f0
cmp edx, 0x8080e0
je 0x58cbe6
test al, al
jns 0x58ca3f
jmp 0x58cc1e
mov eax, dword [ecx + 2]
add ecx, 2
mov edx, eax
and edx, 0xc0e0
cmp edx, 0x80c0
jne 0x58cc3d
mov edx, eax
and edx, 0x1e
jne 0x58cc18
jmp 0x58cc3d
mov eax, dword [ecx + 4]
add ecx, 4
mov edx, eax
and edx, 0xc0c0c0f8
cmp edx, 0x808080f0
jne 0x58cc62
mov edx, eax
and edx, 0x3007
je 0x58cc62
test al, 4
je 0x58cc37
and eax, 0x3003
je 0x58cc37
cmp esi, ecx
jne 0x58ca3f
mov eax, dword [ebp + 0x10]
test al, 0x40
je 0x5909e6
add esi, 1
mov ecx, esi
jmp 0x58ca3f
mov esi, ecx
jmp 0x58cbb0
mov ecx, eax
add cl, 0x7f
cmp cl, 0x7d
ja 0x58ccb0
add esi, 1
cmp byte [esi], 0
je 0x58eee5
movzx eax, byte [esi + 1]
mov ecx, eax
add cl, 0x7f
add esi, 2
cmp cl, 0x7e
jb 0x58cc93
add esi, 0xffffffff
mov ecx, esi
cmp al, 0xff
je 0x58ccbe
cmp al, 0x80
jne 0x58ca3f
add ecx, 1
jmp 0x58ca3f
mov dword [esp + 0xc], 0
mov ebx, esi
mov eax, ebx
sub eax, edi
mov edx, eax
sar edx, 0x1f
shld edx, eax, 8
or edx, dword [esp + 0xc]
shl eax, 8
or eax, ecx
mov ecx, dword [esp + 0x24]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [ecx + 8], edi
mov byte [ebx], 0
lea edi, [esi + 1]
mov dword [esp + 0x10], edi
mov al, byte [esi + 1]
cmp al, 0x3a
jne 0x58cfb5
mov eax, edi
add edi, 1
mov dword [esp + 0x10], edi
mov bl, byte [eax + 1]
cmp bl, 0x22
jne 0x58d053
lea eax, [ecx + 0x10]
mov dword [esp + 4], eax
add dword [esp + 0x3c], 2
add edi, 1
mov ecx, edi
movzx eax, byte [ecx]
test byte [eax + 0x5ffc78], 0xc
jne 0x58cf6e
add ecx, 8
mov esi, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esi - 7]
test byte [eax + 0x5ffc78], 0xc
jne 0x58ce53
movzx eax, byte [esi - 6]
test byte [eax + 0x5ffc78], 0xc
jne 0x58ce58
movzx eax, byte [esi - 5]
test byte [eax + 0x5ffc78], 0xc
jne 0x58ce5d
movzx eax, byte [esi - 4]
test byte [eax + 0x5ffc78], 0xc
jne 0x58ce62
movzx eax, byte [esi - 3]
test byte [eax + 0x5ffc78], 0xc
jne 0x58ce67
movzx eax, byte [esi - 2]
test byte [eax + 0x5ffc78], 0xc
jne 0x58ce6c
movzx eax, byte [esi - 1]
test byte [eax + 0x5ffc78], 0xc
jne 0x58ce71
movzx eax, byte [esi]
test byte [eax + 0x5ffc78], 0xc
jne 0x58ce97
movzx eax, byte [esi + 1]
test byte [eax + 0x5ffc78], 0xc
jne 0x58ce76
movzx eax, byte [esi + 2]
test byte [eax + 0x5ffc78], 0xc
jne 0x58ce7b
movzx eax, byte [esi + 3]
test byte [eax + 0x5ffc78], 0xc
jne 0x58ce80
movzx eax, byte [esi + 4]
test byte [eax + 0x5ffc78], 0xc
jne 0x58ce85
movzx eax, byte [esi + 5]
test byte [eax + 0x5ffc78], 0xc
jne 0x58ce8a
movzx eax, byte [esi + 6]
test byte [eax + 0x5ffc78], 0xc
jne 0x58ce8f
movzx eax, byte [esi + 7]
test byte [eax + 0x5ffc78], 0xc
jne 0x58ce94
movzx eax, byte [esi + 8]
add esi, 0x10
test byte [eax + 0x5ffc78], 0xc
je 0x58cd50
add esi, 0xfffffff8
jmp 0x58ce97
add esi, 0xfffffff9
jmp 0x58ce97
add esi, 0xfffffffa
jmp 0x58ce97
add esi, 0xfffffffb
jmp 0x58ce97
add esi, 0xfffffffc
jmp 0x58ce97
add esi, 0xfffffffd
jmp 0x58ce97
add esi, 0xfffffffe
jmp 0x58ce97
add esi, 0xffffffff
jmp 0x58ce97
add esi, 1
jmp 0x58ce97
add esi, 2
jmp 0x58ce97
add esi, 3
jmp 0x58ce97
add esi, 4
jmp 0x58ce97
add esi, 5
jmp 0x58ce97
add esi, 6
jmp 0x58ce97
add esi, 7
mov ecx, 0xd
cmp al, 0x22
je 0x58d00f
mov dword [esp + 0xc], 0
test al, al
jns 0x58e86d
test dword [ebp + 0x10], 0x40000000
jne 0x58cf75
mov eax, dword [esi]
mov edx, eax
and edx, 0xc0c0f0
mov ecx, esi
cmp edx, 0x8080e0
jne 0x58cefd
mov edx, eax
and edx, 0x200f
je 0x58cefd
cmp edx, 0x200d
je 0x58cefd
mov eax, dword [ecx + 3]
add ecx, 3
mov edx, eax
and edx, 0xc0c0f0
cmp edx, 0x8080e0
je 0x58ced5
test al, al
jns 0x58cd2d
jmp 0x58cf0d
mov eax, dword [ecx + 2]
add ecx, 2
mov edx, eax
and edx, 0xc0e0
cmp edx, 0x80c0
jne 0x58cf2c
mov edx, eax
and edx, 0x1e
jne 0x58cf07
jmp 0x58cf2c
mov eax, dword [ecx + 4]
add ecx, 4
mov edx, eax
and edx, 0xc0c0c0f8
cmp edx, 0x808080f0
jne 0x58cf51
mov edx, eax
and edx, 0x3007
je 0x58cf51
test al, 4
je 0x58cf26
and eax, 0x3003
je 0x58cf26
cmp esi, ecx
jne 0x58cd2d
mov eax, dword [ebp + 0x10]
test al, 0x40
je 0x5909e6
add esi, 1
mov ecx, esi
jmp 0x58cd2d
mov esi, ecx
jmp 0x58ce97
mov ecx, eax
add cl, 0x7f
cmp cl, 0x7d
ja 0x58cf9f
add esi, 1
cmp byte [esi], 0
je 0x58eee5
movzx eax, byte [esi + 1]
mov ecx, eax
add cl, 0x7f
add esi, 2
cmp cl, 0x7e
jb 0x58cf82
add esi, 0xffffffff
mov ecx, esi
cmp al, 0xff
je 0x58cfad
cmp al, 0x80
jne 0x58cd2d
add ecx, 1
jmp 0x58cd2d
lea esi, [esp + 0x10]
movzx eax, al
test byte [eax + 0x5ffc78], 1
jne 0x58cfeb
mov eax, dword [ebp + 0x10]
test al, 8
je case.0x58877b.182
mov ecx, esi
call fcn.0059a490
test al, al
je 0x5911bc
mov edi, dword [esp + 0x10]
mov al, byte [edi]
mov ecx, dword [esp + 0x24]
jmp 0x58d006
add edi, 1
nop
nop
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
add edi, 1
test byte [eax + 0x5ffc78], 1
jne 0x58cff0
add edi, 0xffffffff
cmp al, 0x3a
jne 0x58cfb9
jmp 0x58cd07
mov dword [esp + 0xc], 0
mov ebx, esi
mov eax, ebx
sub eax, edi
mov edx, eax
sar edx, 0x1f
shld edx, eax, 8
or edx, dword [esp + 0xc]
shl eax, 8
or eax, ecx
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
mov dword [ecx + 0x18], edi
mov byte [ebx], 0
add esi, 1
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 4]
jmp 0x59a2a7
lea esi, [esp + 0x10]
movzx eax, bl
mov al, byte [eax + 0x5ffc78]
test al, 2
jne 0x58d116
mov ecx, ebx
add cl, 0xa5
cmp cl, 0x20
ja case.0x58d075.164
movzx ecx, cl
jmp dword [ecx*4 + 0x604408]
test al, 1
jne 0x58d0a6
mov eax, dword [ebp + 0x10]
test al, 0x10
jne 0x58d0d4
test al, 8
je case.0x58877b.182
mov ecx, esi
call fcn.0059a490
test al, al
je 0x5911bc
mov edi, dword [esp + 0x10]
mov bl, byte [edi]
jmp 0x58d0c6
add edi, 1
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x10], edi
movzx ebx, byte [edi]
add edi, 1
test byte [ebx + 0x5ffc78], 1
jne 0x58d0b0
add edi, 0xffffffff
mov ecx, dword [esp + 0x24]
cmp bl, 0x22
jne 0x58d057
jmp 0x58cd1c
cmp bl, 0x49
je 0x58d0e3
cmp bl, 0x69
je 0x58d0e3
cmp bl, 0x4e
jne 0x58d087
mov eax, dword [esp + 0x24]
lea edx, [eax + 0x10]
add dword [esp + 0x3c], 2
mov esi, ebx
cmp bl, 0x49
je 0x58e7c7
mov eax, esi
cmp al, 0x69
je 0x58e7c7
mov eax, esi
cmp al, 0x4e
jne case.0x58877b.182
mov al, byte [edi + 1]
jmp 0x58efd1
lea eax, [ecx + 0x10]
mov dword [esp + 4], eax
add dword [esp + 0x3c], 2
mov dword [esp + 0x98], 0
mov eax, dword [ebp + 0x10]
test al, al
js 0x58d13f
cmp dword [esp + 0x44], 0
jne 0x58ef95
xor eax, eax
cmp bl, 0x2d
sete al
lea ecx, [edi + eax]
movzx eax, byte [edi + eax]
test byte [eax + 0x5ffe78], 2
mov dword [esp + 0xc], ecx
je 0x58e2dc
add eax, 0xffffffd0
movzx edx, byte [ecx + 1]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58e335
mov ecx, 0xa
imul ecx
add eax, esi
adc edx, 0
mov ecx, edx
mov edx, dword [esp + 0xc]
movzx edx, byte [edx + 2]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58e396
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + 3]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58e3d2
mov ecx, 0xa
mul ecx
mov ecx, dword [esp + 0x28]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov edx, dword [esp + 0xc]
movzx edx, byte [edx + 4]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58e40a
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + 5]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58e446
mov ecx, 0xa
mul ecx
mov ecx, dword [esp + 0x28]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov edx, dword [esp + 0xc]
movzx edx, byte [edx + 6]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58e47e
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + 7]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58e4ba
mov ecx, 0xa
mul ecx
mov ecx, dword [esp + 0x28]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov edx, dword [esp + 0xc]
movzx edx, byte [edx + 8]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58e4f2
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + 9]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58e52e
mov ecx, 0xa
mul ecx
mov ecx, dword [esp + 0x28]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov edx, dword [esp + 0xc]
movzx edx, byte [edx + 0xa]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58e566
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + 0xb]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58e5a2
mov ecx, 0xa
mul ecx
mov ecx, dword [esp + 0x28]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov edx, dword [esp + 0xc]
movzx edx, byte [edx + 0xc]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58e5da
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + 0xd]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58e616
mov ecx, 0xa
mul ecx
mov ecx, dword [esp + 0x28]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov edx, dword [esp + 0xc]
movzx edx, byte [edx + 0xe]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58e64e
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + 0xf]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58e68a
mov ecx, 0xa
mul ecx
mov ecx, dword [esp + 0x28]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov edx, dword [esp + 0xc]
movzx edx, byte [edx + 0x10]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58e6c2
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + 0x11]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x58e6fa
mov ecx, 0xa
mul ecx
mov ecx, dword [esp + 0x28]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov esi, ecx
mov ecx, dword [esp + 0xc]
movzx edx, byte [ecx + 0x12]
lea ecx, [edx - 0x30]
cmp ecx, 9
ja 0x58e72e
mov edx, 0xa
mul edx
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov ecx, dword [esp + 0xc]
mov al, byte [ecx + 0x13]
add ecx, 0x13
mov dword [esp + 0xc], ecx
movzx ecx, al
mov dl, byte [ecx + 0x5ffe78]
test dl, 0x33
je 0x58d543
mov dword [esp + 0x1c], eax
test dl, 3
je 0x58d468
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 1]
test byte [eax + 0x5ffe78], 0x33
je 0x58d632
test dl, 0x20
jne 0x58d5c9
cmp byte [esp + 0x1c], 0x2e
mov dword [esp + 0x28], esi
jne 0x58d6f1
mov eax, dword [esp + 0xc]
lea ecx, [eax + 1]
movzx eax, byte [eax + 1]
test byte [eax + 0x5ffe78], 3
je 0x58dc5c
mov dword [esp + 0x1c], eax
jmp 0x58d6fd
mov eax, dword [esp + 0x24]
lea edx, [eax + 0x10]
add dword [esp + 0x3c], 2
mov eax, dword [edi]
cmp eax, 0x6c6c756e
jne 0x58e792
mov dword [edx + 4], 0
mov dword [edx], 2
jmp 0x58d4ee
cmp dword [edi], 0x65757274
jne 0x5977dc
mov edx, dword [esp + 0x24]
add edx, 0x10
add dword [esp + 0x3c], 2
mov dword [edx + 4], 0
mov dword [edx], 0xb
add edi, 4
jmp 0x58d536
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x24]
jmp 0x588997
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x24]
jmp 0x58892a
cmp dword [edi + 1], 0x65736c61
jne 0x5977dc
mov edx, dword [esp + 0x24]
add edx, 0x10
add dword [esp + 0x3c], 2
mov dword [edx + 4], 0
mov dword [edx], 3
add edi, 5
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x14]
jmp 0x59a2a7
cmp bl, 0x2d
mov edx, dword [esp + 8]
jne 0x58d5f0
mov eax, SysReAllocString
mov ecx, edx
neg ecx
sbb eax, esi
jae 0x58d5f0
mov eax, dword [ebp + 0x10]
test al, al
mov edx, dword [esp + 4]
mov eax, dword [esp + 0x24]
js 0x58f4d2
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0x14
mov ecx, dword [esp + 8]
mov dword [esp + 0x4e8], ecx
mov dword [esp + 0x4ec], esi
shr esi, 0x1f
fild qword [esp + 0x4e8]
fadd dword [esi*4 + 0x5ffc50]
fstp qword [esp + 0x528]
fld qword [esp + 0x528]
fchs
fstp qword [eax + 0x18]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x14]
jmp 0x59a2a7
xor edx, edx
mov eax, dword [esp + 0xc]
mov dword [esp + 0x20], eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x50], 0
jmp 0x58d830
xor eax, eax
mov ecx, edx
neg ecx
sbb eax, esi
xor edx, edx
mov edi, esi
mov esi, dword [esp + 0x24]
mov dword [esi + 0x14], 0
cmp bl, 0x2d
sete dl
lea edx, [edx*8 + 4]
mov dword [esi + 0x10], edx
je 0x58d61f
mov eax, edi
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x24]
mov dword [edx + 0x18], ecx
mov dword [edx + 0x1c], eax
mov eax, dword [esp + 0xc]
jmp 0x58dbc2
add ecx, 0xffffffd0
cmp dword [esp + 8], 0x99999999
mov eax, esi
sbb eax, 0x19999999
jb 0x58d671
mov eax, 0x19999999
mov dword [esp + 0x28], esi
mov esi, 0x99999999
xor esi, dword [esp + 8]
xor eax, dword [esp + 0x28]
or eax, esi
mov esi, dword [esp + 0x28]
jne 0x58d468
cmp ecx, 5
ja 0x58d468
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
add dword [esp + 0xc], 1
lea esi, [esi + esi*4]
lea edx, [edx + esi*2]
mov esi, ecx
sar esi, 0x1f
add eax, ecx
adc edx, esi
cmp bl, 0x2d
jne 0x58d796
mov esi, dword [esp + 0xc]
mov ecx, dword [ebp + 0x10]
test cl, cl
js 0x58f84b
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0x14
mov dword [esp + 0x4f0], eax
mov dword [esp + 0x4f4], edx
shr edx, 0x1f
fild qword [esp + 0x4f0]
fadd dword [edx*4 + 0x5ffc50]
fstp qword [esp + 0x530]
fld qword [esp + 0x530]
fchs
fstp qword [ecx + 0x18]
jmp 0x58d042
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xc], 0
lea edx, [ecx + 1]
mov dword [esp + 0x18], ecx
sub ecx, edi
movzx esi, byte [edx]
movzx eax, byte [esi + 0x5ffe78]
add edx, 1
add ecx, 1
test al, 3
jne 0x58d706
mov dword [esp + 0x34], esi
mov byte [esp + 0x38], al
xor eax, eax
cmp byte [esp + 0x1c], 0x34
seta al
add dword [esp + 8], eax
mov esi, dword [esp + 0x28]
adc esi, 0
lea eax, [edx - 1]
cmp dword [esp + 0xc], 0
je 0x58d745
mov ecx, eax
jmp 0x58d7bd
mov dword [esp + 0x20], edx
mov edx, dword [ebp + 0x10]
test dl, dl
jns 0x58d75d
mov dh, byte [esp + 0x38]
and dh, 0x30
je 0x58fa3b
cmp byte [esp + 0x34], 0x2e
mov ecx, dword [esp + 0x20]
jne 0x58d7b7
mov edx, eax
movzx eax, byte [ecx]
test byte [eax + 0x5ffe78], 3
je 0x58dc5c
movzx eax, byte [ecx + 1]
add ecx, 1
movzx eax, byte [eax + 0x5ffe78]
test al, 3
jne 0x58d77a
mov byte [esp + 0x38], al
mov dword [esp + 0xc], edx
jmp 0x58d7bd
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 4
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], edx
mov eax, dword [esp + 0xc]
jmp 0x58dbc2
mov ecx, eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x20], ecx
lea eax, [ecx - 1]
jmp 0x58d7c9
add eax, 0xffffffff
movzx ecx, byte [eax]
cmp cl, 0x30
je 0x58d7c6
cmp cl, 0x2e
je 0x58d7c6
mov dword [esp + 0x28], esi
xor ecx, ecx
mov esi, dword [esp + 0xc]
sub esi, dword [esp + 0x18]
setb cl
mov edx, esi
sar edx, 0x1f
add ecx, esi
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
adc edx, 0
mov dword [esp + 0x34], edx
mov dword [esp + 0x74], 0
mov dword [esp + 0x50], 0
cmp eax, ecx
jb 0x58d81d
mov eax, dword [esp + 0x20]
mov dword [esp + 0x74], eax
mov dword [esp + 0x50], ecx
test byte [esp + 0x38], 0x20
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x28]
je 0x58d900
mov ecx, edx
mov edx, dword [esp + 0x20]
movzx eax, byte [edx + 1]
add edx, 1
mov dword [esp + 0x38], eax
mov al, byte [eax + 0x5ffe78]
and al, 0xc
cmp al, 1
mov eax, edx
sbb eax, 0xffffffff
movzx edx, byte [eax]
test byte [edx + 0x5ffe78], 3
je 0x58e2cb
cmp dl, 0x30
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], ecx
jne 0x58d890
movzx edx, byte [eax + 1]
add eax, 1
cmp edx, 0x30
je 0x58d86d
mov dword [esp + 0x18], eax
test byte [edx + 0x5ffe78], 3
jne 0x58d894
xor eax, eax
mov edx, dword [esp + 0x18]
xor ecx, ecx
jmp 0x58d8cc
mov dword [esp + 0x18], eax
mov dword [esp + 0x5c], ebx
xor eax, eax
xor ecx, ecx
mov esi, dword [esp + 0x18]
add dl, 0xd0
movzx ebx, dl
mov edx, 0xa
mul edx
add ecx, ecx
add eax, ebx
lea ecx, [ecx + ecx*4]
adc ecx, edx
movzx edx, byte [esi + 1]
add esi, 1
test byte [edx + 0x5ffe78], 3
jne 0x58d8a0
mov edx, esi
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x20], edx
sub edx, dword [esp + 0x18]
cmp edx, 0x13
jge 0x58f027
xor edx, edx
mov esi, eax
neg esi
sbb edx, ecx
cmp byte [esp + 0x38], 0x2d
je 0x58d8f0
mov edx, ecx
mov esi, eax
mov eax, dword [esp + 0x1c]
add eax, esi
adc dword [esp + 0x34], edx
mov edx, eax
mov esi, dword [esp + 0x28]
mov eax, 0xfffffea8
cmp eax, edx
mov eax, 0xffffffff
mov ecx, dword [esp + 0x34]
sbb eax, ecx
jge 0x58f032
cmp edx, 0x135
sbb ecx, 0
jge 0x58ef27
mov dword [esp + 0x98], edx
lea eax, [edx + 0x132]
cmp eax, 0x251
mov dword [esp + 0x28], esi
ja 0x58ef79
cmp dword [esp + 0x50], 0
jne 0x58ef79
mov eax, edx
shl eax, 4
mov dword [esp + 0x58], eax
test esi, esi
mov eax, esi
mov esi, edx
jne 0x58d970
mov edx, eax
mov eax, dword [esp + 8]
bsr ecx, eax
xor ecx, 0x1f
add ecx, 0x20
jmp 0x58d97c
bsr ecx, eax
xor ecx, 0x1f
mov edx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x34]
shld edx, eax, cl
imul ecx, esi, 0x3526a
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x34]
shl eax, cl
mov ecx, eax
mov esi, dword [esp + 0x58]
mov eax, dword [esi + 0x6014ec]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x6014e8]
mov dword [esp + 0x38], eax
test byte [esp + 0x34], 0x20
jne 0x58d9c6
mov dword [esp + 0x48], 0
mov dword [esp + 0x5c], edx
jmp 0x58d9d4
mov dword [esp + 0x48], 0
mov dword [esp + 0x5c], ecx
xor ecx, ecx
mov dword [esp + 0x78], ecx
mov eax, dword [esp + 0x38]
mul ecx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x1c]
mul ecx
mov esi, eax
mov dword [esp + 0x68], edx
add dword [esp + 0x18], 0xffc10000
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x5c]
mul ecx
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x1c]
mul ecx
add esi, dword [esp + 0x6c]
adc eax, dword [esp + 0x68]
adc edx, 0
add esi, dword [esp + 0x64]
mov dword [esp + 0x64], esi
adc eax, dword [esp + 0x60]
adc edx, 0
mov dword [esp + 0x6c], eax
and eax, 0x1ff
add eax, 0xffffffff
mov ecx, 0
adc ecx, 0xffffffff
cmp eax, 0x1fe
sbb ecx, 0
jae 0x58da53
mov esi, dword [esp + 0x6c]
jmp 0x58db2a
mov dword [esp + 0xc0], edx
mov esi, dword [esp + 0x58]
mov eax, dword [esi + 0x6014f0]
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x78]
mul ecx
mov dword [esp + 0x60], edx
mov esi, dword [esi + 0x6014f4]
mov eax, esi
mul ecx
mov dword [esp + 0x9c], edx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x5c]
mul ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x68], eax
mov dword [esp + 0xb4], esi
mov eax, esi
mov esi, dword [esp + 0x9c]
mul ecx
mov ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x60]
adc esi, 0
add ecx, dword [esp + 0x68]
mov ecx, dword [esp + 0x58]
adc ecx, 0
add esi, eax
adc edx, 0
add esi, ecx
adc edx, 0
mov eax, esi
add eax, dword [esp + 0x7c]
mov dword [esp + 0x58], edx
mov ecx, edx
adc ecx, dword [esp + 0x64]
mov dword [esp + 0x60], eax
mov edx, eax
add edx, 1
mov eax, ecx
adc eax, 0
cmp edx, 2
sbb eax, 0
jb 0x58f0f1
mov edx, dword [esp + 0x60]
cmp edx, dword [esp + 0x7c]
mov eax, ecx
sbb eax, dword [esp + 0x64]
setb al
cmp edx, esi
sbb ecx, dword [esp + 0x58]
setb cl
or cl, al
movzx eax, cl
mov esi, dword [esp + 0x6c]
add esi, eax
mov edx, dword [esp + 0xc0]
adc edx, 0
mov edi, dword [esp + 0x18]
shr edi, 0x10
mov ecx, edx
not ecx
shr ecx, 0x1f
shld edx, esi, cl
shl esi, cl
mov eax, edx
mov edx, esi
and edx, 0x400
add edx, esi
adc eax, 0
sub edi, dword [esp + 0x34]
sub edi, ecx
cmp edx, 0x400
mov esi, eax
sbb eax, 0
setb cl
adc edi, 0
mov dword [esp + 0xc], 0
mov eax, 0
test cl, cl
jne 0x58db7e
mov eax, esi
shr eax, 0xb
and eax, 0xfffff
test cl, cl
jne 0x58db8a
shld esi, edx, 0x15
mov dword [esp + 0xc], esi
xor ecx, ecx
cmp bl, 0x2d
sete cl
shl ecx, 0x1f
or eax, ecx
shl edi, 0x14
add edi, 0x47e00000
or eax, edi
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0x14
mov edx, dword [esp + 0xc]
mov dword [ecx + 0x18], edx
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], eax
jmp 0x58d046
lea ebx, [edi + 1]
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x3c], 0
jne 0x58fa68
xor edi, edi
mov eax, dword [esp + 0xc]
mov dword [esp + 0x30], eax
jmp 0x59a41a
mov eax, dword [esp + 0xc]
mov esi, eax
shr esi, 1
add esi, eax
cmp esi, 0xffffffe
ja 0x589be9
mov ebx, edx
mov dword [esp + 0x30], esi
shl esi, 4
shl eax, 4
push esi
push eax
push ecx
push dword [esp + 0x8c]
mov edi, ecx
call dword [esp + 0xa0]
add esp, 0x10
test eax, eax
je 0x589be9
mov edx, ebx
sub edx, edi
add edx, eax
mov ebx, dword [esp + 0x40]
sub ebx, edi
add ebx, eax
mov dword [esp + 0x40], ebx
lea ecx, [esi + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x84], ecx
mov edi, dword [esp + 0x10]
mov dword [esp + 0x24], edx
mov dword [esp + 0x14], eax
jmp 0x58ca2f
mov dword [esp + 0x54], str.no_digit_after_decimal_point
mov dword [esp + 0x10], ecx
jmp 0x590a8f
mov dword [esp + 0xc], 0
mov ebx, esi
cmp al, 0x5c
jne 0x58e1a7
mov al, byte [esi + 1]
add al, 0xde
cmp al, 0x53
ja case.0x58e887.221
movzx eax, al
jmp dword [eax*4 + 0x604220]
mov byte [ebx], 0x22
jmp 0x58dd85
mov byte [ebx], 0xa
jmp 0x58dd85
mov byte [ebx], 0x2f
jmp 0x58dd85
mov byte [ebx], 8
jmp 0x58dd85
movzx eax, byte [esi + 2]
movzx ecx, byte [eax + 0x5ffd78]
movzx eax, byte [esi + 3]
movzx edx, byte [eax + 0x5ffd78]
movzx eax, byte [esi + 4]
movzx eax, byte [eax + 0x5ffd78]
mov dword [esp + 4], eax
movzx eax, byte [esi + 5]
movzx eax, byte [eax + 0x5ffd78]
shl ecx, 8
add ecx, dword [esp + 4]
shl edx, 8
or edx, eax
mov eax, ecx
shl eax, 4
or eax, edx
mov word [esp + 0xc8], ax
or edx, ecx
test edx, 0xf0f0
jne 0x5909c2
lea ecx, [esi + 6]
mov dword [esp + 4], ecx
test dword [ebp + 0x10], 0x40000000
jne 0x58e153
mov ecx, eax
and ecx, 0xf800
cmp ecx, 0xd800
je 0x58e1d2
movzx ecx, ax
cmp ecx, 0x800
jb 0x58e178
shr ecx, 0xc
or cl, 0xe0
mov byte [ebx], cl
movzx eax, word [esp + 0xc8]
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [ebx + 1], al
mov al, byte [esp + 0xc8]
and al, 0x3f
or al, 0x80
mov byte [ebx + 2], al
add ebx, 3
jmp 0x58dd8f
mov byte [ebx], 0x5c
jmp 0x58dd85
mov byte [ebx], 0xd
jmp 0x58dd85
mov byte [ebx], 0xc
jmp 0x58dd85
mov byte [ebx], 9
add ebx, 1
add esi, 2
mov dword [esp + 4], esi
mov edx, dword [esp + 4]
jmp 0x58dd9d
mov byte [ebx], al
add ebx, 1
add edx, 1
movzx eax, byte [edx]
test byte [eax + 0x5ffc78], 0xc
jne 0x58e009
movzx eax, byte [edx + 1]
test byte [eax + 0x5ffc78], 0xc
jne 0x58e0da
movzx eax, byte [edx + 2]
test byte [eax + 0x5ffc78], 0xc
jne 0x58ded5
movzx eax, byte [edx + 3]
test byte [eax + 0x5ffc78], 0xc
jne 0x58dee6
movzx eax, byte [edx + 4]
test byte [eax + 0x5ffc78], 0xc
jne 0x58def5
movzx eax, byte [edx + 5]
test byte [eax + 0x5ffc78], 0xc
jne 0x58df04
movzx eax, byte [edx + 6]
test byte [eax + 0x5ffc78], 0xc
jne 0x58df1b
movzx eax, byte [edx + 7]
test byte [eax + 0x5ffc78], 0xc
jne 0x58df32
movzx eax, byte [edx + 8]
test byte [eax + 0x5ffc78], 0xc
jne 0x58df47
movzx eax, byte [edx + 9]
test byte [eax + 0x5ffc78], 0xc
jne 0x58df5c
movzx eax, byte [edx + 0xa]
test byte [eax + 0x5ffc78], 0xc
jne 0x58df79
movzx eax, byte [edx + 0xb]
test byte [eax + 0x5ffc78], 0xc
jne 0x58df93
movzx eax, byte [edx + 0xc]
test byte [eax + 0x5ffc78], 0xc
jne 0x58dfab
movzx eax, byte [edx + 0xd]
test byte [eax + 0x5ffc78], 0xc
jne 0x58dfc3
movzx eax, byte [edx + 0xe]
test byte [eax + 0x5ffc78], 0xc
jne 0x58dfe3
movzx eax, byte [edx + 0xf]
test byte [eax + 0x5ffc78], 0xc
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov esi, dword [edx + 0xc]
mov dword [esp + 4], esi
mov esi, dword [edx + 8]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], esi
mov eax, dword [esp + 4]
mov dword [ebx + 0xc], eax
jne 0x58e003
add edx, 0x10
add ebx, 0x10
jmp 0x58dd9d
movzx eax, word [edx]
add edx, 2
mov word [ebx], ax
add ebx, 2
jmp 0x58e009
mov eax, dword [edx]
add edx, 3
mov dword [ebx], eax
add ebx, 3
jmp 0x58e009
mov eax, dword [edx]
add edx, 4
mov dword [ebx], eax
add ebx, 4
jmp 0x58e009
lea esi, [edx + 5]
mov eax, dword [edx]
mov dword [ebx], eax
movzx eax, word [edx + 4]
mov word [ebx + 4], ax
add ebx, 5
jmp 0x58e00b
lea esi, [edx + 6]
mov eax, dword [edx]
mov dword [ebx], eax
movzx eax, word [edx + 4]
mov word [ebx + 4], ax
add ebx, 6
jmp 0x58e00b
lea esi, [edx + 7]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
add ebx, 7
jmp 0x58e00b
lea esi, [edx + 8]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
add ebx, 8
jmp 0x58e00b
lea esi, [edx + 9]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
movzx eax, word [edx + 8]
mov word [ebx + 8], ax
add ebx, 9
jmp 0x58e00b
lea esi, [edx + 0xa]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
movzx eax, word [edx + 8]
mov word [ebx + 8], ax
add ebx, 0xa
jmp 0x58e00b
lea esi, [edx + 0xb]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov eax, dword [edx + 8]
mov dword [ebx + 8], eax
add ebx, 0xb
jmp 0x58e00b
lea esi, [edx + 0xc]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov eax, dword [edx + 8]
mov dword [ebx + 8], eax
add ebx, 0xc
jmp 0x58e00b
lea esi, [edx + 0xd]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov eax, dword [edx + 8]
mov dword [ebx + 8], eax
movzx eax, word [edx + 0xc]
mov word [ebx + 0xc], ax
add ebx, 0xd
jmp 0x58e00b
lea esi, [edx + 0xe]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov eax, dword [edx + 8]
mov dword [ebx + 8], eax
movzx eax, word [edx + 0xc]
mov word [ebx + 0xc], ax
add ebx, 0xe
jmp 0x58e00b
add edx, 0xf
add ebx, 0xf
mov esi, edx
mov al, byte [esi]
test al, al
jns 0x58dc77
test dword [ebp + 0x10], 0x40000000
jne 0x58e0eb
mov eax, dword [esi]
mov ecx, eax
and ecx, 0xc0c0f0
mov edx, esi
cmp ecx, 0x8080e0
jne 0x58e063
mov ecx, eax
and ecx, 0x200f
je 0x58e063
cmp ecx, 0x200d
je 0x58e063
mov dword [ebx], eax
add ebx, 3
mov eax, dword [edx + 3]
add edx, 3
mov ecx, eax
and ecx, 0xc0c0f0
cmp ecx, 0x8080e0
je 0x58e036
test al, al
jns 0x58dd9d
jmp 0x58e079
mov word [ebx], ax
add ebx, 2
mov eax, dword [edx + 2]
add edx, 2
mov ecx, eax
and ecx, 0xc0e0
cmp ecx, 0x80c0
jne 0x58e09d
mov ecx, eax
and ecx, 0x1e
jne 0x58e06d
jmp 0x58e09d
mov dword [ebx], eax
add ebx, 4
mov eax, dword [edx + 4]
add edx, 4
mov ecx, eax
and ecx, 0xc0c0c0f8
cmp ecx, 0x808080f0
jne 0x58e0c5
mov ecx, eax
and ecx, 0x3007
je 0x58e0c5
test al, 4
je 0x58e092
mov ecx, eax
and ecx, 0x3003
je 0x58e092
cmp esi, edx
jne 0x58dd9d
mov eax, dword [ebp + 0x10]
test al, 0x40
je 0x5909e6
mov edx, esi
movzx eax, word [edx]
mov word [ebx], ax
add edx, 1
add ebx, 1
jmp 0x58e009
movzx eax, word [esi]
movzx ecx, al
cmp ecx, 0x81
jb 0x58e13c
movzx ecx, cx
cmp ecx, 0xff
je 0x58e13c
add esi, 1
movzx ecx, ax
cmp ecx, 0xff
jbe 0x58eee5
mov word [ebx], ax
add ebx, 2
movzx eax, word [esi + 1]
movzx ecx, al
add esi, 2
cmp ecx, 0x81
jb 0x58e139
movzx ecx, cx
cmp ecx, 0xff
jne 0x58e107
add esi, 0xffffffff
mov edx, esi
cmp al, 0xff
je 0x58dd95
cmp al, 0x80
je 0x58dd95
jmp 0x58dd9d
push 0
push 0
push 2
push ebx
push 1
lea eax, [esp + 0xdc]
push eax
push 0
push 0x3a8
call dword [sym.imp.kernel32.dll_WideCharToMultiByte_1]
add ebx, eax
jmp 0x58dd8f
cmp ecx, 0x80
jb 0x58e19d
shr eax, 6
or al, 0xc0
mov byte [ebx], al
mov al, byte [esp + 0xc8]
and al, 0x3f
or al, 0x80
mov byte [ebx + 1], al
add ebx, 2
jmp 0x58dd8f
mov byte [ebx], al
add ebx, 1
jmp 0x58dd8f
cmp al, 0x22
je 0x590468
mov ecx, dword [ebp + 0x10]
test cl, 0x40
je 0x5909b0
cmp esi, dword [esp + 0x70]
jae 0x59099e
add esi, 1
mov byte [ebx], al
add ebx, 1
jmp 0x58dd8b
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x5909d4
mov ecx, dword [esp + 4]
movzx ecx, word [ecx]
cmp ecx, 0x755c
jne 0x5909f8
movzx ecx, byte [esi + 8]
movzx edx, byte [ecx + 0x5ffd78]
movzx ecx, byte [esi + 9]
movzx ecx, byte [ecx + 0x5ffd78]
mov dword [esp + 8], ecx
movzx ecx, byte [esi + 0xa]
movzx ecx, byte [ecx + 0x5ffd78]
mov dword [esp + 0x1c], ecx
movzx ecx, byte [esi + 0xb]
movzx ecx, byte [ecx + 0x5ffd78]
mov dword [esp + 0x34], ecx
shl edx, 8
add edx, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
shl ecx, 8
add ecx, dword [esp + 0x34]
mov dword [esp + 8], ecx
or ecx, edx
test ecx, 0xf0f0
jne 0x590a0e
shl edx, 4
movzx ecx, dx
mov edx, dword [esp + 8]
or edx, ecx
mov dword [esp + 8], edx
mov ecx, edx
and ecx, 0xfc00
cmp ecx, 0xdc00
jne 0x590a24
movzx eax, ax
shl eax, 0xa
add eax, 0xfca00000
mov ecx, dword [esp + 8]
add ecx, 0xffff2400
or ecx, eax
add ecx, 0x10000
mov eax, ecx
shr eax, 0x12
or al, 0xf0
mov byte [ebx], al
mov eax, ecx
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [ebx + 1], al
mov eax, ecx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [ebx + 2], al
and cl, 0x3f
or cl, 0x80
mov byte [ebx + 3], cl
add ebx, 4
add esi, 0xc
jmp 0x58dd8b
mov dword [esp + 0x54], str.no_digit_after_exponent_sign
mov dword [esp + 0x10], eax
jmp 0x590a8f
cmp al, 0x30
jne 0x590472
mov eax, dword [esp + 0xc]
movzx ecx, byte [eax + 1]
add eax, 1
mov dword [esp + 0xc], eax
mov al, byte [ecx + 0x5ffe78]
test al, 0x33
jne 0x59048c
xor eax, eax
cmp bl, 0x2d
sete al
lea eax, [eax*8 + 4]
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x18], 0
mov eax, dword [esp + 0xc]
jmp 0x58dbc2
mov dword [esp + 8], eax
mov ecx, dword [esp + 0xc]
mov eax, ecx
add ecx, 1
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
jne 0x5904ca
mov edx, dword [esp + 8]
mov ecx, edx
sar ecx, 0x1f
xor esi, esi
neg edx
sbb esi, ecx
xor eax, eax
mov edi, dword [esp + 0x24]
mov dword [edi + 0x14], 0
cmp bl, 0x2d
sete al
lea eax, [eax*8 + 4]
mov dword [edi + 0x10], eax
je 0x58e387
mov esi, ecx
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x24]
mov dword [eax + 0x18], edx
mov dword [eax + 0x1c], esi
jmp 0x58dbbe
mov dword [esp + 8], eax
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xc]
mov eax, ecx
add ecx, 2
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58e750
cmp dl, 0x2e
jne 0x590d88
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
jmp 0x59051a
mov dword [esp + 8], eax
mov ecx, dword [esp + 0xc]
mov eax, ecx
add ecx, 3
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58e750
cmp dl, 0x2e
jne 0x590d88
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
jmp 0x590552
mov dword [esp + 8], eax
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xc]
mov eax, ecx
add ecx, 4
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58e750
cmp dl, 0x2e
jne 0x590d88
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
jmp 0x59058a
mov dword [esp + 8], eax
mov ecx, dword [esp + 0xc]
mov eax, ecx
add ecx, 5
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58e750
cmp dl, 0x2e
jne 0x590d88
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
jmp 0x5905c2
mov dword [esp + 8], eax
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xc]
mov eax, ecx
add ecx, 6
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58e750
cmp dl, 0x2e
jne 0x590d88
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
jmp 0x5905fa
mov dword [esp + 8], eax
mov ecx, dword [esp + 0xc]
mov eax, ecx
add ecx, 7
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58e750
cmp dl, 0x2e
jne 0x590d88
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
jmp 0x590632
mov dword [esp + 8], eax
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xc]
mov eax, ecx
add ecx, 8
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58e750
cmp dl, 0x2e
jne 0x590d88
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
jmp 0x59066a
mov dword [esp + 8], eax
mov ecx, dword [esp + 0xc]
mov eax, ecx
add ecx, 9
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58e750
cmp dl, 0x2e
jne 0x590d88
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
jmp 0x5906a2
mov dword [esp + 8], eax
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xc]
mov eax, ecx
add ecx, 0xa
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58e750
cmp dl, 0x2e
jne 0x590d88
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
jmp 0x5906da
mov dword [esp + 8], eax
mov ecx, dword [esp + 0xc]
mov eax, ecx
add ecx, 0xb
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58e750
cmp dl, 0x2e
jne 0x590d88
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
jmp 0x590712
mov dword [esp + 8], eax
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xc]
mov eax, ecx
add ecx, 0xc
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58e750
cmp dl, 0x2e
jne 0x590d88
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
jmp 0x59074a
mov dword [esp + 8], eax
mov ecx, dword [esp + 0xc]
mov eax, ecx
add ecx, 0xd
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58e750
cmp dl, 0x2e
jne 0x590d88
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
jmp 0x590782
mov dword [esp + 8], eax
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xc]
mov eax, ecx
add ecx, 0xe
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58e750
cmp dl, 0x2e
jne 0x590d88
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
jmp 0x5907ba
mov dword [esp + 8], eax
mov ecx, dword [esp + 0xc]
mov eax, ecx
add ecx, 0xf
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58e750
cmp dl, 0x2e
jne 0x590d88
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
jmp 0x5907f2
mov dword [esp + 8], eax
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xc]
mov eax, ecx
add ecx, 0x10
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58e750
cmp dl, 0x2e
jne 0x590d88
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
jmp 0x59082a
mov dword [esp + 8], eax
mov ecx, dword [esp + 0xc]
mov eax, ecx
add ecx, 0x11
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x58e750
cmp dl, 0x2e
jne 0x590d88
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
jmp 0x590862
mov dword [esp + 8], eax
mov dword [esp + 0x28], esi
mov ecx, dword [esp + 0xc]
mov eax, ecx
add ecx, 0x12
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
jne 0x590964
xor eax, eax
mov ecx, dword [esp + 8]
neg ecx
sbb eax, dword [esp + 0x28]
xor edx, edx
mov esi, dword [esp + 0x24]
mov dword [esi + 0x14], 0
cmp bl, 0x2d
sete dl
lea edx, [edx*8 + 4]
mov dword [esi + 0x10], edx
je 0x58e783
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x24]
mov dword [edx + 0x18], ecx
mov dword [edx + 0x1c], eax
jmp 0x58dbbe
mov ecx, dword [ebp + 0x10]
test cl, 0x10
je 0x5977dc
or al, 0x20
cmp al, 0x6e
jne 0x5977dc
mov al, byte [edi + 1]
or al, 0x20
cmp al, 0x61
jne 0x5977dc
mov al, byte [edi + 2]
or al, 0x20
cmp al, 0x6e
je 0x58efe8
jmp 0x5977dc
mov al, byte [edi + 1]
mov ecx, eax
or cl, 0x20
cmp cl, 0x6e
jne 0x58efc6
mov cl, byte [edi + 2]
or cl, 0x20
cmp cl, 0x66
jne 0x58efc6
lea eax, [edi + 3]
mov cl, byte [edi + 3]
or cl, 0x20
cmp cl, 0x69
jne 0x58e824
mov cl, byte [edi + 4]
or cl, 0x20
cmp cl, 0x6e
jne 0x58e824
mov cl, byte [edi + 5]
or cl, 0x20
cmp cl, 0x69
jne 0x58e824
mov cl, byte [edi + 6]
or cl, 0x20
cmp cl, 0x74
jne 0x58e824
mov cl, byte [edi + 7]
or cl, 0x20
cmp cl, 0x79
jne 0x58e824
lea eax, [edi + 8]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x44], 0
je 0x58f50e
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx]
test ecx, ecx
je 0x58e840
mov byte [ecx], 0
mov ecx, dword [esp + 0x44]
mov dword [ecx], eax
sub eax, edi
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
shl eax, 8
or eax, 1
mov esi, dword [esp + 0x24]
mov dword [esi + 0x14], ecx
mov dword [esi + 0x10], eax
mov dword [esi + 0x18], edi
mov ecx, dword [esp + 0x14]
jmp 0x59a2a7
mov ebx, esi
cmp al, 0x5c
jne 0x58edc1
mov al, byte [esi + 1]
add al, 0xde
cmp al, 0x53
ja case.0x58e887.221
movzx eax, al
jmp dword [eax*4 + 0x60448c]
mov byte [ebx], 0x22
jmp 0x58e97d
mov byte [ebx], 0xa
jmp 0x58e97d
mov byte [ebx], 0x2f
jmp 0x58e97d
mov byte [ebx], 8
jmp 0x58e97d
movzx eax, byte [esi + 2]
movzx ecx, byte [eax + 0x5ffd78]
movzx eax, byte [esi + 3]
movzx edx, byte [eax + 0x5ffd78]
movzx eax, byte [esi + 4]
movzx eax, byte [eax + 0x5ffd78]
mov dword [esp + 0x28], eax
movzx eax, byte [esi + 5]
movzx eax, byte [eax + 0x5ffd78]
shl ecx, 8
add ecx, dword [esp + 0x28]
shl edx, 8
or edx, eax
mov eax, ecx
shl eax, 4
or eax, edx
mov word [esp + 0xc8], ax
or edx, ecx
test edx, 0xf0f0
jne 0x5909c2
lea ecx, [esi + 6]
mov dword [esp + 0x28], ecx
test dword [ebp + 0x10], 0x40000000
jne 0x58ed6d
mov ecx, eax
and ecx, 0xf800
cmp ecx, 0xd800
je 0x58edec
movzx ecx, ax
cmp ecx, 0x800
jb 0x58ed92
shr ecx, 0xc
or cl, 0xe0
mov byte [ebx], cl
movzx eax, word [esp + 0xc8]
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [ebx + 1], al
mov al, byte [esp + 0xc8]
and al, 0x3f
or al, 0x80
mov byte [ebx + 2], al
add ebx, 3
jmp 0x58e987
mov byte [ebx], 0x5c
jmp 0x58e97d
mov byte [ebx], 0xd
jmp 0x58e97d
mov byte [ebx], 0xc
jmp 0x58e97d
mov byte [ebx], 9
add ebx, 1
add esi, 2
mov dword [esp + 0x28], esi
mov edx, dword [esp + 0x28]
jmp 0x58e995
mov byte [ebx], al
add ebx, 1
add edx, 1
movzx eax, byte [edx]
test byte [eax + 0x5ffc78], 0xc
jne 0x58ec01
movzx eax, byte [edx + 1]
test byte [eax + 0x5ffc78], 0xc
jne 0x58ecf4
movzx eax, byte [edx + 2]
test byte [eax + 0x5ffc78], 0xc
jne 0x58eacd
movzx eax, byte [edx + 3]
test byte [eax + 0x5ffc78], 0xc
jne 0x58eade
movzx eax, byte [edx + 4]
test byte [eax + 0x5ffc78], 0xc
jne 0x58eaed
movzx eax, byte [edx + 5]
test byte [eax + 0x5ffc78], 0xc
jne 0x58eafc
movzx eax, byte [edx + 6]
test byte [eax + 0x5ffc78], 0xc
jne 0x58eb13
movzx eax, byte [edx + 7]
test byte [eax + 0x5ffc78], 0xc
jne 0x58eb2a
movzx eax, byte [edx + 8]
test byte [eax + 0x5ffc78], 0xc
jne 0x58eb3f
movzx eax, byte [edx + 9]
test byte [eax + 0x5ffc78], 0xc
jne 0x58eb54
movzx eax, byte [edx + 0xa]
test byte [eax + 0x5ffc78], 0xc
jne 0x58eb71
movzx eax, byte [edx + 0xb]
test byte [eax + 0x5ffc78], 0xc
jne 0x58eb8b
movzx eax, byte [edx + 0xc]
test byte [eax + 0x5ffc78], 0xc
jne 0x58eba3
movzx eax, byte [edx + 0xd]
test byte [eax + 0x5ffc78], 0xc
jne 0x58ebbb
movzx eax, byte [edx + 0xe]
test byte [eax + 0x5ffc78], 0xc
jne 0x58ebdb
movzx eax, byte [edx + 0xf]
test byte [eax + 0x5ffc78], 0xc
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov esi, dword [edx + 0xc]
mov dword [esp + 0x28], esi
mov esi, dword [edx + 8]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], esi
mov eax, dword [esp + 0x28]
mov dword [ebx + 0xc], eax
jne 0x58ebfb
add edx, 0x10
add ebx, 0x10
jmp 0x58e995
movzx eax, word [edx]
add edx, 2
mov word [ebx], ax
add ebx, 2
jmp 0x58ec01
mov eax, dword [edx]
add edx, 3
mov dword [ebx], eax
add ebx, 3
jmp 0x58ec01
mov eax, dword [edx]
add edx, 4
mov dword [ebx], eax
add ebx, 4
jmp 0x58ec01
lea esi, [edx + 5]
mov eax, dword [edx]
mov dword [ebx], eax
movzx eax, word [edx + 4]
mov word [ebx + 4], ax
add ebx, 5
jmp 0x58ec03
lea esi, [edx + 6]
mov eax, dword [edx]
mov dword [ebx], eax
movzx eax, word [edx + 4]
mov word [ebx + 4], ax
add ebx, 6
jmp 0x58ec03
lea esi, [edx + 7]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
add ebx, 7
jmp 0x58ec03
lea esi, [edx + 8]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
add ebx, 8
jmp 0x58ec03
lea esi, [edx + 9]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
movzx eax, word [edx + 8]
mov word [ebx + 8], ax
add ebx, 9
jmp 0x58ec03
lea esi, [edx + 0xa]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
movzx eax, word [edx + 8]
mov word [ebx + 8], ax
add ebx, 0xa
jmp 0x58ec03
lea esi, [edx + 0xb]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov eax, dword [edx + 8]
mov dword [ebx + 8], eax
add ebx, 0xb
jmp 0x58ec03
lea esi, [edx + 0xc]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov eax, dword [edx + 8]
mov dword [ebx + 8], eax
add ebx, 0xc
jmp 0x58ec03
lea esi, [edx + 0xd]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov eax, dword [edx + 8]
mov dword [ebx + 8], eax
movzx eax, word [edx + 0xc]
mov word [ebx + 0xc], ax
add ebx, 0xd
jmp 0x58ec03
lea esi, [edx + 0xe]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov eax, dword [edx + 8]
mov dword [ebx + 8], eax
movzx eax, word [edx + 0xc]
mov word [ebx + 0xc], ax
add ebx, 0xe
jmp 0x58ec03
add edx, 0xf
add ebx, 0xf
mov esi, edx
mov al, byte [esi]
test al, al
jns 0x58e86f
test dword [ebp + 0x10], 0x40000000
jne 0x58ed05
mov eax, dword [esi]
mov ecx, eax
and ecx, 0xc0c0f0
mov dword [esp + 0x28], esi
cmp ecx, 0x8080e0
jne 0x58ec65
mov ecx, eax
and ecx, 0x200f
je 0x58ec65
cmp ecx, 0x200d
je 0x58ec65
mov dword [ebx], eax
add ebx, 3
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 3]
add ecx, 3
mov dword [esp + 0x28], ecx
mov ecx, eax
and ecx, 0xc0c0f0
cmp ecx, 0x8080e0
je 0x58ec30
test al, al
mov edx, dword [esp + 0x28]
jns 0x58e995
jmp 0x58ec87
mov word [ebx], ax
add ebx, 2
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 2]
add ecx, 2
mov dword [esp + 0x28], ecx
mov ecx, eax
and ecx, 0xc0e0
cmp ecx, 0x80c0
jne 0x58ecb3
mov ecx, eax
and ecx, 0x1e
jne 0x58ec73
jmp 0x58ecb3
mov dword [ebx], eax
add ebx, 4
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 4]
add ecx, 4
mov dword [esp + 0x28], ecx
mov ecx, eax
and ecx, 0xc0c0c0f8
cmp ecx, 0x808080f0
jne 0x58ecdb
mov ecx, eax
and ecx, 0x3007
je 0x58ecdb
test al, 4
je 0x58eca0
mov ecx, eax
and ecx, 0x3003
je 0x58eca0
mov edx, dword [esp + 0x28]
cmp esi, edx
jne 0x58e995
mov eax, dword [ebp + 0x10]
test al, 0x40
je 0x5909e6
mov edx, esi
movzx eax, word [edx]
mov word [ebx], ax
add edx, 1
add ebx, 1
jmp 0x58ec01
movzx eax, word [esi]
movzx ecx, al
cmp ecx, 0x81
jb 0x58ed56
movzx ecx, cx
cmp ecx, 0xff
je 0x58ed56
add esi, 1
movzx ecx, ax
cmp ecx, 0xff
jbe 0x58eee5
mov word [ebx], ax
add ebx, 2
movzx eax, word [esi + 1]
movzx ecx, al
add esi, 2
cmp ecx, 0x81
jb 0x58ed53
movzx ecx, cx
cmp ecx, 0xff
jne 0x58ed21
add esi, 0xffffffff
cmp al, 0xff
mov edx, esi
je 0x58e98d
cmp al, 0x80
je 0x58e98d
jmp 0x58e995
push 0
push 0
push 2
push ebx
push 1
lea eax, [esp + 0xdc]
push eax
push 0
push 0x3a8
call dword [sym.imp.kernel32.dll_WideCharToMultiByte_1]
add ebx, eax
jmp 0x58e987
cmp ecx, 0x80
jb 0x58edb7
shr eax, 6
or al, 0xc0
mov byte [ebx], al
mov al, byte [esp + 0xc8]
and al, 0x3f
or al, 0x80
mov byte [ebx + 1], al
add ebx, 2
jmp 0x58e987
mov byte [ebx], al
add ebx, 1
jmp 0x58e987
cmp al, 0x22
je 0x59097e
mov ecx, dword [ebp + 0x10]
test cl, 0x40
je 0x5909b0
cmp esi, dword [esp + 0x70]
jae 0x59099e
add esi, 1
mov byte [ebx], al
add ebx, 1
jmp 0x58e983
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x5909d4
mov ecx, dword [esp + 0x28]
movzx ecx, word [ecx]
cmp ecx, 0x755c
jne 0x590a3a
movzx ecx, byte [esi + 8]
movzx edx, byte [ecx + 0x5ffd78]
movzx ecx, byte [esi + 9]
movzx ecx, byte [ecx + 0x5ffd78]
mov dword [esp + 8], ecx
movzx ecx, byte [esi + 0xa]
movzx ecx, byte [ecx + 0x5ffd78]
mov dword [esp + 0x1c], ecx
movzx ecx, byte [esi + 0xb]
movzx ecx, byte [ecx + 0x5ffd78]
mov dword [esp + 0x34], ecx
shl edx, 8
add edx, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
shl ecx, 8
add ecx, dword [esp + 0x34]
mov dword [esp + 8], ecx
or ecx, edx
test ecx, 0xf0f0
jne 0x590a50
shl edx, 4
movzx ecx, dx
mov edx, dword [esp + 8]
or edx, ecx
mov dword [esp + 8], edx
mov ecx, edx
and ecx, 0xfc00
cmp ecx, 0xdc00
jne 0x590a66
movzx eax, ax
shl eax, 0xa
add eax, 0xfca00000
mov ecx, dword [esp + 8]
add ecx, 0xffff2400
or ecx, eax
add ecx, 0x10000
mov eax, ecx
shr eax, 0x12
or al, 0xf0
mov byte [ebx], al
mov eax, ecx
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [ebx + 1], al
mov eax, ecx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [ebx + 2], al
and cl, 0x3f
or cl, 0x80
mov byte [ebx + 3], cl
add ebx, 4
add esi, 0xc
jmp 0x58e983
mov dword [esp + 0x54], str.unexpected_null_character_in_string
mov edi, str.unexpected_null_character_in_string
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x4c]
mov edx, esi
push dword [ebp + 0x10]
push 0xa
push dword [esp + 0x78]
call fcn.005a86b0
add esp, 0xc
test al, al
jne 0x58ef15
mov dword [esp + 0x70], esi
mov ecx, str.unexpected_end_of_data
jne 0x596ff5
mov ecx, edi
jmp 0x596ff5
mov edx, dword [esp + 0x20]
mov eax, dword [ebp + 0x10]
test al, al
js 0x590988
mov eax, dword [ebp + 0x10]
test al, 0x10
je 0x58a6ce
mov eax, dword [esp + 0x24]
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0x14
mov eax, 0xfff00000
cmp bl, 0x2d
je 0x58ef62
mov eax, 0x7ff00000
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x1c], eax
mov dword [ecx + 0x18], 0
mov dword [esp + 0x10], edx
jmp 0x58d046
mov eax, esi
mov esi, edx
test eax, eax
jne 0x58f07c
bsr eax, dword [esp + 8]
xor eax, 0x1f
add eax, 0x20
jmp 0x58f084
lea eax, [esp + 0x54]
lea ecx, [esp + 0x10]
mov edx, dword [esp + 0x44]
push eax
push dword [esp + 8]
push dword [ebp + 0x10]
call fcn.005a8990
mov edx, dword [esp + 0x10]
add esp, 0xc
test al, al
mov ecx, dword [esp + 0x14]
jne 0x59a2a7
jmp 0x590a93
mov ecx, esi
cmp cl, 0x4e
jne case.0x58877b.182
or al, 0x20
cmp al, 0x61
jne case.0x58877b.182
mov al, byte [edi + 2]
or al, 0x20
cmp al, 0x6e
jne case.0x58877b.182
lea eax, [edi + 3]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x44], 0
je 0x58f05e
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx]
test ecx, ecx
je 0x58f003
mov byte [ecx], 0
mov ecx, dword [esp + 0x44]
mov dword [ecx], eax
mov eax, dword [esp + 0x24]
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0x301
mov dword [eax + 0x18], edi
mov ecx, dword [esp + 0x14]
jmp 0x59a2a7
cmp byte [esp + 0x38], 0x2d
jne 0x58f492
xor eax, eax
cmp bl, 0x2d
sete al
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0x14
shl eax, 0x1f
mov dword [ecx + 0x1c], eax
mov dword [ecx + 0x18], 0
jmp 0x58dbbe
mov eax, dword [esp + 0x24]
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0x14
mov dword [eax + 0x1c], 0x7ff80000
jmp 0x58f527
bsr eax, dword [esp + 0x28]
xor eax, 0x1f
mov dword [esp + 0x34], eax
mov dword [esp + 0x48], 0
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 8]
shld edx, eax, cl
mov dword [esp + 0x5c], edx
shl eax, cl
mov dword [esp + 0x78], eax
test cl, 0x20
je 0x58f0be
mov eax, dword [esp + 0x78]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x78], 0
imul eax, esi, 0x3526a
shl esi, 4
add eax, 0xffc10000
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x6014ec]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x6014e8]
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x6014f4]
mov dword [esp + 0xb4], eax
xor esi, esi
xor eax, eax
cmp dword [esp + 0x50], 0
setne al
shl eax, 2
mov dword [esp + 0x94], 0
xor edx, edx
mov ecx, dword [esp + 0x34]
shld edx, eax, cl
shl eax, cl
test cl, 0x20
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x60], esi
jne 0x58f12d
mov dword [esp + 0x58], eax
mov dword [esp + 0x6c], edx
jmp 0x58f139
mov dword [esp + 0x6c], eax
mov dword [esp + 0x58], 0
sar ecx, 0x10
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xb4]
shr ecx, 0x1f
add ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x1c]
adc eax, 0
mov dword [esp + 0x1c], eax
mov eax, ecx
imul eax, dword [esp + 0x48]
mov dword [esp + 0x38], eax
mov eax, ecx
mov esi, dword [esp + 0x78]
mul esi
add edx, dword [esp + 0x38]
mov dword [esp + 0x68], edx
mov eax, dword [esp + 0x1c]
mul esi
mov esi, eax
mov dword [esp + 0x78], edx
mov eax, dword [esp + 0x48]
imul eax, dword [esp + 0x1c]
mov dword [esp + 0x48], eax
mov dword [esp + 0x38], ecx
mov eax, ecx
mul dword [esp + 0x5c]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x64], edx
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x38]
imul eax, ecx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x1c]
mul dword [esp + 0x5c]
mov dword [esp + 0x5c], eax
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x60], ecx
add esi, dword [esp + 0x68]
mov eax, dword [esp + 0x78]
adc eax, dword [esp + 0x48]
add esi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x38]
adc dword [esp + 0x64], ecx
add eax, dword [esp + 0x5c]
adc edx, dword [esp + 0x60]
add eax, dword [esp + 0x64]
adc edx, 0
shr esi, 0x1f
add esi, eax
mov dword [esp + 0x1c], esi
adc edx, 0
mov eax, dword [esp + 0x58]
mov ecx, eax
mov esi, dword [esp + 0x6c]
or ecx, esi
mov ecx, 0
sete cl
sub eax, ecx
sbb esi, 0
add eax, 9
mov dword [esp + 0x58], eax
adc esi, 0
test edx, edx
mov eax, esi
mov dword [esp + 0x6c], esi
jne 0x58f232
mov esi, dword [esp + 0x1c]
bsr ecx, esi
xor ecx, 0x1f
add ecx, 0x20
jmp 0x58f23c
bsr ecx, edx
xor ecx, 0x1f
mov esi, dword [esp + 0x1c]
shld edx, esi, cl
mov dword [esp + 0x38], edx
shl esi, cl
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x34]
sub eax, ecx
mov dword [esp + 0x18], eax
add eax, 0x40
mov edx, dword [esp + 0x58]
shld dword [esp + 0x6c], edx, cl
shl edx, cl
test cl, 0x20
je 0x58f272
mov dword [esp + 0x38], esi
xor esi, esi
mov dword [esp + 0x6c], edx
xor edx, edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x64], eax
cmp eax, 0xfffffb8f
jl 0x58f291
mov eax, dword [esp + 0x18]
add eax, 0x4b2
mov dword [esp + 0x94], eax
mov eax, 0x35
cmp dword [esp + 0x64], 0xfffffbc2
mov esi, dword [esp + 0x38]
jle 0x58f537
cmp eax, 3
jle 0x58f547
mov ecx, 0x40
sub ecx, eax
mov eax, esi
shr eax, cl
mov dword [esp + 0x68], 0
mov dword [esp + 0x18], 0
test cl, 0x20
jne 0x58f2d5
mov dword [esp + 0x18], eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
shrd eax, esi, cl
mov dword [esp + 0x5c], ecx
test cl, 0x20
jne 0x58f2f1
mov dword [esp + 0x34], eax
mov edx, 0xffffffff
mov eax, 0xffffffff
mov ecx, dword [esp + 0x5c]
shl eax, cl
test cl, 0x20
jne 0x58f30a
mov ecx, eax
jmp 0x58f30e
xor ecx, ecx
mov edx, eax
not edx
not ecx
mov eax, dword [esp + 0x1c]
and eax, ecx
and esi, edx
shld esi, eax, 3
mov dword [esp + 0x38], esi
shl eax, 3
mov ecx, dword [esp + 0x5c]
add cl, 0xff
mov esi, 8
xor edx, edx
shld edx, esi, cl
mov dword [esp + 0x48], edx
shl esi, cl
test cl, 0x20
jne 0x58f34b
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x48]
jmp 0x58f353
mov ecx, esi
xor esi, esi
mov edx, dword [esp + 4]
mov dword [esp + 0x60], esi
add esi, dword [esp + 0x58]
mov dword [esp + 0x48], ecx
adc ecx, dword [esp + 0x6c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x78], esi
cmp eax, esi
mov eax, dword [esp + 0x38]
mov dword [esp + 0x7c], ecx
sbb eax, ecx
setae al
movzx eax, al
mov ecx, dword [esp + 0x34]
add ecx, eax
mov esi, dword [esp + 0x18]
adc esi, 0
mov dword [esp + 0x34], ecx
mov eax, ecx
or eax, esi
je 0x58f589
test esi, esi
mov dword [esp + 0x18], esi
jne 0x58f3af
mov eax, dword [esp + 0x34]
bsr ecx, eax
xor ecx, 0x1f
add ecx, 0x20
jmp 0x58f3b9
bsr ecx, esi
xor ecx, 0x1f
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x64]
add esi, dword [esp + 0x5c]
shld dword [esp + 0x18], eax, cl
shl eax, cl
test cl, 0x20
je 0x58f3d3
mov dword [esp + 0x18], eax
xor eax, eax
sub esi, ecx
cmp esi, 0x3c0
mov ecx, dword [esp + 0x14]
jg 0x58f492
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x18]
shrd dword [esp + 0x34], eax, 0xb
shr eax, 0xb
cmp esi, 0xfffffbc2
jle 0x58f812
shl esi, 0x14
and eax, 0xfffff
add eax, esi
add eax, 0x43e00000
mov dword [esp + 0x68], eax
xor eax, 0x7ff00000
or eax, dword [esp + 0x34]
je 0x58f492
mov eax, dword [esp + 0x60]
sub eax, dword [esp + 0x58]
mov dword [esp + 0x60], eax
mov esi, dword [esp + 0x48]
sbb esi, dword [esp + 0x6c]
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x78]
mov eax, dword [esp + 0x38]
sbb eax, dword [esp + 0x7c]
jae 0x58f458
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x60], eax
sbb esi, dword [esp + 0x38]
jb 0x58f59a
xor eax, eax
cmp bl, 0x2d
sete al
shl eax, 0x1f
mov edi, dword [esp + 0x68]
or edi, eax
mov eax, dword [esp + 0x24]
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0x14
mov esi, dword [esp + 0x34]
mov dword [eax + 0x18], esi
mov dword [eax + 0x1c], edi
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], eax
jmp 0x59a2a7
mov eax, dword [ebp + 0x10]
test al, al
js 0x590b37
mov eax, dword [ebp + 0x10]
test al, 0x10
je 0x58a6ce
mov eax, dword [esp + 0x24]
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0x14
mov eax, 0xfff00000
cmp bl, 0x2d
je 0x58f4c9
mov eax, 0x7ff00000
mov ecx, dword [esp + 0x24]
jmp 0x58f04f
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
test eax, eax
je 0x58f4df
mov byte [eax], 0
mov esi, dword [esp + 0xc]
mov eax, esi
sub eax, edi
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
mov edx, dword [esp + 0x24]
mov dword [edx + 0x14], ecx
shl eax, 8
or eax, 1
mov dword [edx + 0x10], eax
mov dword [edx + 0x18], edi
mov eax, dword [esp + 0x44]
mov dword [eax], esi
jmp 0x58d042
mov eax, dword [esp + 0x24]
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0x14
mov dword [eax + 0x1c], 0x7ff00000
mov dword [eax + 0x18], 0
mov ecx, dword [esp + 0x14]
jmp 0x59a2a7
mov eax, dword [esp + 0x94]
cmp eax, 3
jg 0x58f2b1
mov ecx, 4
sub ecx, eax
shrd dword [esp + 0x1c], esi, cl
shr esi, cl
mov eax, esi
mov esi, dword [esp + 0x6c]
shrd edx, esi, cl
shr esi, cl
test cl, 0x20
je 0x58f56f
mov dword [esp + 0x1c], eax
xor eax, eax
mov edx, esi
xor esi, esi
add dword [esp + 0x64], ecx
add edx, 9
adc esi, 0
mov dword [esp + 0x6c], esi
mov ecx, 0x3c
mov esi, eax
jmp 0x58f2b8
mov dword [esp + 0x34], 0
mov ecx, dword [esp + 0x14]
jmp 0x58f420
mov dword [esp + 0x5c], ebx
mov esi, dword [esp + 0x68]
mov eax, esi
and eax, 0x7ff00000
mov ecx, dword [esp + 0x34]
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 + 0x64], 0xfffffbcd
test eax, eax
je 0x58f5e9
shr eax, 0x14
add eax, 0xfffffbcc
mov dword [esp + 0x64], eax
mov esi, edx
mov ebx, ecx
or ebx, 1
lea eax, [esp + 0x98]
lea ecx, [esp + 0xc8]
mov edx, dword [esp + 8]
push dword [esp + 0xc]
push dword [esp + 0x78]
push dword [esp + 0x58]
push eax
push dword [esp + 0x38]
call fcn.005a8ba0
add esp, 0x14
mov dword [esp + 0x2d0], 1
mov dword [esp + 0x2d8], ebx
mov dword [esp + 0x2dc], esi
mov eax, dword [esp + 0x98]
mov dword [esp + 0x78], eax
test eax, eax
js 0x58f861
cmp dword [esp + 0x78], 0x13
jge 0x58f69d
mov eax, dword [esp + 0x78]
test eax, eax
je 0x58fd41
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x18], ecx
xor esi, esi
test ecx, ecx
je 0x58fa95
mov ecx, dword [esp + esi*8 + 0xd0]
or ecx, dword [esp + esi*8 + 0xd4]
jne 0x58fa95
add esi, 1
cmp dword [esp + 0x18], esi
jne 0x58f66b
jmp 0x58fd41
mov ebx, dword [esp + 0x78]
lea eax, [ebx - 0x13]
cmp ebx, 0x25
mov dword [esp + 0x78], eax
jle 0x58f64e
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x50], eax
xor esi, esi
test eax, eax
je 0x58f6c9
mov eax, dword [esp + esi*8 + 0xd0]
or eax, dword [esp + esi*8 + 0xd4]
jne 0x58f6c9
add esi, 1
cmp dword [esp + 0x50], esi
jne 0x58f6ae
jmp 0x58f68d
cmp esi, dword [esp + 0x50]
jae 0x58f68d
mov dword [esp + 0x38], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + esi*8 + 0xd0]
mov eax, ecx
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x58], eax
mov dword [esp + 0x48], edx
xor eax, eax
mov ebx, 0x89e80000
add ebx, 0xdf2304
mov dword [esp + 0x60], ebx
setb al
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov eax, ecx
mul ebx
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + esi*8 + 0xd4]
mov dword [esp + 0x1c], eax
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0xc]
imul eax, dword [esp + 8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x1c]
mul dword [esp + 0x60]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 8]
imul eax, dword [esp + 0x1c]
add ebx, dword [esp + 0x48]
adc ecx, dword [esp + 0xc]
add ebx, dword [esp + 0x6c]
adc dword [esp + 0x28], 0
add ecx, dword [esp + 0x60]
adc edx, eax
add ecx, dword [esp + 0x28]
mov dword [esp + 0xc], ecx
adc edx, 0
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x58]
and ecx, 0xfff80000
mov edx, dword [esp + 0x38]
add ecx, edx
mov eax, dword [esp + 0x18]
adc ebx, eax
setb byte [esp + 8]
cmp ecx, edx
mov edx, ecx
mov ecx, ebx
sbb ecx, eax
mov dword [esp + esi*8 + 0xd4], ebx
setb cl
or cl, byte [esp + 8]
movzx eax, cl
add eax, dword [esp + 0xc]
mov dword [esp + 0x38], eax
mov dword [esp + esi*8 + 0xd0], edx
mov edx, dword [esp + 0x28]
adc edx, 0
mov dword [esp + 0x18], edx
add esi, 1
cmp dword [esp + 0x50], esi
jne 0x58f6df
mov eax, dword [esp + 0x38]
or eax, dword [esp + 0x18]
je 0x58f68d
mov eax, dword [esp + 0xc8]
lea ecx, [eax + 1]
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + eax*8 + 0xd4], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + eax*8 + 0xd0], ecx
jmp 0x58f68d
cmp esi, 0xfffffb8f
jl 0x590b4d
mov edx, eax
mov eax, esi
mov cl, 0xc3
sub cl, al
shrd dword [esp + 0x34], edx, cl
shr edx, cl
mov eax, edx
test cl, 0x20
je 0x58f83a
mov dword [esp + 0x34], eax
xor eax, eax
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 4]
jmp 0x58f420
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
test eax, eax
je 0x58f4e3
mov byte [eax], 0
jmp 0x58f4e3
mov eax, dword [esp + 0x78]
mov ecx, eax
neg ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 8], 1
cmp eax, 0xffffffed
jg 0x58fbd0
mov dword [esp + 0x18], 1
cmp dword [esp + 0x18], 0
jne 0x58f8a5
jmp 0x58f8c5
mov ecx, dword [esp + 0x2d0]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x7c], eax
cmp dword [esp + 0x18], 0
je 0x58f8c5
xor esi, esi
mov eax, dword [esp + esi*8 + 0x2d8]
or eax, dword [esp + esi*8 + 0x2dc]
jne 0x58f8c7
add esi, 1
cmp dword [esp + 0x18], esi
jne 0x58f8a7
jmp 0x58fa0b
xor esi, esi
cmp esi, dword [esp + 0x18]
jae 0x58fa0b
mov dword [esp + 0x50], 0
mov dword [esp + 0x38], 0
mov ecx, dword [esp + esi*8 + 0x2d8]
mov eax, ecx
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x58], eax
mov dword [esp + 0x48], edx
xor eax, eax
mov ebx, 0x89e80000
add ebx, 0xdf2304
mov dword [esp + 0x60], ebx
setb al
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov eax, ecx
mul ebx
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + esi*8 + 0x2dc]
mov dword [esp + 0x1c], eax
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0xc]
imul eax, dword [esp + 8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x1c]
mul dword [esp + 0x60]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 8]
imul eax, dword [esp + 0x1c]
add ebx, dword [esp + 0x48]
adc ecx, dword [esp + 0xc]
add ebx, dword [esp + 0x6c]
adc dword [esp + 0x28], 0
add ecx, dword [esp + 0x60]
adc edx, eax
add ecx, dword [esp + 0x28]
mov dword [esp + 0xc], ecx
adc edx, 0
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x58]
and ecx, 0xfff80000
mov edx, dword [esp + 0x50]
add ecx, edx
mov eax, dword [esp + 0x38]
adc ebx, eax
setb byte [esp + 8]
cmp ecx, edx
mov edx, ecx
mov ecx, ebx
sbb ecx, eax
mov dword [esp + esi*8 + 0x2dc], ebx
setb cl
or cl, byte [esp + 8]
movzx eax, cl
add eax, dword [esp + 0xc]
mov dword [esp + 0x50], eax
mov dword [esp + esi*8 + 0x2d8], edx
mov edx, dword [esp + 0x28]
adc edx, 0
mov dword [esp + 0x38], edx
add esi, 1
cmp dword [esp + 0x18], esi
jne 0x58f8e1
mov eax, dword [esp + 0x50]
or eax, dword [esp + 0x38]
je 0x58fa0b
mov eax, dword [esp + 0x2d0]
lea ecx, [eax + 1]
mov dword [esp + 0x2d0], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + eax*8 + 0x2dc], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + eax*8 + 0x2d8], ecx
mov ebx, dword [esp + 0x7c]
lea eax, [ebx - 0x13]
cmp ebx, 0x26
jge 0x58f88f
test eax, eax
je 0x58fd41
mov ecx, dword [esp + 0x2d0]
mov dword [esp + 8], ecx
test ecx, ecx
jne 0x58fbd4
jmp 0x58fd41
mov esi, eax
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
test eax, eax
je 0x58fa4a
mov byte [eax], 0
mov eax, ecx
sar eax, 0x1f
shld eax, ecx, 8
mov edx, dword [esp + 0x24]
mov dword [edx + 0x14], eax
shl ecx, 8
or ecx, 1
mov dword [edx + 0x10], ecx
jmp 0x58f500
mov dword [esp + 0x24], ebx
mov eax, dword [ebp + 0x10]
test al, 4
jne 0x590c19
mov eax, dword [esp + 0x24]
cmp byte [eax], 0x2c
je 0x58a464
mov dword [esp + 0x10], edi
cmp byte [edi], 0x2c
lea edi, [edi - 1]
jne 0x58fa84
jmp 0x58a45d
cmp esi, dword [esp + 0x18]
jae 0x58fd41
mov ecx, dword [eax*8 + 0x60293c]
mov dword [esp + 0x60], ecx
mov eax, dword [eax*8 + 0x602938]
mov dword [esp + 0x78], eax
mov dword [esp + 8], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + esi*8 + 0xd0]
mov eax, ecx
mov ebx, dword [esp + 0x78]
mul ebx
mov dword [esp + 0x38], edx
mov dword [esp + 0xc], eax
mov eax, ecx
mov ecx, dword [esp + 0x60]
mul ecx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x28], edx
mov eax, dword [esp + esi*8 + 0xd4]
mov dword [esp + 0x48], eax
mul ebx
mov dword [esp + 0x50], edx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x48]
mul ecx
mov dword [esp + 0x48], eax
mov ebx, edx
mov edx, dword [esp + 0x6c]
add edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x28]
adc ecx, 0
add edx, dword [esp + 0x58]
mov eax, dword [esp + 0x50]
adc eax, 0
add ecx, dword [esp + 0x48]
adc ebx, 0
add ecx, eax
mov dword [esp + 0x28], ecx
adc ebx, 0
mov dword [esp + 0x38], ebx
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
add eax, ecx
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x1c]
adc edx, ebx
setb byte [esp + 0x50]
cmp eax, ecx
mov ecx, edx
sbb ecx, ebx
mov dword [esp + esi*8 + 0xd4], edx
setb cl
or cl, byte [esp + 0x50]
movzx eax, cl
add eax, dword [esp + 0x28]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc]
mov dword [esp + esi*8 + 0xd0], eax
mov edx, dword [esp + 0x38]
adc edx, 0
mov dword [esp + 0x1c], edx
add esi, 1
cmp dword [esp + 0x18], esi
jne 0x58fac5
mov eax, dword [esp + 8]
or eax, dword [esp + 0x1c]
je 0x58fd41
mov eax, dword [esp + 0xc8]
lea ecx, [eax + 1]
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + eax*8 + 0xd4], ecx
mov ecx, dword [esp + 8]
mov dword [esp + eax*8 + 0xd0], ecx
jmp 0x58fd41
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax*8 + 0x60293c]
mov dword [esp + 0x1c], ecx
mov eax, dword [eax*8 + 0x602938]
mov dword [esp + 0x18], eax
xor esi, esi
mov ecx, dword [esp + esi*8 + 0x2d8]
mov edx, dword [esp + esi*8 + 0x2dc]
mov eax, ecx
or eax, edx
jne 0x58fc0e
add esi, 1
cmp dword [esp + 8], esi
jne 0x58fbec
jmp 0x58fd41
cmp esi, dword [esp + 8]
jae 0x58fd41
mov ebx, edx
add esi, 1
mov dword [esp + 0x38], 0
mov dword [esp + 0x50], 0
mov eax, ecx
mul dword [esp + 0x18]
mov dword [esp + 0x58], edx
mov dword [esp + 0xc], eax
mov eax, ecx
mul dword [esp + 0x1c]
mov dword [esp + 0x28], edx
mov dword [esp + 0x78], eax
mov eax, ebx
mul dword [esp + 0x18]
mov dword [esp + 0x48], edx
mov dword [esp + 0x6c], eax
mov eax, ebx
mul dword [esp + 0x1c]
mov dword [esp + 0x60], eax
mov ebx, edx
mov edx, dword [esp + 0x78]
add edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x28]
adc ecx, 0
add edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x48]
adc eax, 0
add ecx, dword [esp + 0x60]
adc ebx, 0
add ecx, eax
mov dword [esp + 0x28], ecx
adc ebx, 0
mov dword [esp + 0x58], ebx
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0xc]
add eax, ecx
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x50]
adc edx, ebx
setb byte [esp + 0x48]
cmp eax, ecx
mov ecx, edx
sbb ecx, ebx
mov dword [esp + esi*8 + 0x2d4], edx
setb cl
or cl, byte [esp + 0x48]
movzx eax, cl
add eax, dword [esp + 0x28]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xc]
mov dword [esp + esi*8 + 0x2d0], eax
mov edx, dword [esp + 0x58]
adc edx, 0
mov dword [esp + 0x50], edx
cmp dword [esp + 8], esi
je 0x58fd10
mov ecx, dword [esp + esi*8 + 0x2d8]
mov ebx, dword [esp + esi*8 + 0x2dc]
add esi, 1
jmp 0x58fc2d
add esi, 1
mov dword [esp + 0x54], str.invalid_escaped_character_in_string
mov edi, str.invalid_escaped_character_in_string
jmp 0x58eef2
mov eax, dword [esp + 0x38]
or eax, dword [esp + 0x50]
je 0x58fd41
mov eax, dword [esp + 0x2d0]
lea ecx, [eax + 1]
mov dword [esp + 0x2d0], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + eax*8 + 0x2dc], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + eax*8 + 0x2d8], ecx
cmp dword [esp + 0x64], 0
jle 0x58fe0c
mov ebx, dword [esp + 0x64]
mov eax, ebx
shr eax, 6
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x2d0]
mov dword [esp + 0x1c], eax
and ebx, 0x3f
mov dword [esp + 0x64], ebx
je 0x590b62
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*8 + 0x2dc], 0
mov dword [esp + eax*8 + 0x2d8], 0
test eax, eax
je 0x58ff59
mov ecx, 0x40
sub ecx, dword [esp + 0x64]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + ebx*8 + 0x2d0]
mov esi, dword [esp + ebx*8 + 0x2d4]
mov edx, esi
shr edx, cl
shrd eax, esi, cl
lea esi, [ebx - 1]
mov dword [esp + 0xc], esi
mov dword [esp + 0x28], ecx
test cl, 0x20
je 0x58fdc9
mov eax, edx
xor edx, edx
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x1c]
add ecx, esi
mov dword [esp + ecx*8 + 0x2d8], eax
mov dword [esp + ecx*8 + 0x2dc], edx
cmp dword [esp + 0xc], 0
je 0x58ff59
test byte [esp + 0xc], 1
jne 0x58fece
mov eax, dword [esp + 0x1c]
lea eax, [esp + eax*8]
add eax, 0x2d0
mov dword [esp + 8], eax
jmp 0x58ff52
mov ebx, dword [esp + 0x64]
neg ebx
mov eax, ebx
shr eax, 6
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x1c], eax
and ebx, 0x3f
mov dword [esp + 0x64], ebx
je 0x590bbc
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*8 + 0xd4], 0
mov dword [esp + eax*8 + 0xd0], 0
test eax, eax
je 0x5901a3
mov ecx, 0x40
sub ecx, dword [esp + 0x64]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + ebx*8 + 0xc8]
mov esi, dword [esp + ebx*8 + 0xcc]
mov edx, esi
shr edx, cl
shrd eax, esi, cl
lea esi, [ebx - 1]
mov dword [esp + 0xc], esi
mov dword [esp + 0x28], ecx
test cl, 0x20
je 0x58fe8b
mov eax, edx
xor edx, edx
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x1c]
add ecx, esi
mov dword [esp + ecx*8 + 0xd0], eax
mov dword [esp + ecx*8 + 0xd4], edx
cmp dword [esp + 0xc], 0
je 0x5901a3
test byte [esp + 0xc], 1
jne 0x590114
mov eax, dword [esp + 0x1c]
lea eax, [esp + eax*8]
add eax, 0xc8
mov dword [esp + 8], eax
jmp 0x590198
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + eax*8 + 0x2d0]
mov eax, dword [esp + eax*8 + 0x2d4]
mov ecx, dword [esp + 0x64]
shld eax, ebx, cl
mov dword [esp + 8], eax
shl ebx, cl
test cl, 0x20
je 0x58fef8
mov dword [esp + 8], ebx
xor ebx, ebx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + eax*8 + 0x2c8]
mov esi, dword [esp + eax*8 + 0x2cc]
mov eax, esi
mov ecx, dword [esp + 0x28]
shr eax, cl
shrd edx, esi, cl
test cl, 0x20
je 0x58ff1e
mov edx, eax
xor eax, eax
or edx, ebx
or eax, dword [esp + 8]
mov ebx, dword [esp + 0xc]
add ebx, dword [esp + 0x48]
mov dword [esp + ebx*8 + 0x2d8], edx
mov dword [esp + ebx*8 + 0x2dc], eax
mov ecx, dword [esp + 0x1c]
lea eax, [ecx - 2]
lea ecx, [esp + ecx*8]
add ecx, 0x2c8
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
cmp dword [esp + 0x1c], 2
jne 0x58ffd0
mov esi, dword [esp + 0x2d8]
mov eax, dword [esp + 0x2dc]
mov edx, esi
mov ecx, dword [esp + 0x64]
shl edx, cl
shld eax, esi, cl
test cl, 0x20
je 0x58ff7b
mov eax, edx
xor edx, edx
mov esi, dword [esp + 0x48]
mov dword [esp + esi*8 + 0x2d8], edx
mov dword [esp + esi*8 + 0x2dc], eax
mov eax, dword [esp + 0x2d0]
add eax, esi
mov ecx, dword [esp + eax*8 + 0x2d8]
xor edx, edx
or ecx, dword [esp + eax*8 + 0x2dc]
setne dl
add edx, eax
mov dword [esp + 0x2d0], edx
test esi, esi
je 0x59021a
mov eax, dword [esp + 0x48]
shl eax, 3
push eax
push 0
lea eax, [esp + 0x2e0]
jmp 0x590211
mov eax, dword [esp + 0x48]
lea eax, [esp + eax*8]
add eax, 0x2d8
mov dword [esp + 0x1c], eax
jmp 0x590017
or esi, dword [esp + 8]
mov ecx, dword [esp + 0x38]
or ecx, ebx
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
mov dword [eax + ebx*8 - 8], esi
mov dword [eax + ebx*8 - 4], ecx
lea eax, [esp + ebx*8]
add eax, 0x2c8
mov dword [esp + 8], eax
lea eax, [ebx - 2]
test eax, eax
mov dword [esp + 0xc], eax
je 0x58ff59
mov eax, dword [esp + 8]
mov eax, dword [eax]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x64]
shl eax, cl
mov dword [esp + 0x18], eax
mov dword [esp + 0x38], 0
mov ebx, 0
test cl, 0x20
jne 0x590041
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + ecx*8 + 0x2d0]
mov edx, dword [esp + ecx*8 + 0x2d4]
mov esi, edx
mov ecx, dword [esp + 0x28]
shr esi, cl
shrd eax, edx, cl
test cl, 0x20
je 0x590067
mov eax, esi
xor esi, esi
or eax, ebx
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x1c]
mov dword [ebx + ecx*8], eax
mov ebx, dword [esp + ecx*8 + 0x2d0]
mov dword [esp + 0x58], ebx
mov ecx, dword [esp + 0x64]
shl ebx, cl
mov dword [esp + 8], 0
test cl, 0x20
jne 0x59009d
mov dword [esp + 8], ebx
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x50]
shld edx, eax, cl
test cl, 0x20
jne 0x5900b1
mov dword [esp + 0x18], edx
or esi, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + ecx*8 + 0x2c8]
mov edx, dword [esp + 0x1c]
mov dword [edx + ecx*8 + 4], esi
mov edx, dword [esp + ecx*8 + 0x2d4]
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x58]
shld edx, esi, cl
test cl, 0x20
jne 0x5900e1
mov ebx, edx
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + ecx*8 + 0x2cc]
mov esi, edx
mov ecx, dword [esp + 0x28]
shr esi, cl
test cl, 0x20
jne 0x5900fd
mov dword [esp + 0x38], esi
mov ecx, dword [esp + 0x28]
shrd eax, edx, cl
test cl, 0x20
jne 0x58ffe2
mov esi, eax
jmp 0x58ffe2
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + eax*8 + 0xc8]
mov eax, dword [esp + eax*8 + 0xcc]
mov ecx, dword [esp + 0x64]
shld eax, ebx, cl
mov dword [esp + 8], eax
shl ebx, cl
test cl, 0x20
je 0x59013e
mov dword [esp + 8], ebx
xor ebx, ebx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + eax*8 + 0xc0]
mov esi, dword [esp + eax*8 + 0xc4]
mov eax, esi
mov ecx, dword [esp + 0x28]
shr eax, cl
shrd edx, esi, cl
test cl, 0x20
je 0x590164
mov edx, eax
xor eax, eax
or edx, ebx
or eax, dword [esp + 8]
mov ebx, dword [esp + 0xc]
add ebx, dword [esp + 0x48]
mov dword [esp + ebx*8 + 0xd0], edx
mov dword [esp + ebx*8 + 0xd4], eax
mov ecx, dword [esp + 0x1c]
lea eax, [ecx - 2]
lea ecx, [esp + ecx*8]
add ecx, 0xc0
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
cmp dword [esp + 0x1c], 2
jne 0x590324
mov esi, dword [esp + 0xd0]
mov eax, dword [esp + 0xd4]
mov edx, esi
mov ecx, dword [esp + 0x64]
shl edx, cl
shld eax, esi, cl
test cl, 0x20
je 0x5901c5
mov eax, edx
xor edx, edx
mov esi, dword [esp + 0x48]
mov dword [esp + esi*8 + 0xd0], edx
mov dword [esp + esi*8 + 0xd4], eax
mov eax, dword [esp + 0xc8]
add eax, esi
mov ecx, dword [esp + eax*8 + 0xd0]
xor edx, edx
or ecx, dword [esp + eax*8 + 0xd4]
setne dl
add edx, eax
mov dword [esp + 0xc8], edx
test esi, esi
je 0x59021a
lea eax, [esp + 0xd0]
mov ecx, dword [esp + 0x48]
shl ecx, 3
push ecx
push 0
push eax
call fcn.005c5400
add esp, 0xc
mov esi, dword [esp + 0xc8]
cmp esi, dword [esp + 0x2d0]
jne 0x5902bc
mov ecx, esi
jmp 0x59023e
or esi, dword [esp + 0x38]
mov esi, ecx
jne 0x5902c4
sub ecx, 1
jb 0x5902d6
mov edx, dword [esp + esi*8 + 0xc8]
mov eax, dword [esp + esi*8 + 0xcc]
mov ebx, dword [esp + esi*8 + 0x2d0]
mov esi, dword [esp + esi*8 + 0x2d4]
mov dword [esp + 0x28], edx
mov dword [esp + 0xc], ebx
cmp ebx, edx
mov dword [esp + 0x1c], esi
mov edx, esi
sbb edx, eax
mov dword [esp + 0x18], 1
jb 0x590287
mov edx, dword [esp + 8]
mov dword [esp + 0x18], edx
mov esi, dword [esp + 0x28]
xor esi, dword [esp + 0xc]
mov edx, eax
mov ebx, dword [esp + 0x1c]
xor edx, ebx
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0xc]
cmp dword [esp + 0x28], edx
sbb eax, ebx
mov dword [esp + 8], 0xffffffff
jb 0x590232
mov eax, dword [esp + 0x18]
mov dword [esp + 8], eax
jmp 0x590232
setae al
movzx ecx, al
jmp 0x5902dd
xor ecx, ecx
cmp dword [esp + 8], 0
setg al
je 0x5902d6
xor edx, edx
mov cl, al
jmp 0x5902df
mov ecx, dword [esp + 0x34]
and ecx, 1
xor edx, edx
add ecx, dword [esp + 0x34]
adc edx, dword [esp + 0x68]
mov eax, edx
mov esi, 0x7ff00000
xor eax, esi
or eax, ecx
je 0x590b14
xor eax, eax
cmp byte [esp + 0x5c], 0x2d
sete al
shl eax, 0x1f
or edx, eax
mov eax, dword [esp + 0x24]
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0x14
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], edx
jmp 0x58dbbe
mov eax, dword [esp + 0x48]
lea eax, [esp + eax*8]
add eax, 0xd0
mov dword [esp + 0x1c], eax
jmp 0x59036b
or esi, dword [esp + 8]
mov ecx, dword [esp + 0x38]
or ecx, ebx
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
mov dword [eax + ebx*8 - 8], esi
mov dword [eax + ebx*8 - 4], ecx
lea eax, [esp + ebx*8]
add eax, 0xc0
mov dword [esp + 8], eax
lea eax, [ebx - 2]
test eax, eax
mov dword [esp + 0xc], eax
je 0x5901a3
mov eax, dword [esp + 8]
mov eax, dword [eax]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x64]
shl eax, cl
mov dword [esp + 0x18], eax
mov dword [esp + 0x38], 0
mov ebx, 0
test cl, 0x20
jne 0x590395
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + ecx*8 + 0xc8]
mov edx, dword [esp + ecx*8 + 0xcc]
mov esi, edx
mov ecx, dword [esp + 0x28]
shr esi, cl
shrd eax, edx, cl
test cl, 0x20
je 0x5903bb
mov eax, esi
xor esi, esi
or eax, ebx
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x1c]
mov dword [ebx + ecx*8], eax
mov ebx, dword [esp + ecx*8 + 0xc8]
mov dword [esp + 0x58], ebx
mov ecx, dword [esp + 0x64]
shl ebx, cl
mov dword [esp + 8], 0
test cl, 0x20
jne 0x5903f1
mov dword [esp + 8], ebx
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x50]
shld edx, eax, cl
test cl, 0x20
jne 0x590405
mov dword [esp + 0x18], edx
or esi, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + ecx*8 + 0xc0]
mov edx, dword [esp + 0x1c]
mov dword [edx + ecx*8 + 4], esi
mov edx, dword [esp + ecx*8 + 0xcc]
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x58]
shld edx, esi, cl
test cl, 0x20
jne 0x590435
mov ebx, edx
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + ecx*8 + 0xc4]
mov esi, edx
mov ecx, dword [esp + 0x28]
shr esi, cl
test cl, 0x20
jne 0x590451
mov dword [esp + 0x38], esi
mov ecx, dword [esp + 0x28]
shrd eax, edx, cl
test cl, 0x20
jne 0x590336
mov esi, eax
jmp 0x590336
mov ecx, 5
jmp 0x58ccd0
mov esi, eax
mov eax, dword [ebp + 0x10]
test al, 0x10
jne 0x590ec8
mov dword [esp + 0x54], str.no_digit_after_minus_sign
jmp 0x5911af
cmp cl, 0x2e
jne 0x591005
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 1]
test byte [eax + 0x5ffe78], 3
je 0x590a7c
mov esi, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x18], eax
mov eax, esi
cmp al, 0x30
je 0x590fce
add esi, 0xffffffd0
mov dword [esp + 8], esi
sar esi, 0x1f
jmp 0x5904e6
mov esi, dword [esp + 8]
sar esi, 0x1f
cmp dl, 0x2e
jne 0x590fb3
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 2]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x590eb4
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 3]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x590ea4
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 0x28]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 4]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x590e94
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 0x28]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 5]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x590e84
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 0x28]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 6]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x590e74
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 0x28]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 7]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x590e64
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 0x28]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 8]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x590e3f
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 0x28]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 9]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x590e2f
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 0x28]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0xa]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x590e1f
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 0x28]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0xb]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x590e0f
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 0x28]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0xc]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x590dff
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 0x28]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0xd]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x590def
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 0x28]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0xe]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x590ddf
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 0x28]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0xf]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x590dcf
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 0x28]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x10]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x590dbf
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 0x28]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x11]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x590daf
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 0x28]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x12]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x590d78
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 0x28]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x13]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x590d68
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 0x28]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 0x28], esi
mov ecx, dword [esp + 0x18]
movzx eax, byte [ecx + 0x14]
add ecx, 0x14
mov dword [esp + 0x1c], eax
test byte [eax + 0x5ffe78], 3
mov dword [esp + 0x20], ecx
jne 0x58d6fd
mov eax, dword [esp + 0xc]
add eax, 1
cmp eax, dword [esp + 0x20]
je 0x590aff
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0xc]
mov ecx, eax
sar ecx, 0x1f
mov dword [esp + 0x50], 0
mov esi, 1
sub esi, eax
mov edx, 0
sbb edx, ecx
mov dword [esp + 0x34], edx
movzx ecx, byte [esp + 0x1c]
test byte [ecx + 0x5ffe78], 0x20
jne 0x590e4f
cmp eax, 0x159
jge 0x58f032
mov dword [esp + 0x50], 0
mov eax, dword [esp + 0x20]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x28]
mov edx, esi
mov esi, eax
jmp 0x58d927
cmp dl, 0x2e
jne 0x590d88
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
jmp 0x59089a
mov ecx, 5
jmp 0x58d019
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
test eax, eax
je 0x590995
mov byte [eax], 0
mov esi, edx
mov eax, edx
jmp 0x58f4e5
mov dword [esp + 0x54], str.unclosed_string
mov edi, str.unclosed_string
jmp 0x58eef2
mov dword [esp + 0x54], str.unexpected_control_character_in_string
mov edi, str.unexpected_control_character_in_string
jmp 0x58eef2
mov dword [esp + 0x54], str.invalid_escaped_sequence_in_string
mov edi, str.invalid_escaped_sequence_in_string
jmp 0x58eef2
mov dword [esp + 0x54], str.invalid_high_surrogate_in_string
mov edi, str.invalid_high_surrogate_in_string
jmp 0x58eef2
mov dword [esp + 0x54], str.invalid_UTF_8_encoding_in_string
mov edi, str.invalid_UTF_8_encoding_in_string
jmp 0x58eef2
mov dword [esp + 0x54], str.no_low_surrogate_in_string
mov edi, str.no_low_surrogate_in_string
mov esi, dword [esp + 4]
jmp 0x58eef2
mov dword [esp + 0x54], str.invalid_escaped_sequence_in_string
mov edi, str.invalid_escaped_sequence_in_string
mov esi, dword [esp + 4]
jmp 0x58eef2
mov dword [esp + 0x54], str.invalid_low_surrogate_in_string
mov edi, str.invalid_low_surrogate_in_string
mov esi, dword [esp + 4]
jmp 0x58eef2
mov dword [esp + 0x54], str.no_low_surrogate_in_string
mov edi, str.no_low_surrogate_in_string
mov esi, dword [esp + 0x28]
jmp 0x58eef2
mov dword [esp + 0x54], str.invalid_escaped_sequence_in_string
mov edi, str.invalid_escaped_sequence_in_string
mov esi, dword [esp + 0x28]
jmp 0x58eef2
mov dword [esp + 0x54], str.invalid_low_surrogate_in_string
mov edi, str.invalid_low_surrogate_in_string
mov esi, dword [esp + 0x28]
jmp 0x58eef2
mov eax, dword [esp + 0xc]
add eax, 1
mov dword [esp + 0x54], str.no_digit_after_decimal_point
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x4c]
mov ecx, ebx
mov edx, esi
push dword [ebp + 0x10]
push 9
push dword [esp + 0x78]
call fcn.005a86b0
add esp, 0xc
test al, al
mov edi, dword [ebp + 0x18]
jne 0x590abf
mov dword [esp + 0x70], esi
mov ecx, str.unexpected_end_of_data
jne 0x590aca
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x70]
sub esi, ebx
xor al, 1
movzx eax, al
lea eax, [eax*4 + 5]
test edi, edi
jne 0x589c35
lea edx, [esp + 0xa4]
mov ebx, dword [esp + 0x88]
mov dword [edx + 8], esi
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x599ef3
mov dword [esp + 0x54], str.no_digit_after_decimal_point
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], eax
jmp 0x590a8f
mov eax, dword [ebp + 0x10]
test al, al
js 0x590b37
mov eax, dword [ebp + 0x10]
test al, 0x10
jne 0x5910f5
mov dword [esp + 0x54], str.number_is_infinity_when_parsed_as_double
mov dword [esp + 0x10], edi
jmp 0x590a8f
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
test eax, eax
je 0x590b44
mov byte [eax], 0
mov esi, dword [esp + 0x20]
jmp 0x58f4e3
mov dword [esp + 0x34], 0
mov dword [esp + 0x68], 0
jmp 0x58f83e
cmp dword [esp + 0x1c], 0
je 0x590c2e
mov edx, dword [esp + 0x1c]
lea eax, [edx - 1]
mov dword [esp + 0x28], eax
and edx, 3
je 0x590c32
mov eax, dword [esp + 0x48]
lea eax, [esp + eax*8]
add eax, 0x2d0
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + esi*8 + 0x2d0]
mov ecx, dword [esp + esi*8 + 0x2d4]
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], ecx
lea eax, [esi - 1]
mov dword [esp + 0x1c], eax
add edx, 0xffffffff
jne 0x590b95
jmp 0x590c36
cmp dword [esp + 0x1c], 0
je 0x590ccb
mov edx, dword [esp + 0x1c]
lea eax, [edx - 1]
mov dword [esp + 0x28], eax
and edx, 3
je 0x590ccf
mov eax, dword [esp + 0x48]
lea eax, [esp + eax*8]
add eax, 0xc8
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + esi*8 + 0xc8]
mov ecx, dword [esp + esi*8 + 0xcc]
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], ecx
lea eax, [esi - 1]
mov dword [esp + 0x1c], eax
add edx, 0xffffffff
jne 0x590bef
jmp 0x590cd3
mov eax, dword [esp + 0xc]
mov dword [esp + 0x30], eax
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x24]
jmp 0x59a41a
xor eax, eax
jmp 0x590cb1
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x28], 3
jb 0x590caa
mov ecx, dword [esp + 0x48]
lea ecx, [esp + ecx*8]
add ecx, 0x2d0
mov edx, eax
mov ebx, dword [esp + eax*8 + 0x2d0]
mov esi, dword [esp + eax*8 + 0x2d4]
mov dword [ecx + eax*8 + 4], esi
mov dword [ecx + eax*8], ebx
mov ebx, dword [esp + eax*8 + 0x2cc]
mov esi, dword [esp + eax*8 + 0x2c8]
mov dword [ecx + eax*8 - 8], esi
mov dword [ecx + eax*8 - 4], ebx
mov ebx, dword [esp + eax*8 + 0x2c0]
mov esi, dword [esp + eax*8 + 0x2c4]
mov dword [ecx + eax*8 - 0xc], esi
mov dword [ecx + eax*8 - 0x10], ebx
mov ebx, dword [esp + eax*8 + 0x2bc]
mov esi, dword [esp + eax*8 + 0x2b8]
mov dword [ecx + eax*8 - 0x18], esi
mov dword [ecx + eax*8 - 0x14], ebx
add edx, 0xfffffffc
mov eax, edx
jne 0x590c4c
mov eax, dword [esp + 0x2d0]
mov ecx, dword [esp + 0x48]
add eax, ecx
mov dword [esp + 0x2d0], eax
test ecx, ecx
jne 0x58ffba
jmp 0x59021a
xor eax, eax
jmp 0x590d4e
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x28], 3
jb 0x590d47
mov ecx, dword [esp + 0x48]
lea ecx, [esp + ecx*8]
add ecx, 0xc8
mov edx, eax
mov ebx, dword [esp + eax*8 + 0xc8]
mov esi, dword [esp + eax*8 + 0xcc]
mov dword [ecx + eax*8 + 4], esi
mov dword [ecx + eax*8], ebx
mov ebx, dword [esp + eax*8 + 0xc4]
mov esi, dword [esp + eax*8 + 0xc0]
mov dword [ecx + eax*8 - 8], esi
mov dword [ecx + eax*8 - 4], ebx
mov ebx, dword [esp + eax*8 + 0xb8]
mov esi, dword [esp + eax*8 + 0xbc]
mov dword [ecx + eax*8 - 0xc], esi
mov dword [ecx + eax*8 - 0x10], ebx
mov ebx, dword [esp + eax*8 + 0xb4]
mov esi, dword [esp + eax*8 + 0xb0]
mov dword [ecx + eax*8 - 0x18], esi
mov dword [ecx + eax*8 - 0x14], ebx
add edx, 0xfffffffc
mov eax, edx
jne 0x590ce9
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x48]
add eax, ecx
mov dword [esp + 0xc8], eax
test ecx, ecx
jne 0x590200
jmp 0x59021a
mov edx, dword [esp + 0x18]
add edx, 0x13
mov dword [esp + 0x20], edx
jmp 0x5908f2
mov edx, dword [esp + 0x18]
add edx, 0x12
mov dword [esp + 0x20], edx
jmp 0x5908f2
xor edx, edx
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x50], 0
mov esi, dword [esp + 0x28]
jmp 0x58d830
mov edx, dword [esp + 0x18]
add edx, 0x11
mov dword [esp + 0x20], edx
jmp 0x5908f2
mov edx, dword [esp + 0x18]
add edx, 0x10
mov dword [esp + 0x20], edx
jmp 0x5908f2
mov edx, dword [esp + 0x18]
add edx, 0xf
mov dword [esp + 0x20], edx
jmp 0x5908f2
mov edx, dword [esp + 0x18]
add edx, 0xe
mov dword [esp + 0x20], edx
jmp 0x5908f2
mov edx, dword [esp + 0x18]
add edx, 0xd
mov dword [esp + 0x20], edx
jmp 0x5908f2
mov edx, dword [esp + 0x18]
add edx, 0xc
mov dword [esp + 0x20], edx
jmp 0x5908f2
mov edx, dword [esp + 0x18]
add edx, 0xb
mov dword [esp + 0x20], edx
jmp 0x5908f2
mov edx, dword [esp + 0x18]
add edx, 0xa
mov dword [esp + 0x20], edx
jmp 0x5908f2
mov edx, dword [esp + 0x18]
add edx, 9
mov dword [esp + 0x20], edx
jmp 0x5908f2
mov edx, dword [esp + 0x18]
add edx, 8
mov dword [esp + 0x20], edx
jmp 0x5908f2
mov eax, dword [esp + 0x20]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x28]
mov edx, esi
mov esi, eax
jmp 0x58d830
mov edx, dword [esp + 0x18]
add edx, 7
mov dword [esp + 0x20], edx
jmp 0x5908f2
mov edx, dword [esp + 0x18]
add edx, 6
mov dword [esp + 0x20], edx
jmp 0x5908f2
mov edx, dword [esp + 0x18]
add edx, 5
mov dword [esp + 0x20], edx
jmp 0x5908f2
mov edx, dword [esp + 0x18]
add edx, 4
mov dword [esp + 0x20], edx
jmp 0x5908f2
mov edx, dword [esp + 0x18]
add edx, 3
mov dword [esp + 0x20], edx
jmp 0x5908f2
mov edx, dword [esp + 0x18]
add edx, 2
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], esi
jmp 0x5908f2
xor ecx, ecx
mov eax, ebx
cmp al, 0x2d
sete al
mov edx, esi
add dl, 0xb7
cmp dl, 0x25
ja case.0x590eea.182
mov cl, al
mov eax, dword [esp + 0xc]
sub eax, ecx
movzx ecx, dl
jmp dword [ecx*4 + 0x604370]
mov ecx, dword [esp + 0xc]
mov cl, byte [ecx + 1]
or cl, 0x20
cmp cl, 0x6e
jne 0x59104b
mov ecx, dword [esp + 0xc]
mov cl, byte [ecx + 2]
or cl, 0x20
cmp cl, 0x66
jne 0x59104b
mov edx, dword [esp + 0xc]
lea ecx, [edx + 3]
mov dl, byte [edx + 3]
or dl, 0x20
cmp dl, 0x69
jne 0x590f6c
mov edx, dword [esp + 0xc]
mov dl, byte [edx + 4]
or dl, 0x20
cmp dl, 0x6e
jne 0x590f6c
mov edx, dword [esp + 0xc]
mov dl, byte [edx + 5]
or dl, 0x20
cmp dl, 0x69
jne 0x590f6c
mov edx, dword [esp + 0xc]
mov dl, byte [edx + 6]
or dl, 0x20
cmp dl, 0x74
jne 0x590f6c
mov edx, dword [esp + 0xc]
mov dl, byte [edx + 7]
or dl, 0x20
cmp dl, 0x79
jne 0x590f6c
mov ecx, dword [esp + 0xc]
add ecx, 8
cmp dword [esp + 0x44], 0
je 0x591129
mov edx, dword [esp + 0x44]
mov edx, dword [edx]
test edx, edx
je 0x590f84
mov byte [edx], 0
mov edx, dword [esp + 0x44]
mov dword [edx], ecx
mov edx, ecx
sub edx, eax
mov esi, edx
sar esi, 0x1f
shld esi, edx, 8
mov edi, dword [esp + 0x24]
mov dword [edi + 0x14], esi
shl edx, 8
or edx, 1
mov dword [edi + 0x10], edx
mov dword [edi + 0x18], eax
mov dword [esp + 0x10], ecx
jmp 0x58d046
xor edx, edx
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
mov dword [esp + 0x74], eax
jmp 0x58d5e3
mov eax, dword [esp + 0xc]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
movzx eax, byte [ecx + 2]
add ecx, 1
mov dword [esp + 0x18], ecx
cmp eax, 0x30
je 0x590fd6
mov esi, eax
mov al, byte [esi + 0x5ffe78]
test al, 3
jne 0x5904be
mov ecx, dword [esp + 0x18]
add ecx, 1
mov dword [esp + 0xc], ecx
test al, 3
jne 0x591033
test al, 0x20
jne 0x591161
xor eax, eax
cmp bl, 0x2d
sete al
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0x14
shl eax, 0x1f
jmp 0x5910ed
mov dword [esp + 0x54], str.number_with_leading_zero_is_not_allowed
mov eax, dword [esp + 0xc]
add eax, 0xffffffff
mov dword [esp + 0x10], eax
jmp 0x590a8f
mov ecx, esi
cmp cl, 0x4e
jne case.0x590eea.182
mov ecx, dword [esp + 0xc]
mov cl, byte [ecx + 1]
or cl, 0x20
cmp cl, 0x61
jne case.0x590eea.182
mov ecx, dword [esp + 0xc]
mov cl, byte [ecx + 2]
or cl, 0x20
cmp cl, 0x6e
jne case.0x590eea.182
add dword [esp + 0xc], 3
cmp dword [esp + 0x44], 0
je 0x5910c8
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx]
test ecx, ecx
je 0x591095
mov byte [ecx], 0
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0xc]
mov dword [ecx], edx
mov ecx, 0x401
cmp bl, 0x2d
je 0x5910ae
mov ecx, 0x301
mov edx, dword [esp + 0x24]
mov dword [edx + 0x10], ecx
mov dword [edx + 0x14], 0
mov dword [edx + 0x18], eax
mov eax, dword [esp + 0xc]
jmp 0x58dbc2
mov eax, dword [esp + 0x24]
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0x14
mov eax, 0xfff80000
cmp bl, 0x2d
je 0x5910e9
mov eax, 0x7ff80000
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x1c], eax
jmp 0x58e325
xor eax, eax
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0x14
mov ecx, 0xfff00000
cmp byte [esp + 0x5c], 0x2d
je 0x59111a
mov ecx, 0x7ff00000
mov edx, dword [esp + 0x24]
mov dword [edx + 0x1c], ecx
mov dword [edx + 0x18], eax
jmp 0x58dbbe
mov eax, dword [esp + 0x24]
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0x14
mov eax, 0xfff00000
cmp bl, 0x2d
je 0x59114a
mov eax, 0x7ff00000
mov edx, dword [esp + 0x24]
mov dword [edx + 0x1c], eax
mov dword [edx + 0x18], 0
mov dword [esp + 0x10], ecx
jmp 0x58d046
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 0x5911a7
mov ecx, dword [esp + 0xc]
movzx eax, byte [ecx + 1]
add ecx, 1
mov dword [esp + 0xc], ecx
test byte [eax + 0x5ffe78], 3
jne 0x59118a
jmp 0x591011
mov dword [esp + 0x54], str.no_digit_after_exponent_sign
mov eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
jmp 0x590a8f
mov edi, dword [esp + 0x10]
movzx eax, word [edi]
mov esi, edi
cmp eax, 0x2a2f
jne case.0x58877b.182
mov ecx, dword [esp + 0x4c]
jmp 0x59a0be
lea esi, [esp + 0x10]
mov dword [esp + 0x14], ecx
movzx eax, word [edi]
cmp eax, 0x2020
jne 0x59133c
nop
lea ecx, [edi + 2]
mov dword [esp + 0x10], ecx
movzx eax, word [edi + 2]
cmp eax, 0x2020
jne 0x59133a
lea ecx, [edi + 4]
mov dword [esp + 0x10], ecx
movzx eax, word [edi + 4]
cmp eax, 0x2020
jne 0x59133a
lea ecx, [edi + 6]
mov dword [esp + 0x10], ecx
movzx eax, word [edi + 6]
cmp eax, 0x2020
jne 0x59133a
lea ecx, [edi + 8]
mov dword [esp + 0x10], ecx
movzx eax, word [edi + 8]
cmp eax, 0x2020
jne 0x59133a
lea ecx, [edi + 0xa]
mov dword [esp + 0x10], ecx
movzx eax, word [edi + 0xa]
cmp eax, 0x2020
jne 0x59133a
lea ecx, [edi + 0xc]
mov dword [esp + 0x10], ecx
movzx eax, word [edi + 0xc]
cmp eax, 0x2020
jne 0x59133a
lea ecx, [edi + 0xe]
mov dword [esp + 0x10], ecx
movzx eax, word [edi + 0xe]
cmp eax, 0x2020
jne 0x59133a
lea ecx, [edi + 0x10]
mov dword [esp + 0x10], ecx
movzx eax, word [edi + 0x10]
cmp eax, 0x2020
jne 0x59133a
lea ecx, [edi + 0x12]
mov dword [esp + 0x10], ecx
movzx eax, word [edi + 0x12]
cmp eax, 0x2020
jne 0x59133a
lea ecx, [edi + 0x14]
mov dword [esp + 0x10], ecx
movzx eax, word [edi + 0x14]
cmp eax, 0x2020
jne 0x59133a
lea ecx, [edi + 0x16]
mov dword [esp + 0x10], ecx
movzx eax, word [edi + 0x16]
cmp eax, 0x2020
jne 0x59133a
lea ecx, [edi + 0x18]
mov dword [esp + 0x10], ecx
movzx eax, word [edi + 0x18]
cmp eax, 0x2020
jne 0x59133a
lea ecx, [edi + 0x1a]
mov dword [esp + 0x10], ecx
movzx eax, word [edi + 0x1a]
cmp eax, 0x2020
jne 0x59133a
lea ecx, [edi + 0x1c]
mov dword [esp + 0x10], ecx
movzx eax, word [edi + 0x1c]
cmp eax, 0x2020
jne 0x59133a
lea ecx, [edi + 0x1e]
mov dword [esp + 0x10], ecx
movzx eax, word [edi + 0x1e]
cmp eax, 0x2020
jne 0x59133a
lea ecx, [edi + 0x20]
mov dword [esp + 0x10], ecx
movzx eax, word [edi + 0x20]
mov edi, ecx
cmp eax, 0x2020
je 0x5911f0
mov edi, ecx
cmp al, 0x22
je 0x5913a2
mov dword [esp + 0x44], ebx
mov ebx, edx
cmp al, 0x7d
je 0x592624
movzx eax, al
test byte [eax + 0x5ffc78], 1
jne 0x59137a
mov eax, dword [ebp + 0x10]
test al, 8
je case.default.0x595d2a
mov ecx, esi
call fcn.0059a490
test al, al
je 0x59a0a4
mov edi, dword [esp + 0x10]
jmp 0x591393
add edi, 1
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
add edi, 1
test byte [eax + 0x5ffc78], 1
jne 0x59137d
add edi, 0xffffffff
mov ecx, dword [esp + 0x14]
mov edx, ebx
mov ebx, dword [esp + 0x44]
jmp 0x5911dd
add ebx, 0x10
cmp ebx, dword [esp + 0x84]
jae 0x592643
mov dword [esp + 0x2c], ebx
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x40]
add eax, 1
mov dword [esp + 0x30], eax
add edi, 1
mov ecx, edi
movzx eax, byte [ecx]
test byte [eax + 0x5ffc78], 0xc
jne 0x5915fe
add ecx, 8
mov ebx, ecx
nop
movzx eax, byte [ebx - 7]
test byte [eax + 0x5ffc78], 0xc
jne 0x5914e3
movzx eax, byte [ebx - 6]
test byte [eax + 0x5ffc78], 0xc
jne 0x5914e8
movzx eax, byte [ebx - 5]
test byte [eax + 0x5ffc78], 0xc
jne 0x5914ed
movzx eax, byte [ebx - 4]
test byte [eax + 0x5ffc78], 0xc
jne 0x5914f2
movzx eax, byte [ebx - 3]
test byte [eax + 0x5ffc78], 0xc
jne 0x5914f7
movzx eax, byte [ebx - 2]
test byte [eax + 0x5ffc78], 0xc
jne 0x5914fc
movzx eax, byte [ebx - 1]
test byte [eax + 0x5ffc78], 0xc
jne 0x591501
movzx eax, byte [ebx]
test byte [eax + 0x5ffc78], 0xc
jne 0x591527
movzx eax, byte [ebx + 1]
test byte [eax + 0x5ffc78], 0xc
jne 0x591506
movzx eax, byte [ebx + 2]
test byte [eax + 0x5ffc78], 0xc
jne 0x59150b
movzx eax, byte [ebx + 3]
test byte [eax + 0x5ffc78], 0xc
jne 0x591510
movzx eax, byte [ebx + 4]
test byte [eax + 0x5ffc78], 0xc
jne 0x591515
movzx eax, byte [ebx + 5]
test byte [eax + 0x5ffc78], 0xc
jne 0x59151a
movzx eax, byte [ebx + 6]
test byte [eax + 0x5ffc78], 0xc
jne 0x59151f
movzx eax, byte [ebx + 7]
test byte [eax + 0x5ffc78], 0xc
jne 0x591524
movzx eax, byte [ebx + 8]
add ebx, 0x10
test byte [eax + 0x5ffc78], 0xc
je 0x5913e0
add ebx, 0xfffffff8
jmp 0x591527
add ebx, 0xfffffff9
jmp 0x591527
add ebx, 0xfffffffa
jmp 0x591527
add ebx, 0xfffffffb
jmp 0x591527
add ebx, 0xfffffffc
jmp 0x591527
add ebx, 0xfffffffd
jmp 0x591527
add ebx, 0xfffffffe
jmp 0x591527
add ebx, 0xffffffff
jmp 0x591527
add ebx, 1
jmp 0x591527
add ebx, 2
jmp 0x591527
add ebx, 3
jmp 0x591527
add ebx, 4
jmp 0x591527
add ebx, 5
jmp 0x591527
add ebx, 6
jmp 0x591527
add ebx, 7
mov ecx, 0xd
cmp al, 0x22
je 0x591645
mov dword [esp + 0x44], 0
test al, al
jns 0x592730
test dword [ebp + 0x10], 0x40000000
jne 0x591605
mov eax, dword [ebx]
mov edx, eax
and edx, 0xc0c0f0
mov ecx, ebx
cmp edx, 0x8080e0
jne 0x59158d
mov edx, eax
and edx, 0x200f
je 0x59158d
cmp edx, 0x200d
je 0x59158d
mov eax, dword [ecx + 3]
add ecx, 3
mov edx, eax
and edx, 0xc0c0f0
cmp edx, 0x8080e0
je 0x591565
test al, al
jns 0x5913ca
jmp 0x59159d
mov eax, dword [ecx + 2]
add ecx, 2
mov edx, eax
and edx, 0xc0e0
cmp edx, 0x80c0
jne 0x5915bc
mov edx, eax
and edx, 0x1e
jne 0x591597
jmp 0x5915bc
mov eax, dword [ecx + 4]
add ecx, 4
mov edx, eax
and edx, 0xc0c0c0f8
cmp edx, 0x808080f0
jne 0x5915e1
mov edx, eax
and edx, 0x3007
je 0x5915e1
test al, 4
je 0x5915b6
and eax, 0x3003
je 0x5915b6
cmp ebx, ecx
jne 0x5913ca
mov eax, dword [ebp + 0x10]
test al, 0x40
je 0x5998d9
add ebx, 1
mov ecx, ebx
jmp 0x5913ca
mov ebx, ecx
jmp 0x591527
mov ecx, eax
add cl, 0x7f
cmp cl, 0x7d
ja 0x59162f
add ebx, 1
cmp byte [ebx], 0
je 0x596fbc
movzx eax, byte [ebx + 1]
mov ecx, eax
add cl, 0x7f
add ebx, 2
cmp cl, 0x7e
jb 0x591612
add ebx, 0xffffffff
mov ecx, ebx
cmp al, 0xff
je 0x59163d
cmp al, 0x80
jne 0x5913ca
add ecx, 1
jmp 0x5913ca
mov dword [esp + 0x44], 0
mov esi, ebx
mov eax, esi
sub eax, edi
mov edx, eax
sar edx, 0x1f
shld edx, eax, 8
or edx, dword [esp + 0x44]
shl eax, 8
or eax, ecx
mov ecx, dword [esp + 0x2c]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [ecx + 8], edi
mov byte [esi], 0
lea edi, [ebx + 1]
mov dword [esp + 0x10], edi
movzx eax, word [ebx + 1]
cmp eax, 0x203a
jne 0x591935
mov edx, dword [esp + 0xc]
add edi, 2
mov dword [esp + 0x10], edi
mov bl, byte [edi]
cmp bl, 0x22
jne 0x591a8f
lea eax, [ecx + 0x10]
mov dword [esp + 0x44], eax
add dword [esp + 0x40], 2
add edi, 1
mov ecx, edi
movzx eax, byte [ecx]
test byte [eax + 0x5ffc78], 0xc
jne 0x5918ee
add ecx, 8
mov ebx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [ebx - 7]
test byte [eax + 0x5ffc78], 0xc
jne 0x5917d3
movzx eax, byte [ebx - 6]
test byte [eax + 0x5ffc78], 0xc
jne 0x5917d8
movzx eax, byte [ebx - 5]
test byte [eax + 0x5ffc78], 0xc
jne 0x5917dd
movzx eax, byte [ebx - 4]
test byte [eax + 0x5ffc78], 0xc
jne 0x5917e2
movzx eax, byte [ebx - 3]
test byte [eax + 0x5ffc78], 0xc
jne 0x5917e7
movzx eax, byte [ebx - 2]
test byte [eax + 0x5ffc78], 0xc
jne 0x5917ec
movzx eax, byte [ebx - 1]
test byte [eax + 0x5ffc78], 0xc
jne 0x5917f1
movzx eax, byte [ebx]
test byte [eax + 0x5ffc78], 0xc
jne 0x591817
movzx eax, byte [ebx + 1]
test byte [eax + 0x5ffc78], 0xc
jne 0x5917f6
movzx eax, byte [ebx + 2]
test byte [eax + 0x5ffc78], 0xc
jne 0x5917fb
movzx eax, byte [ebx + 3]
test byte [eax + 0x5ffc78], 0xc
jne 0x591800
movzx eax, byte [ebx + 4]
test byte [eax + 0x5ffc78], 0xc
jne 0x591805
movzx eax, byte [ebx + 5]
test byte [eax + 0x5ffc78], 0xc
jne 0x59180a
movzx eax, byte [ebx + 6]
test byte [eax + 0x5ffc78], 0xc
jne 0x59180f
movzx eax, byte [ebx + 7]
test byte [eax + 0x5ffc78], 0xc
jne 0x591814
movzx eax, byte [ebx + 8]
add ebx, 0x10
test byte [eax + 0x5ffc78], 0xc
je 0x5916d0
add ebx, 0xfffffff8
jmp 0x591817
add ebx, 0xfffffff9
jmp 0x591817
add ebx, 0xfffffffa
jmp 0x591817
add ebx, 0xfffffffb
jmp 0x591817
add ebx, 0xfffffffc
jmp 0x591817
add ebx, 0xfffffffd
jmp 0x591817
add ebx, 0xfffffffe
jmp 0x591817
add ebx, 0xffffffff
jmp 0x591817
add ebx, 1
jmp 0x591817
add ebx, 2
jmp 0x591817
add ebx, 3
jmp 0x591817
add ebx, 4
jmp 0x591817
add ebx, 5
jmp 0x591817
add ebx, 6
jmp 0x591817
add ebx, 7
mov ecx, 0xd
cmp al, 0x22
je 0x5919b5
mov dword [esp + 0x30], 0
test al, al
jns 0x593335
test dword [ebp + 0x10], 0x40000000
jne 0x5918f5
mov eax, dword [ebx]
mov edx, eax
and edx, 0xc0c0f0
mov ecx, ebx
cmp edx, 0x8080e0
jne 0x59187d
mov edx, eax
and edx, 0x200f
je 0x59187d
cmp edx, 0x200d
je 0x59187d
mov eax, dword [ecx + 3]
add ecx, 3
mov edx, eax
and edx, 0xc0c0f0
cmp edx, 0x8080e0
je 0x591855
test al, al
jns 0x5916b1
jmp 0x59188d
mov eax, dword [ecx + 2]
add ecx, 2
mov edx, eax
and edx, 0xc0e0
cmp edx, 0x80c0
jne 0x5918ac
mov edx, eax
and edx, 0x1e
jne 0x591887
jmp 0x5918ac
mov eax, dword [ecx + 4]
add ecx, 4
mov edx, eax
and edx, 0xc0c0c0f8
cmp edx, 0x808080f0
jne 0x5918d1
mov edx, eax
and edx, 0x3007
je 0x5918d1
test al, 4
je 0x5918a6
and eax, 0x3003
je 0x5918a6
cmp ebx, ecx
jne 0x5916b1
mov eax, dword [ebp + 0x10]
test al, 0x40
je 0x5998d9
add ebx, 1
mov ecx, ebx
jmp 0x5916b1
mov ebx, ecx
jmp 0x591817
mov ecx, eax
add cl, 0x7f
cmp cl, 0x7d
ja 0x59191f
add ebx, 1
cmp byte [ebx], 0
je 0x596fbc
movzx eax, byte [ebx + 1]
mov ecx, eax
add cl, 0x7f
add ebx, 2
cmp cl, 0x7e
jb 0x591902
add ebx, 0xffffffff
mov ecx, ebx
cmp al, 0xff
je 0x59192d
cmp al, 0x80
jne 0x5916b1
add ecx, 1
jmp 0x5916b1
lea esi, [esp + 0x10]
mov ebx, dword [esp + 0x4c]
mov edx, dword [esp + 0xc]
cmp al, 0x3a
je 0x591b59
movzx eax, al
test byte [eax + 0x5ffc78], 1
jne 0x591981
mov eax, dword [ebp + 0x10]
test al, 8
je case.0x595d2a.182
mov ecx, esi
call fcn.0059a490
test al, al
je 0x59a0a4
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x4c]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x2c]
jmp 0x5919a6
add edi, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
add edi, 1
test byte [eax + 0x5ffc78], 1
jne 0x591990
add edi, 0xffffffff
movzx eax, word [edi]
cmp eax, 0x203a
jne 0x591941
jmp 0x59168e
mov dword [esp + 0x30], 0
mov esi, ebx
mov eax, esi
sub eax, edi
mov edx, eax
sar edx, 0x1f
shld edx, eax, 8
or edx, dword [esp + 0x30]
shl eax, 8
or eax, ecx
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
mov dword [ecx + 0x18], edi
mov byte [esi], 0
add ebx, 1
mov dword [esp + 0x10], ebx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
movzx eax, word [edi]
cmp eax, 0xa2c
mov ebx, dword [esp + 0x44]
jne 0x591a12
add edi, 2
mov dword [esp + 0x10], edi
jmp 0x5911d9
lea esi, [esp + 0x10]
cmp al, 0x2c
je 0x591a83
mov ebx, edx
mov dword [esp + 0x14], ecx
cmp al, 0x7d
je 0x5926be
movzx eax, al
test byte [eax + 0x5ffc78], 1
jne 0x591a54
mov eax, dword [ebp + 0x10]
test al, 8
je case.default.0x595d2a
mov ecx, esi
call fcn.0059a490
test al, al
je 0x59a0a4
mov edi, dword [esp + 0x10]
jmp 0x591a6d
add edi, 1
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
add edi, 1
test byte [eax + 0x5ffc78], 1
jne 0x591a57
add edi, 0xffffffff
movzx eax, word [edi]
cmp eax, 0xa2c
mov ecx, dword [esp + 0x14]
mov edx, ebx
mov ebx, dword [esp + 0x44]
jne 0x591a16
jmp 0x591a06
add edi, 1
mov dword [esp + 0x10], edi
jmp 0x5911d9
lea esi, [esp + 0x10]
movzx eax, bl
mov al, byte [eax + 0x5ffc78]
test al, 2
jne 0x591b61
mov ecx, ebx
add cl, 0xa5
cmp cl, 0x20
ja case.0x591ab1.164
movzx ecx, cl
jmp dword [ecx*4 + 0x603d6c]
test al, 1
jne 0x591ae6
mov eax, dword [ebp + 0x10]
test al, 0x10
jne 0x591b14
test al, 8
je case.default.0x595d2a
mov ecx, esi
call fcn.0059a490
test al, al
je 0x59a0a4
mov edi, dword [esp + 0x10]
mov bl, byte [edi]
mov edx, dword [esp + 0xc]
jmp 0x591b06
add edi, 1
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x10], edi
movzx ebx, byte [edi]
add edi, 1
test byte [ebx + 0x5ffc78], 1
jne 0x591af0
add edi, 0xffffffff
mov ecx, dword [esp + 0x2c]
cmp bl, 0x22
jne 0x591a93
jmp 0x5916a0
cmp bl, 0x49
je 0x591b23
cmp bl, 0x69
je 0x591b23
cmp bl, 0x4e
jne 0x591ac3
mov eax, dword [esp + 0x2c]
add eax, 0x10
mov dword [esp + 0x44], eax
add dword [esp + 0x40], 2
mov edx, ebx
cmp bl, 0x49
je 0x593293
mov eax, edx
cmp al, 0x69
je 0x593293
cmp dl, 0x4e
jne case.default.0x595d2a
mov al, byte [edi + 1]
jmp 0x593a59
add edi, 1
jmp 0x591691
lea eax, [ecx + 0x10]
mov dword [esp + 0x44], eax
add dword [esp + 0x40], 2
mov dword [esp + 0x98], 0
mov eax, dword [ebp + 0x10]
test al, al
js 0x591b8a
cmp dword [esp + 0x3c], 0
jne 0x593a1b
xor eax, eax
cmp bl, 0x2d
sete al
lea ecx, [edi + eax]
movzx eax, byte [edi + eax]
test byte [eax + 0x5ffe78], 2
mov dword [esp + 0x30], ecx
je 0x592da8
add eax, 0xffffffd0
movzx edx, byte [ecx + 1]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x592e01
mov ecx, 0xa
imul ecx
add eax, esi
adc edx, 0
mov ecx, edx
mov edx, dword [esp + 0x30]
movzx edx, byte [edx + 2]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x592e62
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x30]
movzx edx, byte [ecx + 3]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x592e9e
mov ecx, 0xa
mul ecx
mov ecx, dword [esp + 4]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov edx, dword [esp + 0x30]
movzx edx, byte [edx + 4]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x592ed6
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x30]
movzx edx, byte [ecx + 5]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x592f12
mov ecx, 0xa
mul ecx
mov ecx, dword [esp + 4]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov edx, dword [esp + 0x30]
movzx edx, byte [edx + 6]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x592f4a
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x30]
movzx edx, byte [ecx + 7]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x592f86
mov ecx, 0xa
mul ecx
mov ecx, dword [esp + 4]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov edx, dword [esp + 0x30]
movzx edx, byte [edx + 8]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x592fbe
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x30]
movzx edx, byte [ecx + 9]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x592ffa
mov ecx, 0xa
mul ecx
mov ecx, dword [esp + 4]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov edx, dword [esp + 0x30]
movzx edx, byte [edx + 0xa]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x593032
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x30]
movzx edx, byte [ecx + 0xb]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x59306e
mov ecx, 0xa
mul ecx
mov ecx, dword [esp + 4]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov edx, dword [esp + 0x30]
movzx edx, byte [edx + 0xc]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x5930a6
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x30]
movzx edx, byte [ecx + 0xd]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x5930e2
mov ecx, 0xa
mul ecx
mov ecx, dword [esp + 4]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov edx, dword [esp + 0x30]
movzx edx, byte [edx + 0xe]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x59311a
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x30]
movzx edx, byte [ecx + 0xf]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x593156
mov ecx, 0xa
mul ecx
mov ecx, dword [esp + 4]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov edx, dword [esp + 0x30]
movzx edx, byte [edx + 0x10]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x59318e
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x30]
movzx edx, byte [ecx + 0x11]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x5931c6
mov ecx, 0xa
mul ecx
mov ecx, dword [esp + 4]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, esi
adc ecx, edx
mov esi, ecx
mov ecx, dword [esp + 0x30]
movzx edx, byte [ecx + 0x12]
lea ecx, [edx - 0x30]
cmp ecx, 9
ja 0x5931fa
mov edx, 0xa
mul edx
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov ecx, dword [esp + 0x30]
mov al, byte [ecx + 0x13]
add ecx, 0x13
mov dword [esp + 0x30], ecx
movzx ecx, al
mov dl, byte [ecx + 0x5ffe78]
test dl, 0x33
je 0x591f9c
mov dword [esp + 0x1c], eax
test dl, 3
je 0x591eb3
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + 1]
test byte [eax + 0x5ffe78], 0x33
je 0x59208b
test dl, 0x20
jne 0x592022
cmp byte [esp + 0x1c], 0x2e
mov dword [esp + 4], esi
jne 0x59214a
mov eax, dword [esp + 0x30]
lea ecx, [eax + 1]
movzx eax, byte [eax + 1]
test byte [eax + 0x5ffe78], 3
je 0x59271f
mov dword [esp + 0x1c], eax
jmp 0x592156
mov eax, dword [esp + 0x2c]
lea ecx, [eax + 0x10]
add dword [esp + 0x40], 2
mov eax, dword [edi]
cmp eax, 0x6c6c756e
mov dword [esp + 0x44], ecx
jne 0x59325e
mov dword [ecx + 4], 0
mov dword [ecx], 2
add edi, 4
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x14]
jmp 0x5919f4
cmp dword [edi], 0x65757274
jne 0x5977dc
mov eax, dword [esp + 0x2c]
add eax, 0x10
add dword [esp + 0x40], 2
mov dword [eax + 4], 0
mov dword [eax], 0xb
add edi, 4
jmp 0x591f8b
mov ebx, dword [esp + 0x2c]
jmp 0x595e4f
mov ebx, dword [esp + 0x2c]
jmp 0x595dd0
cmp dword [edi + 1], 0x65736c61
jne 0x5977dc
mov eax, dword [esp + 0x2c]
add eax, 0x10
add dword [esp + 0x40], 2
mov dword [eax + 4], 0
mov dword [eax], 3
add edi, 5
mov dword [esp + 0x10], edi
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x14]
jmp 0x5919f4
cmp bl, 0x2d
mov edx, dword [esp + 8]
jne 0x592049
mov eax, SysReAllocString
mov ecx, edx
neg ecx
sbb eax, esi
jae 0x592049
mov eax, dword [ebp + 0x10]
test al, al
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x2c]
js 0x593f5f
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0x14
mov ecx, dword [esp + 8]
mov dword [esp + 0x508], ecx
mov dword [esp + 0x50c], esi
shr esi, 0x1f
fild qword [esp + 0x508]
fadd dword [esi*4 + 0x5ffc50]
fstp qword [esp + 0x548]
fld qword [esp + 0x548]
fchs
fstp qword [eax + 0x18]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x14]
jmp 0x5919f4
xor edx, edx
mov eax, dword [esp + 0x30]
mov dword [esp + 0x20], eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x50], 0
jmp 0x592289
xor eax, eax
mov ecx, edx
neg ecx
sbb eax, esi
xor edx, edx
mov edi, esi
mov esi, dword [esp + 0x2c]
mov dword [esi + 0x14], 0
cmp bl, 0x2d
sete dl
lea edx, [edx*8 + 4]
mov dword [esi + 0x10], edx
je 0x592078
mov eax, edi
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x2c]
mov dword [edx + 0x18], ecx
mov dword [edx + 0x1c], eax
mov eax, dword [esp + 0x30]
jmp 0x59261b
add ecx, 0xffffffd0
cmp dword [esp + 8], 0x99999999
mov eax, esi
sbb eax, 0x19999999
jb 0x5920ca
mov eax, 0x19999999
mov dword [esp + 4], esi
mov esi, 0x99999999
xor esi, dword [esp + 8]
xor eax, dword [esp + 4]
or eax, esi
mov esi, dword [esp + 4]
jne 0x591eb3
cmp ecx, 5
ja 0x591eb3
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
add dword [esp + 0x30], 1
lea esi, [esi + esi*4]
lea edx, [edx + esi*2]
mov esi, ecx
sar esi, 0x1f
add eax, ecx
adc edx, esi
cmp bl, 0x2d
jne 0x5921ef
mov ecx, dword [ebp + 0x10]
test cl, cl
js 0x593f5f
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0x14
mov dword [esp + 0x510], eax
mov dword [esp + 0x514], edx
shr edx, 0x1f
fild qword [esp + 0x510]
fadd dword [edx*4 + 0x5ffc50]
fstp qword [esp + 0x550]
fld qword [esp + 0x550]
fchs
fstp qword [ecx + 0x18]
mov eax, dword [esp + 0x30]
jmp 0x59261b
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x30], 0
lea edx, [ecx + 1]
mov dword [esp + 0x18], ecx
sub ecx, edi
movzx esi, byte [edx]
movzx eax, byte [esi + 0x5ffe78]
add edx, 1
add ecx, 1
test al, 3
jne 0x59215f
mov dword [esp + 0x34], esi
mov byte [esp + 0x38], al
xor eax, eax
cmp byte [esp + 0x1c], 0x34
seta al
add dword [esp + 8], eax
mov esi, dword [esp + 4]
adc esi, 0
lea eax, [edx - 1]
cmp dword [esp + 0x30], 0
je 0x59219e
mov ecx, eax
jmp 0x592216
mov dword [esp + 0x20], edx
mov edx, dword [ebp + 0x10]
test dl, dl
jns 0x5921b6
mov dh, byte [esp + 0x38]
and dh, 0x30
je 0x5944b2
cmp byte [esp + 0x34], 0x2e
jne 0x592210
mov edx, eax
mov ecx, dword [esp + 0x20]
movzx eax, byte [ecx]
test byte [eax + 0x5ffe78], 3
je 0x59271f
movzx eax, byte [ecx + 1]
add ecx, 1
movzx eax, byte [eax + 0x5ffe78]
test al, 3
jne 0x5921d3
mov byte [esp + 0x38], al
mov dword [esp + 0x30], edx
jmp 0x592216
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 4
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], edx
mov eax, dword [esp + 0x30]
jmp 0x59261b
mov ecx, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x20], ecx
lea eax, [ecx - 1]
jmp 0x592222
add eax, 0xffffffff
movzx ecx, byte [eax]
cmp cl, 0x30
je 0x59221f
cmp cl, 0x2e
je 0x59221f
mov dword [esp + 4], esi
xor ecx, ecx
mov esi, dword [esp + 0x30]
sub esi, dword [esp + 0x18]
setb cl
mov edx, esi
sar edx, 0x1f
add ecx, esi
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
adc edx, 0
mov dword [esp + 0x34], edx
mov dword [esp + 0x74], 0
mov dword [esp + 0x50], 0
cmp eax, ecx
jb 0x592276
mov eax, dword [esp + 0x20]
mov dword [esp + 0x74], eax
mov dword [esp + 0x50], ecx
test byte [esp + 0x38], 0x20
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 4]
je 0x592359
mov ecx, edx
mov edx, dword [esp + 0x20]
movzx eax, byte [edx + 1]
add edx, 1
mov dword [esp + 0x38], eax
mov al, byte [eax + 0x5ffe78]
and al, 0xc
cmp al, 1
mov eax, edx
sbb eax, 0xffffffff
movzx edx, byte [eax]
test byte [edx + 0x5ffe78], 3
je 0x59791b
cmp dl, 0x30
mov dword [esp + 4], esi
mov dword [esp + 0x1c], ecx
jne 0x5922e9
movzx edx, byte [eax + 1]
add eax, 1
cmp edx, 0x30
je 0x5922c6
mov dword [esp + 0x18], eax
test byte [edx + 0x5ffe78], 3
jne 0x5922ed
xor eax, eax
mov edx, dword [esp + 0x18]
xor ecx, ecx
jmp 0x592325
mov dword [esp + 0x18], eax
mov dword [esp + 0x5c], ebx
xor eax, eax
xor ecx, ecx
mov esi, dword [esp + 0x18]
add dl, 0xd0
movzx ebx, dl
mov edx, 0xa
mul edx
add ecx, ecx
add eax, ebx
lea ecx, [ecx + ecx*4]
adc ecx, edx
movzx edx, byte [esi + 1]
add esi, 1
test byte [edx + 0x5ffe78], 3
jne 0x5922f9
mov edx, esi
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x20], edx
sub edx, dword [esp + 0x18]
cmp edx, 0x13
jge 0x593aab
xor edx, edx
mov esi, eax
neg esi
sbb edx, ecx
cmp byte [esp + 0x38], 0x2d
je 0x592349
mov edx, ecx
mov esi, eax
mov eax, dword [esp + 0x1c]
add eax, esi
adc dword [esp + 0x34], edx
mov edx, eax
mov esi, dword [esp + 4]
mov eax, 0xfffffea8
cmp eax, edx
mov eax, 0xffffffff
mov ecx, dword [esp + 0x34]
sbb eax, ecx
jge 0x593ab6
cmp edx, 0x135
sbb ecx, 0
jge 0x5939ad
mov dword [esp + 0x98], edx
lea eax, [edx + 0x132]
cmp eax, 0x251
mov dword [esp + 4], esi
ja 0x5939ff
cmp dword [esp + 0x50], 0
jne 0x5939ff
mov eax, edx
shl eax, 4
mov dword [esp + 0x58], eax
test esi, esi
mov eax, esi
mov esi, edx
jne 0x5923c9
mov edx, eax
mov eax, dword [esp + 8]
bsr ecx, eax
xor ecx, 0x1f
add ecx, 0x20
jmp 0x5923d5
bsr ecx, eax
xor ecx, 0x1f
mov edx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x34]
shld edx, eax, cl
imul ecx, esi, 0x3526a
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x34]
shl eax, cl
mov ecx, eax
mov esi, dword [esp + 0x58]
mov eax, dword [esi + 0x6014ec]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x6014e8]
mov dword [esp + 0x38], eax
test byte [esp + 0x34], 0x20
jne 0x59241f
mov dword [esp + 0x48], 0
mov dword [esp + 0x5c], edx
jmp 0x59242d
mov dword [esp + 0x48], 0
mov dword [esp + 0x5c], ecx
xor ecx, ecx
mov dword [esp + 0x78], ecx
mov eax, dword [esp + 0x38]
mul ecx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x1c]
mul ecx
mov esi, eax
mov dword [esp + 0x68], edx
add dword [esp + 0x18], 0xffc10000
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x5c]
mul ecx
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x1c]
mul ecx
add esi, dword [esp + 0x6c]
adc eax, dword [esp + 0x68]
adc edx, 0
add esi, dword [esp + 0x64]
mov dword [esp + 0x64], esi
adc eax, dword [esp + 0x60]
adc edx, 0
mov dword [esp + 0x6c], eax
and eax, 0x1ff
add eax, 0xffffffff
mov ecx, 0
adc ecx, 0xffffffff
cmp eax, 0x1fe
sbb ecx, 0
jae 0x5924ac
mov esi, dword [esp + 0x6c]
jmp 0x592583
mov dword [esp + 0xc0], edx
mov esi, dword [esp + 0x58]
mov eax, dword [esi + 0x6014f0]
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x78]
mul ecx
mov dword [esp + 0x60], edx
mov esi, dword [esi + 0x6014f4]
mov eax, esi
mul ecx
mov dword [esp + 0x9c], edx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x5c]
mul ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x68], eax
mov dword [esp + 0xb4], esi
mov eax, esi
mov esi, dword [esp + 0x9c]
mul ecx
mov ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x60]
adc esi, 0
add ecx, dword [esp + 0x68]
mov ecx, dword [esp + 0x58]
adc ecx, 0
add esi, eax
adc edx, 0
add esi, ecx
adc edx, 0
mov eax, esi
add eax, dword [esp + 0x7c]
mov dword [esp + 0x58], edx
mov ecx, edx
adc ecx, dword [esp + 0x64]
mov dword [esp + 0x60], eax
mov edx, eax
add edx, 1
mov eax, ecx
adc eax, 0
cmp edx, 2
sbb eax, 0
jb 0x593b7c
mov edx, dword [esp + 0x60]
cmp edx, dword [esp + 0x7c]
mov eax, ecx
sbb eax, dword [esp + 0x64]
setb al
cmp edx, esi
sbb ecx, dword [esp + 0x58]
setb cl
or cl, al
movzx eax, cl
mov esi, dword [esp + 0x6c]
add esi, eax
mov edx, dword [esp + 0xc0]
adc edx, 0
mov edi, dword [esp + 0x18]
shr edi, 0x10
mov ecx, edx
not ecx
shr ecx, 0x1f
shld edx, esi, cl
shl esi, cl
mov eax, edx
mov edx, esi
and edx, 0x400
add edx, esi
adc eax, 0
sub edi, dword [esp + 0x34]
sub edi, ecx
cmp edx, 0x400
mov esi, eax
sbb eax, 0
setb cl
adc edi, 0
mov dword [esp + 0x30], 0
mov eax, 0
test cl, cl
jne 0x5925d7
mov eax, esi
shr eax, 0xb
and eax, 0xfffff
test cl, cl
jne 0x5925e3
shld esi, edx, 0x15
mov dword [esp + 0x30], esi
xor ecx, ecx
cmp bl, 0x2d
sete cl
shl ecx, 0x1f
or eax, ecx
shl edi, 0x14
add edi, 0x47e00000
or eax, edi
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0x14
mov edx, dword [esp + 0x30]
mov dword [ecx + 0x18], edx
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], eax
jmp 0x5919ec
lea esi, [edi + 1]
mov dword [esp + 0x10], esi
cmp dword [esp + 0x40], 0
jne 0x5944df
mov dword [esp + 0x40], 0
jmp 0x5926c7
mov dword [esp + 0x44], ebx
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x28]
mov esi, eax
shr esi, 1
add esi, eax
cmp esi, 0xffffffe
ja 0x589be9
mov edi, esi
shl edi, 4
shl eax, 4
push edi
push eax
push dword [esp + 0x1c]
push dword [esp + 0x8c]
call dword [esp + 0xa0]
add esp, 0x10
test eax, eax
je 0x589be9
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
sub ebx, ecx
add ebx, eax
mov edx, dword [esp + 0xc]
sub edx, ecx
add edx, eax
lea ecx, [edi + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x84], ecx
mov edi, dword [esp + 0x10]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], esi
jmp 0x5913b6
add edi, 1
mov dword [esp + 0x10], edi
mov esi, edi
mov eax, dword [ebx + 8]
mov ecx, dword [esp + 0x44]
sub ecx, ebx
add ecx, 0x10
mov dword [ebx + 8], ecx
mov ecx, dword [esp + 0x40]
shl ecx, 7
or ecx, 7
mov dword [ebx], ecx
mov dword [ebx + 4], 0
test eax, eax
je 0x59a02f
mov edx, ebx
sub edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
cmp byte [esi], 0xa
jne 0x592706
add esi, 1
mov dword [esp + 0x10], esi
shld ecx, eax, 0x18
not eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x40], ecx
test al, 7
mov ebx, dword [esp + 0x4c]
jmp 0x59a020
mov dword [esp + 0x54], str.no_digit_after_decimal_point
mov dword [esp + 0x10], ecx
jmp 0x599829
mov esi, ebx
cmp al, 0x5c
jne 0x592c84
mov al, byte [ebx + 1]
add al, 0xde
cmp al, 0x53
ja case.0x59334f.221
movzx eax, al
jmp dword [eax*4 + 0x603b84]
mov byte [esi], 0x22
jmp 0x592840
mov byte [esi], 0xa
jmp 0x592840
mov byte [esi], 0x2f
jmp 0x592840
mov byte [esi], 8
jmp 0x592840
movzx eax, byte [ebx + 2]
movzx ecx, byte [eax + 0x5ffd78]
movzx eax, byte [ebx + 3]
movzx edx, byte [eax + 0x5ffd78]
movzx eax, byte [ebx + 4]
movzx eax, byte [eax + 0x5ffd78]
mov dword [esp + 4], eax
movzx eax, byte [ebx + 5]
movzx eax, byte [eax + 0x5ffd78]
shl ecx, 8
add ecx, dword [esp + 4]
shl edx, 8
or edx, eax
mov eax, ecx
shl eax, 4
or eax, edx
mov word [esp + 0xc8], ax
or edx, ecx
test edx, 0xf0f0
jne 0x599917
lea ecx, [ebx + 6]
mov dword [esp + 4], ecx
test dword [ebp + 0x10], 0x40000000
jne 0x592c30
mov ecx, eax
and ecx, 0xf800
cmp ecx, 0xd800
je 0x592caf
movzx ecx, ax
cmp ecx, 0x800
jb 0x592c55
shr ecx, 0xc
or cl, 0xe0
mov byte [esi], cl
movzx eax, word [esp + 0xc8]
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [esi + 1], al
mov al, byte [esp + 0xc8]
and al, 0x3f
or al, 0x80
mov byte [esi + 2], al
add esi, 3
jmp 0x59284a
mov byte [esi], 0x5c
jmp 0x592840
mov byte [esi], 0xd
jmp 0x592840
mov byte [esi], 0xc
jmp 0x592840
mov byte [esi], 9
add esi, 1
add ebx, 2
mov dword [esp + 4], ebx
mov edx, dword [esp + 4]
jmp 0x592858
mov byte [esi], al
add esi, 1
add edx, 1
movzx eax, byte [edx]
test byte [eax + 0x5ffc78], 0xc
jne 0x592ac4
movzx eax, byte [edx + 1]
test byte [eax + 0x5ffc78], 0xc
jne 0x592bb7
movzx eax, byte [edx + 2]
test byte [eax + 0x5ffc78], 0xc
jne 0x592990
movzx eax, byte [edx + 3]
test byte [eax + 0x5ffc78], 0xc
jne 0x5929a1
movzx eax, byte [edx + 4]
test byte [eax + 0x5ffc78], 0xc
jne 0x5929b0
movzx eax, byte [edx + 5]
test byte [eax + 0x5ffc78], 0xc
jne 0x5929bf
movzx eax, byte [edx + 6]
test byte [eax + 0x5ffc78], 0xc
jne 0x5929d6
movzx eax, byte [edx + 7]
test byte [eax + 0x5ffc78], 0xc
jne 0x5929ed
movzx eax, byte [edx + 8]
test byte [eax + 0x5ffc78], 0xc
jne 0x592a02
movzx eax, byte [edx + 9]
test byte [eax + 0x5ffc78], 0xc
jne 0x592a17
movzx eax, byte [edx + 0xa]
test byte [eax + 0x5ffc78], 0xc
jne 0x592a34
movzx eax, byte [edx + 0xb]
test byte [eax + 0x5ffc78], 0xc
jne 0x592a4e
movzx eax, byte [edx + 0xc]
test byte [eax + 0x5ffc78], 0xc
jne 0x592a66
movzx eax, byte [edx + 0xd]
test byte [eax + 0x5ffc78], 0xc
jne 0x592a7e
movzx eax, byte [edx + 0xe]
test byte [eax + 0x5ffc78], 0xc
jne 0x592a9e
movzx eax, byte [edx + 0xf]
test byte [eax + 0x5ffc78], 0xc
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov ebx, dword [edx + 0xc]
mov dword [esp + 4], ebx
mov ebx, dword [edx + 8]
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
mov eax, dword [esp + 4]
mov dword [esi + 0xc], eax
jne 0x592abe
add edx, 0x10
add esi, 0x10
jmp 0x592858
movzx eax, word [edx]
add edx, 2
mov word [esi], ax
add esi, 2
jmp 0x592ac4
mov eax, dword [edx]
add edx, 3
mov dword [esi], eax
add esi, 3
jmp 0x592ac4
mov eax, dword [edx]
add edx, 4
mov dword [esi], eax
add esi, 4
jmp 0x592ac4
lea ebx, [edx + 5]
mov eax, dword [edx]
mov dword [esi], eax
movzx eax, word [edx + 4]
mov word [esi + 4], ax
add esi, 5
jmp 0x592ac6
lea ebx, [edx + 6]
mov eax, dword [edx]
mov dword [esi], eax
movzx eax, word [edx + 4]
mov word [esi + 4], ax
add esi, 6
jmp 0x592ac6
lea ebx, [edx + 7]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esi + 4], ecx
mov dword [esi], eax
add esi, 7
jmp 0x592ac6
lea ebx, [edx + 8]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esi + 4], ecx
mov dword [esi], eax
add esi, 8
jmp 0x592ac6
lea ebx, [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 0x592ac6
lea ebx, [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 0x592ac6
lea ebx, [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 0x592ac6
lea ebx, [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 0x592ac6
lea ebx, [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 0x592ac6
lea ebx, [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 0x592ac6
add edx, 0xf
add esi, 0xf
mov ebx, edx
mov al, byte [ebx]
test al, al
jns 0x592732
test dword [ebp + 0x10], 0x40000000
jne 0x592bc8
mov eax, dword [ebx]
mov ecx, eax
and ecx, 0xc0c0f0
mov dword [esp + 4], ebx
cmp ecx, 0x8080e0
jne 0x592b28
mov ecx, eax
and ecx, 0x200f
je 0x592b28
cmp ecx, 0x200d
je 0x592b28
mov dword [esi], eax
add esi, 3
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 3]
add ecx, 3
mov dword [esp + 4], ecx
mov ecx, eax
and ecx, 0xc0c0f0
cmp ecx, 0x8080e0
je 0x592af3
test al, al
mov edx, dword [esp + 4]
jns 0x592858
jmp 0x592b4a
mov word [esi], ax
add esi, 2
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 2]
add ecx, 2
mov dword [esp + 4], ecx
mov ecx, eax
and ecx, 0xc0e0
cmp ecx, 0x80c0
jne 0x592b76
mov ecx, eax
and ecx, 0x1e
jne 0x592b36
jmp 0x592b76
mov dword [esi], eax
add esi, 4
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 4]
add ecx, 4
mov dword [esp + 4], ecx
mov ecx, eax
and ecx, 0xc0c0c0f8
cmp ecx, 0x808080f0
jne 0x592b9e
mov ecx, eax
and ecx, 0x3007
je 0x592b9e
test al, 4
je 0x592b63
mov ecx, eax
and ecx, 0x3003
je 0x592b63
mov edx, dword [esp + 4]
cmp ebx, edx
jne 0x592858
mov eax, dword [ebp + 0x10]
test al, 0x40
je 0x5998d9
mov edx, ebx
movzx eax, word [edx]
mov word [esi], ax
add edx, 1
add esi, 1
jmp 0x592ac4
movzx eax, word [ebx]
movzx ecx, al
cmp ecx, 0x81
jb 0x592c19
movzx ecx, cx
cmp ecx, 0xff
je 0x592c19
add ebx, 1
movzx ecx, ax
cmp ecx, 0xff
jbe 0x596fbc
mov word [esi], ax
add esi, 2
movzx eax, word [ebx + 1]
movzx ecx, al
add ebx, 2
cmp ecx, 0x81
jb 0x592c16
movzx ecx, cx
cmp ecx, 0xff
jne 0x592be4
add ebx, 0xffffffff
cmp al, 0xff
mov edx, ebx
je 0x592850
cmp al, 0x80
je 0x592850
jmp 0x592858
push 0
push 0
push 2
push esi
push 1
lea eax, [esp + 0xdc]
push eax
push 0
push 0x3a8
call dword [sym.imp.kernel32.dll_WideCharToMultiByte_1]
add esi, eax
jmp 0x59284a
cmp ecx, 0x80
jb 0x592c7a
shr eax, 6
or al, 0xc0
mov byte [esi], al
mov al, byte [esp + 0xc8]
and al, 0x3f
or al, 0x80
mov byte [esi + 1], al
add esi, 2
jmp 0x59284a
mov byte [esi], al
add esi, 1
jmp 0x59284a
cmp al, 0x22
je 0x594ec2
mov ecx, dword [ebp + 0x10]
test cl, 0x40
je 0x5998c7
cmp ebx, dword [esp + 0x70]
jae 0x599929
add ebx, 1
mov byte [esi], al
add esi, 1
jmp 0x592846
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x599951
mov ecx, dword [esp + 4]
movzx ecx, word [ecx]
cmp ecx, 0x755c
jne 0x5953fc
movzx ecx, byte [ebx + 8]
movzx edx, byte [ecx + 0x5ffd78]
movzx ecx, byte [ebx + 9]
movzx ecx, byte [ecx + 0x5ffd78]
mov dword [esp + 8], ecx
movzx ecx, byte [ebx + 0xa]
movzx ecx, byte [ecx + 0x5ffd78]
mov dword [esp + 0x1c], ecx
movzx ecx, byte [ebx + 0xb]
movzx ecx, byte [ecx + 0x5ffd78]
mov dword [esp + 0x34], ecx
shl edx, 8
add edx, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
shl ecx, 8
add ecx, dword [esp + 0x34]
mov dword [esp + 8], ecx
or ecx, edx
test ecx, 0xf0f0
jne 0x595412
shl edx, 4
movzx ecx, dx
mov edx, dword [esp + 8]
or edx, ecx
mov dword [esp + 8], edx
mov ecx, edx
and ecx, 0xfc00
cmp ecx, 0xdc00
jne 0x595428
movzx eax, ax
shl eax, 0xa
add eax, 0xfca00000
mov ecx, dword [esp + 8]
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 ebx, 0xc
jmp 0x592846
cmp al, 0x30
jne 0x594ecc
mov eax, dword [esp + 0x30]
movzx ecx, byte [eax + 1]
add eax, 1
mov dword [esp + 0x30], eax
mov al, byte [ecx + 0x5ffe78]
test al, 0x33
jne 0x594eea
xor eax, eax
cmp bl, 0x2d
sete al
lea eax, [eax*8 + 4]
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x18], 0
mov eax, dword [esp + 0x30]
jmp 0x59261b
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x30]
mov eax, ecx
add ecx, 1
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
jne 0x594f28
mov edx, dword [esp + 8]
mov ecx, edx
sar ecx, 0x1f
xor esi, esi
neg edx
sbb esi, ecx
xor eax, eax
mov edi, dword [esp + 0x2c]
mov dword [edi + 0x14], 0
cmp bl, 0x2d
sete al
lea eax, [eax*8 + 4]
mov dword [edi + 0x10], eax
je 0x592e53
mov esi, ecx
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x18], edx
mov dword [eax + 0x1c], esi
jmp 0x592617
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x30]
mov eax, ecx
add ecx, 2
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x59321c
cmp dl, 0x2e
jne 0x5956da
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
jmp 0x594f78
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x30]
mov eax, ecx
add ecx, 3
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x59321c
cmp dl, 0x2e
jne 0x5956da
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
jmp 0x594fb0
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x30]
mov eax, ecx
add ecx, 4
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x59321c
cmp dl, 0x2e
jne 0x5956da
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
jmp 0x594fe8
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x30]
mov eax, ecx
add ecx, 5
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x59321c
cmp dl, 0x2e
jne 0x5956da
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
jmp 0x595020
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x30]
mov eax, ecx
add ecx, 6
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x59321c
cmp dl, 0x2e
jne 0x5956da
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
jmp 0x595058
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x30]
mov eax, ecx
add ecx, 7
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x59321c
cmp dl, 0x2e
jne 0x5956da
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
jmp 0x595090
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x30]
mov eax, ecx
add ecx, 8
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x59321c
cmp dl, 0x2e
jne 0x5956da
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
jmp 0x5950c8
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x30]
mov eax, ecx
add ecx, 9
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x59321c
cmp dl, 0x2e
jne 0x5956da
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
jmp 0x595100
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x30]
mov eax, ecx
add ecx, 0xa
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x59321c
cmp dl, 0x2e
jne 0x5956da
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
jmp 0x595138
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x30]
mov eax, ecx
add ecx, 0xb
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x59321c
cmp dl, 0x2e
jne 0x5956da
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
jmp 0x595170
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x30]
mov eax, ecx
add ecx, 0xc
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x59321c
cmp dl, 0x2e
jne 0x5956da
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
jmp 0x5951a8
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x30]
mov eax, ecx
add ecx, 0xd
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x59321c
cmp dl, 0x2e
jne 0x5956da
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
jmp 0x5951e0
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x30]
mov eax, ecx
add ecx, 0xe
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x59321c
cmp dl, 0x2e
jne 0x5956da
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
jmp 0x595218
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x30]
mov eax, ecx
add ecx, 0xf
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x59321c
cmp dl, 0x2e
jne 0x5956da
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
jmp 0x595250
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x30]
mov eax, ecx
add ecx, 0x10
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x59321c
cmp dl, 0x2e
jne 0x5956da
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
jmp 0x595288
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x30]
mov eax, ecx
add ecx, 0x11
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x59321c
cmp dl, 0x2e
jne 0x5956da
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
jmp 0x5952c0
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov ecx, dword [esp + 0x30]
mov eax, ecx
add ecx, 0x12
mov dword [esp + 0x20], ecx
test byte [edx + 0x5ffe78], 0x30
jne 0x5953c2
xor eax, eax
mov ecx, dword [esp + 8]
neg ecx
sbb eax, dword [esp + 4]
xor edx, edx
mov esi, dword [esp + 0x2c]
mov dword [esi + 0x14], 0
cmp bl, 0x2d
sete dl
lea edx, [edx*8 + 4]
mov dword [esi + 0x10], edx
je 0x59324f
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x2c]
mov dword [edx + 0x18], ecx
mov dword [edx + 0x1c], eax
jmp 0x592617
mov ecx, dword [ebp + 0x10]
test cl, 0x10
je 0x5977dc
or al, 0x20
cmp al, 0x6e
jne 0x5977dc
mov al, byte [edi + 1]
or al, 0x20
cmp al, 0x61
jne 0x5977dc
mov al, byte [edi + 2]
or al, 0x20
cmp al, 0x6e
je 0x593a70
jmp 0x5977dc
mov al, byte [edi + 1]
mov ecx, eax
or cl, 0x20
cmp cl, 0x6e
jne 0x593a50
mov cl, byte [edi + 2]
or cl, 0x20
cmp cl, 0x66
jne 0x593a50
lea eax, [edi + 3]
mov cl, byte [edi + 3]
or cl, 0x20
cmp cl, 0x69
jne 0x5932f0
mov cl, byte [edi + 4]
or cl, 0x20
cmp cl, 0x6e
jne 0x5932f0
mov cl, byte [edi + 5]
or cl, 0x20
cmp cl, 0x69
jne 0x5932f0
mov cl, byte [edi + 6]
or cl, 0x20
cmp cl, 0x74
jne 0x5932f0
mov cl, byte [edi + 7]
or cl, 0x20
cmp cl, 0x79
jne 0x5932f0
lea eax, [edi + 8]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x3c], 0
je 0x593f9f
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x59330c
mov byte [ecx], 0
mov ecx, dword [esp + 0x3c]
mov dword [ecx], eax
sub eax, edi
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
shl eax, 8
or eax, 1
mov edx, dword [esp + 0x2c]
mov dword [edx + 0x14], ecx
mov dword [edx + 0x10], eax
mov dword [edx + 0x18], edi
jmp 0x5919ec
mov esi, ebx
cmp al, 0x5c
jne 0x593889
mov al, byte [ebx + 1]
add al, 0xde
cmp al, 0x53
ja case.0x59334f.221
movzx eax, al
jmp dword [eax*4 + 0x603df0]
mov byte [esi], 0x22
jmp 0x593445
mov byte [esi], 0xa
jmp 0x593445
mov byte [esi], 0x2f
jmp 0x593445
mov byte [esi], 8
jmp 0x593445
movzx eax, byte [ebx + 2]
movzx ecx, byte [eax + 0x5ffd78]
movzx eax, byte [ebx + 3]
movzx edx, byte [eax + 0x5ffd78]
movzx eax, byte [ebx + 4]
movzx eax, byte [eax + 0x5ffd78]
mov dword [esp + 4], eax
movzx eax, byte [ebx + 5]
movzx eax, byte [eax + 0x5ffd78]
shl ecx, 8
add ecx, dword [esp + 4]
shl edx, 8
or edx, eax
mov eax, ecx
shl eax, 4
or eax, edx
mov word [esp + 0xc8], ax
or edx, ecx
test edx, 0xf0f0
jne 0x599917
lea ecx, [ebx + 6]
mov dword [esp + 4], ecx
test dword [ebp + 0x10], 0x40000000
jne 0x593835
mov ecx, eax
and ecx, 0xf800
cmp ecx, 0xd800
je 0x5938b4
movzx ecx, ax
cmp ecx, 0x800
jb 0x59385a
shr ecx, 0xc
or cl, 0xe0
mov byte [esi], cl
movzx eax, word [esp + 0xc8]
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [esi + 1], al
mov al, byte [esp + 0xc8]
and al, 0x3f
or al, 0x80
mov byte [esi + 2], al
add esi, 3
jmp 0x59344f
mov byte [esi], 0x5c
jmp 0x593445
mov byte [esi], 0xd
jmp 0x593445
mov byte [esi], 0xc
jmp 0x593445
mov byte [esi], 9
add esi, 1
add ebx, 2
mov dword [esp + 4], ebx
mov edx, dword [esp + 4]
jmp 0x59345d
mov byte [esi], al
add esi, 1
add edx, 1
movzx eax, byte [edx]
test byte [eax + 0x5ffc78], 0xc
jne 0x5936c9
movzx eax, byte [edx + 1]
test byte [eax + 0x5ffc78], 0xc
jne 0x5937bc
movzx eax, byte [edx + 2]
test byte [eax + 0x5ffc78], 0xc
jne 0x593595
movzx eax, byte [edx + 3]
test byte [eax + 0x5ffc78], 0xc
jne 0x5935a6
movzx eax, byte [edx + 4]
test byte [eax + 0x5ffc78], 0xc
jne 0x5935b5
movzx eax, byte [edx + 5]
test byte [eax + 0x5ffc78], 0xc
jne 0x5935c4
movzx eax, byte [edx + 6]
test byte [eax + 0x5ffc78], 0xc
jne 0x5935db
movzx eax, byte [edx + 7]
test byte [eax + 0x5ffc78], 0xc
jne 0x5935f2
movzx eax, byte [edx + 8]
test byte [eax + 0x5ffc78], 0xc
jne 0x593607
movzx eax, byte [edx + 9]
test byte [eax + 0x5ffc78], 0xc
jne 0x59361c
movzx eax, byte [edx + 0xa]
test byte [eax + 0x5ffc78], 0xc
jne 0x593639
movzx eax, byte [edx + 0xb]
test byte [eax + 0x5ffc78], 0xc
jne 0x593653
movzx eax, byte [edx + 0xc]
test byte [eax + 0x5ffc78], 0xc
jne 0x59366b
movzx eax, byte [edx + 0xd]
test byte [eax + 0x5ffc78], 0xc
jne 0x593683
movzx eax, byte [edx + 0xe]
test byte [eax + 0x5ffc78], 0xc
jne 0x5936a3
movzx eax, byte [edx + 0xf]
test byte [eax + 0x5ffc78], 0xc
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov ebx, dword [edx + 0xc]
mov dword [esp + 4], ebx
mov ebx, dword [edx + 8]
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
mov eax, dword [esp + 4]
mov dword [esi + 0xc], eax
jne 0x5936c3
add edx, 0x10
add esi, 0x10
jmp 0x59345d
movzx eax, word [edx]
add edx, 2
mov word [esi], ax
add esi, 2
jmp 0x5936c9
mov eax, dword [edx]
add edx, 3
mov dword [esi], eax
add esi, 3
jmp 0x5936c9
mov eax, dword [edx]
add edx, 4
mov dword [esi], eax
add esi, 4
jmp 0x5936c9
lea ebx, [edx + 5]
mov eax, dword [edx]
mov dword [esi], eax
movzx eax, word [edx + 4]
mov word [esi + 4], ax
add esi, 5
jmp 0x5936cb
lea ebx, [edx + 6]
mov eax, dword [edx]
mov dword [esi], eax
movzx eax, word [edx + 4]
mov word [esi + 4], ax
add esi, 6
jmp 0x5936cb
lea ebx, [edx + 7]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esi + 4], ecx
mov dword [esi], eax
add esi, 7
jmp 0x5936cb
lea ebx, [edx + 8]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esi + 4], ecx
mov dword [esi], eax
add esi, 8
jmp 0x5936cb
lea ebx, [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 0x5936cb
lea ebx, [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 0x5936cb
lea ebx, [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 0x5936cb
lea ebx, [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 0x5936cb
lea ebx, [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 0x5936cb
lea ebx, [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 0x5936cb
add edx, 0xf
add esi, 0xf
mov ebx, edx
mov al, byte [ebx]
test al, al
jns 0x593337
test dword [ebp + 0x10], 0x40000000
jne 0x5937cd
mov eax, dword [ebx]
mov ecx, eax
and ecx, 0xc0c0f0
mov dword [esp + 4], ebx
cmp ecx, 0x8080e0
jne 0x59372d
mov ecx, eax
and ecx, 0x200f
je 0x59372d
cmp ecx, 0x200d
je 0x59372d
mov dword [esi], eax
add esi, 3
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 3]
add ecx, 3
mov dword [esp + 4], ecx
mov ecx, eax
and ecx, 0xc0c0f0
cmp ecx, 0x8080e0
je 0x5936f8
test al, al
mov edx, dword [esp + 4]
jns 0x59345d
jmp 0x59374f
mov word [esi], ax
add esi, 2
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 2]
add ecx, 2
mov dword [esp + 4], ecx
mov ecx, eax
and ecx, 0xc0e0
cmp ecx, 0x80c0
jne 0x59377b
mov ecx, eax
and ecx, 0x1e
jne 0x59373b
jmp 0x59377b
mov dword [esi], eax
add esi, 4
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 4]
add ecx, 4
mov dword [esp + 4], ecx
mov ecx, eax
and ecx, 0xc0c0c0f8
cmp ecx, 0x808080f0
jne 0x5937a3
mov ecx, eax
and ecx, 0x3007
je 0x5937a3
test al, 4
je 0x593768
mov ecx, eax
and ecx, 0x3003
je 0x593768
mov edx, dword [esp + 4]
cmp ebx, edx
jne 0x59345d
mov eax, dword [ebp + 0x10]
test al, 0x40
je 0x5998d9
mov edx, ebx
movzx eax, word [edx]
mov word [esi], ax
add edx, 1
add esi, 1
jmp 0x5936c9
movzx eax, word [ebx]
movzx ecx, al
cmp ecx, 0x81
jb 0x59381e
movzx ecx, cx
cmp ecx, 0xff
je 0x59381e
add ebx, 1
movzx ecx, ax
cmp ecx, 0xff
jbe 0x596fbc
mov word [esi], ax
add esi, 2
movzx eax, word [ebx + 1]
movzx ecx, al
add ebx, 2
cmp ecx, 0x81
jb 0x59381b
movzx ecx, cx
cmp ecx, 0xff
jne 0x5937e9
add ebx, 0xffffffff
cmp al, 0xff
mov edx, ebx
je 0x593455
cmp al, 0x80
je 0x593455
jmp 0x59345d
push 0
push 0
push 2
push esi
push 1
lea eax, [esp + 0xdc]
push eax
push 0
push 0x3a8
call dword [sym.imp.kernel32.dll_WideCharToMultiByte_1]
add esi, eax
jmp 0x59344f
cmp ecx, 0x80
jb 0x59387f
shr eax, 6
or al, 0xc0
mov byte [esi], al
mov al, byte [esp + 0xc8]
and al, 0x3f
or al, 0x80
mov byte [esi + 1], al
add esi, 2
jmp 0x59344f
mov byte [esi], al
add esi, 1
jmp 0x59344f
cmp al, 0x22
je 0x5953dc
mov ecx, dword [ebp + 0x10]
test cl, 0x40
je 0x5998c7
cmp ebx, dword [esp + 0x70]
jae 0x599929
add ebx, 1
mov byte [esi], al
add esi, 1
jmp 0x59344b
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x599951
mov ecx, dword [esp + 4]
movzx ecx, word [ecx]
cmp ecx, 0x755c
jne 0x5953fc
movzx ecx, byte [ebx + 8]
movzx edx, byte [ecx + 0x5ffd78]
movzx ecx, byte [ebx + 9]
movzx ecx, byte [ecx + 0x5ffd78]
mov dword [esp + 8], ecx
movzx ecx, byte [ebx + 0xa]
movzx ecx, byte [ecx + 0x5ffd78]
mov dword [esp + 0x1c], ecx
movzx ecx, byte [ebx + 0xb]
movzx ecx, byte [ecx + 0x5ffd78]
mov dword [esp + 0x34], ecx
shl edx, 8
add edx, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
shl ecx, 8
add ecx, dword [esp + 0x34]
mov dword [esp + 8], ecx
or ecx, edx
test ecx, 0xf0f0
jne 0x595412
shl edx, 4
movzx ecx, dx
mov edx, dword [esp + 8]
or edx, ecx
mov dword [esp + 8], edx
mov ecx, edx
and ecx, 0xfc00
cmp ecx, 0xdc00
jne 0x595428
movzx eax, ax
shl eax, 0xa
add eax, 0xfca00000
mov ecx, dword [esp + 8]
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 ebx, 0xc
jmp 0x59344b
mov edx, dword [esp + 0x20]
mov eax, dword [ebp + 0x10]
test al, al
js 0x5953e6
mov eax, dword [ebp + 0x10]
test al, 0x10
je 0x5979e9
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0x14
mov eax, 0xfff00000
cmp bl, 0x2d
je 0x5939e8
mov eax, 0x7ff00000
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 0x1c], eax
mov dword [ecx + 0x18], 0
mov dword [esp + 0x10], edx
jmp 0x5919ec
mov eax, esi
mov esi, edx
test eax, eax
jne 0x593b07
bsr eax, dword [esp + 8]
xor eax, 0x1f
add eax, 0x20
jmp 0x593b0f
lea eax, [esp + 0x54]
lea ecx, [esp + 0x10]
mov edx, dword [esp + 0x3c]
push eax
push dword [esp + 0x48]
push dword [ebp + 0x10]
call fcn.005a8990
mov edx, dword [esp + 0x18]
add esp, 0xc
test al, al
mov ebx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x14]
jne 0x5919f4
jmp 0x599831
cmp dl, 0x4e
jne case.default.0x595d2a
or al, 0x20
cmp al, 0x61
jne case.default.0x595d2a
mov al, byte [edi + 2]
or al, 0x20
cmp al, 0x6e
jne case.default.0x595d2a
lea eax, [edi + 3]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x3c], 0
je 0x593ae2
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x593a8b
mov byte [ecx], 0
mov ecx, dword [esp + 0x3c]
mov dword [ecx], eax
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0x301
mov dword [eax + 0x18], edi
jmp 0x5919ec
cmp byte [esp + 0x38], 0x2d
jne 0x593f1f
xor eax, eax
cmp bl, 0x2d
sete al
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0x14
shl eax, 0x1f
mov dword [ecx + 0x1c], eax
mov dword [ecx + 0x18], 0
jmp 0x592617
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0x14
mov dword [eax + 0x1c], 0x7ff80000
mov dword [eax + 0x18], 0
jmp 0x5919ec
bsr eax, dword [esp + 4]
xor eax, 0x1f
mov dword [esp + 0x34], eax
mov dword [esp + 0x48], 0
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 8]
shld edx, eax, cl
mov dword [esp + 0x5c], edx
shl eax, cl
mov dword [esp + 0x78], eax
test cl, 0x20
je 0x593b49
mov eax, dword [esp + 0x78]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x78], 0
imul eax, esi, 0x3526a
shl esi, 4
add eax, 0xffc10000
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x6014ec]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x6014e8]
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x6014f4]
mov dword [esp + 0xb4], eax
mov dword [esp + 0x60], 0
xor eax, eax
cmp dword [esp + 0x50], 0
setne al
shl eax, 2
mov dword [esp + 0x94], 0
xor edx, edx
mov ecx, dword [esp + 0x34]
shld edx, eax, cl
shl eax, cl
test cl, 0x20
mov ecx, dword [esp + 0x18]
jne 0x593bba
mov dword [esp + 0x58], eax
mov dword [esp + 0x6c], edx
jmp 0x593bc6
mov dword [esp + 0x6c], eax
mov dword [esp + 0x58], 0
sar ecx, 0x10
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xb4]
shr ecx, 0x1f
add ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x1c]
adc eax, 0
mov dword [esp + 0x1c], eax
mov eax, ecx
imul eax, dword [esp + 0x48]
mov dword [esp + 0x38], eax
mov eax, ecx
mov esi, dword [esp + 0x78]
mul esi
add edx, dword [esp + 0x38]
mov dword [esp + 0x68], edx
mov eax, dword [esp + 0x1c]
mul esi
mov esi, eax
mov dword [esp + 0x78], edx
mov eax, dword [esp + 0x48]
imul eax, dword [esp + 0x1c]
mov dword [esp + 0x48], eax
mov dword [esp + 0x38], ecx
mov eax, ecx
mul dword [esp + 0x5c]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x64], edx
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x38]
imul eax, ecx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x1c]
mul dword [esp + 0x5c]
mov dword [esp + 0x5c], eax
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x60], ecx
add esi, dword [esp + 0x68]
mov eax, dword [esp + 0x78]
adc eax, dword [esp + 0x48]
add esi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x38]
adc dword [esp + 0x64], ecx
add eax, dword [esp + 0x5c]
adc edx, dword [esp + 0x60]
add eax, dword [esp + 0x64]
adc edx, 0
shr esi, 0x1f
add esi, eax
mov dword [esp + 0x1c], esi
adc edx, 0
mov eax, dword [esp + 0x58]
mov ecx, eax
mov esi, dword [esp + 0x6c]
or ecx, esi
mov ecx, 0
sete cl
sub eax, ecx
sbb esi, 0
add eax, 9
mov dword [esp + 0x58], eax
adc esi, 0
test edx, edx
mov eax, esi
mov dword [esp + 0x6c], esi
jne 0x593cbf
mov esi, dword [esp + 0x1c]
bsr ecx, esi
xor ecx, 0x1f
add ecx, 0x20
jmp 0x593cc9
bsr ecx, edx
xor ecx, 0x1f
mov esi, dword [esp + 0x1c]
shld edx, esi, cl
mov dword [esp + 0x38], edx
shl esi, cl
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x34]
sub eax, ecx
mov dword [esp + 0x18], eax
add eax, 0x40
mov edx, dword [esp + 0x58]
shld dword [esp + 0x6c], edx, cl
shl edx, cl
test cl, 0x20
je 0x593cff
mov dword [esp + 0x38], esi
xor esi, esi
mov dword [esp + 0x6c], edx
xor edx, edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x64], eax
cmp eax, 0xfffffb8f
jl 0x593d1e
mov eax, dword [esp + 0x18]
add eax, 0x4b2
mov dword [esp + 0x94], eax
mov eax, 0x35
cmp dword [esp + 0x64], 0xfffffbc2
mov esi, dword [esp + 0x38]
jle 0x593fc4
cmp eax, 3
jle 0x593fd4
mov ecx, 0x40
sub ecx, eax
mov eax, esi
shr eax, cl
mov dword [esp + 0x68], 0
mov dword [esp + 0x18], 0
test cl, 0x20
jne 0x593d62
mov dword [esp + 0x18], eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
shrd eax, esi, cl
mov dword [esp + 0x5c], ecx
test cl, 0x20
jne 0x593d7e
mov dword [esp + 0x34], eax
mov edx, 0xffffffff
mov eax, 0xffffffff
mov ecx, dword [esp + 0x5c]
shl eax, cl
test cl, 0x20
jne 0x593d97
mov ecx, eax
jmp 0x593d9b
xor ecx, ecx
mov edx, eax
not edx
not ecx
mov eax, dword [esp + 0x1c]
and eax, ecx
and esi, edx
shld esi, eax, 3
mov dword [esp + 0x38], esi
shl eax, 3
mov ecx, dword [esp + 0x5c]
add cl, 0xff
mov esi, 8
xor edx, edx
shld edx, esi, cl
mov dword [esp + 0x48], edx
shl esi, cl
test cl, 0x20
jne 0x593dd8
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x48]
jmp 0x593de0
mov ecx, esi
xor esi, esi
mov edx, dword [esp + 0xc]
mov dword [esp + 0x60], esi
add esi, dword [esp + 0x58]
mov dword [esp + 0x48], ecx
adc ecx, dword [esp + 0x6c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x78], esi
cmp eax, esi
mov eax, dword [esp + 0x38]
mov dword [esp + 0x7c], ecx
sbb eax, ecx
setae al
movzx eax, al
mov ecx, dword [esp + 0x34]
add ecx, eax
mov esi, dword [esp + 0x18]
adc esi, 0
mov dword [esp + 0x34], ecx
mov eax, ecx
or eax, esi
je 0x594016
test esi, esi
mov dword [esp + 0x18], esi
jne 0x593e3c
mov eax, dword [esp + 0x34]
bsr ecx, eax
xor ecx, 0x1f
add ecx, 0x20
jmp 0x593e46
bsr ecx, esi
xor ecx, 0x1f
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x64]
add esi, dword [esp + 0x5c]
shld dword [esp + 0x18], eax, cl
shl eax, cl
test cl, 0x20
je 0x593e60
mov dword [esp + 0x18], eax
xor eax, eax
sub esi, ecx
cmp esi, 0x3c0
mov ecx, dword [esp + 0x14]
jg 0x593f1f
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x18]
shrd dword [esp + 0x34], eax, 0xb
shr eax, 0xb
cmp esi, 0xfffffbc2
jle 0x59429f
shl esi, 0x14
and eax, 0xfffff
add eax, esi
add eax, 0x43e00000
mov dword [esp + 0x68], eax
xor eax, 0x7ff00000
or eax, dword [esp + 0x34]
je 0x593f1f
mov eax, dword [esp + 0x60]
sub eax, dword [esp + 0x58]
mov dword [esp + 0x60], eax
mov esi, dword [esp + 0x48]
sbb esi, dword [esp + 0x6c]
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x78]
mov eax, dword [esp + 0x38]
sbb eax, dword [esp + 0x7c]
jae 0x593ee5
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x60], eax
sbb esi, dword [esp + 0x38]
jb 0x594027
xor eax, eax
cmp bl, 0x2d
sete al
shl eax, 0x1f
mov edi, dword [esp + 0x68]
or edi, eax
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0x14
mov esi, dword [esp + 0x34]
mov dword [eax + 0x18], esi
mov dword [eax + 0x1c], edi
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], eax
jmp 0x5919f4
mov eax, dword [ebp + 0x10]
test al, al
js 0x59549e
mov eax, dword [ebp + 0x10]
test al, 0x10
je 0x5979e9
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0x14
mov eax, 0xfff00000
cmp bl, 0x2d
je 0x593f56
mov eax, 0x7ff00000
mov ecx, dword [esp + 0x2c]
jmp 0x593ad3
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x593f6c
mov byte [eax], 0
mov esi, dword [esp + 0x30]
mov eax, esi
sub eax, edi
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
mov edx, dword [esp + 0x2c]
mov dword [edx + 0x14], ecx
shl eax, 8
or eax, 1
mov dword [edx + 0x10], eax
mov dword [edx + 0x18], edi
mov eax, dword [esp + 0x3c]
mov dword [eax], esi
mov dword [esp + 0x10], esi
jmp 0x5919ec
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0x14
mov dword [eax + 0x1c], 0x7ff00000
mov dword [eax + 0x18], 0
jmp 0x5919ec
mov eax, dword [esp + 0x94]
cmp eax, 3
jg 0x593d3e
mov ecx, 4
sub ecx, eax
shrd dword [esp + 0x1c], esi, cl
shr esi, cl
mov eax, esi
mov esi, dword [esp + 0x6c]
shrd edx, esi, cl
shr esi, cl
test cl, 0x20
je 0x593ffc
mov dword [esp + 0x1c], eax
xor eax, eax
mov edx, esi
xor esi, esi
add dword [esp + 0x64], ecx
add edx, 9
adc esi, 0
mov dword [esp + 0x6c], esi
mov ecx, 0x3c
mov esi, eax
jmp 0x593d45
mov dword [esp + 0x34], 0
mov ecx, dword [esp + 0x14]
jmp 0x593ead
mov dword [esp + 0x5c], ebx
mov esi, dword [esp + 0x68]
mov eax, esi
and eax, 0x7ff00000
mov ecx, dword [esp + 0x34]
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 + 0x64], 0xfffffbcd
test eax, eax
je 0x594076
shr eax, 0x14
add eax, 0xfffffbcc
mov dword [esp + 0x64], eax
mov esi, edx
mov ebx, ecx
or ebx, 1
lea eax, [esp + 0x98]
lea ecx, [esp + 0xc8]
mov edx, dword [esp + 8]
push dword [esp + 0x30]
push dword [esp + 0x78]
push dword [esp + 0x58]
push eax
push dword [esp + 0x14]
call fcn.005a8ba0
add esp, 0x14
mov dword [esp + 0x2d0], 1
mov dword [esp + 0x2d8], ebx
mov dword [esp + 0x2dc], esi
mov eax, dword [esp + 0x98]
mov dword [esp + 0x78], eax
test eax, eax
js 0x5942d8
cmp dword [esp + 0x78], 0x13
jge 0x59412a
mov eax, dword [esp + 0x78]
test eax, eax
je 0x59479b
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x18], ecx
xor esi, esi
test ecx, ecx
je 0x594504
mov ecx, dword [esp + esi*8 + 0xd0]
or ecx, dword [esp + esi*8 + 0xd4]
jne 0x594504
add esi, 1
cmp dword [esp + 0x18], esi
jne 0x5940f8
jmp 0x59479b
mov ebx, dword [esp + 0x78]
lea eax, [ebx - 0x13]
cmp ebx, 0x25
mov dword [esp + 0x78], eax
jle 0x5940db
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x50], eax
xor esi, esi
test eax, eax
je 0x594156
mov eax, dword [esp + esi*8 + 0xd0]
or eax, dword [esp + esi*8 + 0xd4]
jne 0x594156
add esi, 1
cmp dword [esp + 0x50], esi
jne 0x59413b
jmp 0x59411a
cmp esi, dword [esp + 0x50]
jae 0x59411a
mov dword [esp + 0x38], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + esi*8 + 0xd0]
mov eax, ecx
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x58], eax
mov dword [esp + 0x48], edx
xor eax, eax
mov ebx, 0x89e80000
add ebx, 0xdf2304
mov dword [esp + 0x60], ebx
setb al
mov dword [esp + 8], eax
mov dword [esp + 0x30], ecx
mov eax, ecx
mul ebx
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + esi*8 + 0xd4]
mov dword [esp + 0x1c], eax
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x6c], eax
mov dword [esp + 4], edx
mov eax, dword [esp + 0x30]
imul eax, dword [esp + 8]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
mul dword [esp + 0x60]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 8]
imul eax, dword [esp + 0x1c]
add ebx, dword [esp + 0x48]
adc ecx, dword [esp + 0x30]
add ebx, dword [esp + 0x6c]
adc dword [esp + 4], 0
add ecx, dword [esp + 0x60]
adc edx, eax
add ecx, dword [esp + 4]
mov dword [esp + 0x30], ecx
adc edx, 0
mov dword [esp + 4], edx
mov ecx, dword [esp + 0x58]
and ecx, 0xfff80000
mov edx, dword [esp + 0x38]
add ecx, edx
mov eax, dword [esp + 0x18]
adc ebx, eax
setb byte [esp + 8]
cmp ecx, edx
mov edx, ecx
mov ecx, ebx
sbb ecx, eax
mov dword [esp + esi*8 + 0xd4], ebx
setb cl
or cl, byte [esp + 8]
movzx eax, cl
add eax, dword [esp + 0x30]
mov dword [esp + 0x38], eax
mov dword [esp + esi*8 + 0xd0], edx
mov edx, dword [esp + 4]
adc edx, 0
mov dword [esp + 0x18], edx
add esi, 1
cmp dword [esp + 0x50], esi
jne 0x59416c
mov eax, dword [esp + 0x38]
or eax, dword [esp + 0x18]
je 0x59411a
mov eax, dword [esp + 0xc8]
lea ecx, [eax + 1]
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + eax*8 + 0xd4], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + eax*8 + 0xd0], ecx
jmp 0x59411a
cmp esi, 0xfffffb8f
jl 0x5954b4
mov edx, eax
mov eax, esi
mov cl, 0xc3
sub cl, al
shrd dword [esp + 0x34], edx, cl
shr edx, cl
mov eax, edx
test cl, 0x20
je 0x5942c7
mov dword [esp + 0x34], eax
xor eax, eax
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
jmp 0x593ead
mov ecx, dword [esp + 0x78]
mov eax, ecx
neg eax
mov dword [esp + 0x7c], eax
mov dword [esp + 8], 1
cmp ecx, 0xffffffed
jg 0x59463f
mov dword [esp + 0x18], 1
cmp dword [esp + 0x18], 0
jne 0x59431c
jmp 0x59433c
mov ecx, dword [esp + 0x2d0]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x7c], eax
cmp dword [esp + 0x18], 0
je 0x59433c
xor esi, esi
mov eax, dword [esp + esi*8 + 0x2d8]
or eax, dword [esp + esi*8 + 0x2dc]
jne 0x59433e
add esi, 1
cmp dword [esp + 0x18], esi
jne 0x59431e
jmp 0x594482
xor esi, esi
cmp esi, dword [esp + 0x18]
jae 0x594482
mov dword [esp + 0x50], 0
mov dword [esp + 0x38], 0
mov ecx, dword [esp + esi*8 + 0x2d8]
mov eax, ecx
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x58], eax
mov dword [esp + 0x48], edx
xor eax, eax
mov ebx, 0x89e80000
add ebx, 0xdf2304
mov dword [esp + 0x60], ebx
setb al
mov dword [esp + 8], eax
mov dword [esp + 0x30], ecx
mov eax, ecx
mul ebx
mov ebx, eax
mov ecx, edx
mov eax, dword [esp + esi*8 + 0x2dc]
mov dword [esp + 0x1c], eax
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x6c], eax
mov dword [esp + 4], edx
mov eax, dword [esp + 0x30]
imul eax, dword [esp + 8]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
mul dword [esp + 0x60]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 8]
imul eax, dword [esp + 0x1c]
add ebx, dword [esp + 0x48]
adc ecx, dword [esp + 0x30]
add ebx, dword [esp + 0x6c]
adc dword [esp + 4], 0
add ecx, dword [esp + 0x60]
adc edx, eax
add ecx, dword [esp + 4]
mov dword [esp + 0x30], ecx
adc edx, 0
mov dword [esp + 4], edx
mov ecx, dword [esp + 0x58]
and ecx, 0xfff80000
mov edx, dword [esp + 0x50]
add ecx, edx
mov eax, dword [esp + 0x38]
adc ebx, eax
setb byte [esp + 8]
cmp ecx, edx
mov edx, ecx
mov ecx, ebx
sbb ecx, eax
mov dword [esp + esi*8 + 0x2dc], ebx
setb cl
or cl, byte [esp + 8]
movzx eax, cl
add eax, dword [esp + 0x30]
mov dword [esp + 0x50], eax
mov dword [esp + esi*8 + 0x2d8], edx
mov edx, dword [esp + 4]
adc edx, 0
mov dword [esp + 0x38], edx
add esi, 1
cmp dword [esp + 0x18], esi
jne 0x594358
mov eax, dword [esp + 0x50]
or eax, dword [esp + 0x38]
je 0x594482
mov eax, dword [esp + 0x2d0]
lea ecx, [eax + 1]
mov dword [esp + 0x2d0], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + eax*8 + 0x2dc], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + eax*8 + 0x2d8], ecx
mov ebx, dword [esp + 0x7c]
lea eax, [ebx - 0x13]
cmp ebx, 0x26
jge 0x594306
test eax, eax
je 0x59479b
mov ecx, dword [esp + 0x2d0]
mov dword [esp + 8], ecx
test ecx, ecx
jne 0x594643
jmp 0x59479b
mov esi, eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x5944c1
mov byte [eax], 0
mov eax, ecx
sar eax, 0x1f
shld eax, ecx, 8
mov edx, dword [esp + 0x2c]
mov dword [edx + 0x14], eax
shl ecx, 8
or ecx, 1
mov dword [edx + 0x10], ecx
jmp 0x593f8d
mov eax, dword [ebp + 0x10]
test al, 4
jne 0x5926c7
cmp byte [esi], 0x2c
je 0x597707
mov dword [esp + 0x10], edi
cmp byte [edi], 0x2c
lea edi, [edi - 1]
jne 0x5944f3
jmp 0x597702
cmp esi, dword [esp + 0x18]
jae 0x59479b
mov ecx, dword [eax*8 + 0x60293c]
mov dword [esp + 0x60], ecx
mov eax, dword [eax*8 + 0x602938]
mov dword [esp + 0x78], eax
mov dword [esp + 8], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + esi*8 + 0xd0]
mov eax, ecx
mov ebx, dword [esp + 0x78]
mul ebx
mov dword [esp + 0x38], edx
mov dword [esp + 0x30], eax
mov eax, ecx
mov ecx, dword [esp + 0x60]
mul ecx
mov dword [esp + 0x6c], eax
mov dword [esp + 4], edx
mov eax, dword [esp + esi*8 + 0xd4]
mov dword [esp + 0x48], eax
mul ebx
mov dword [esp + 0x50], edx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x48]
mul ecx
mov dword [esp + 0x48], eax
mov ebx, edx
mov edx, dword [esp + 0x6c]
add edx, dword [esp + 0x38]
mov ecx, dword [esp + 4]
adc ecx, 0
add edx, dword [esp + 0x58]
mov eax, dword [esp + 0x50]
adc eax, 0
add ecx, dword [esp + 0x48]
adc ebx, 0
add ecx, eax
mov dword [esp + 4], ecx
adc ebx, 0
mov dword [esp + 0x38], ebx
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x30]
add eax, ecx
mov dword [esp + 0x30], eax
mov ebx, dword [esp + 0x1c]
adc edx, ebx
setb byte [esp + 0x50]
cmp eax, ecx
mov ecx, edx
sbb ecx, ebx
mov dword [esp + esi*8 + 0xd4], edx
setb cl
or cl, byte [esp + 0x50]
movzx eax, cl
add eax, dword [esp + 4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + esi*8 + 0xd0], eax
mov edx, dword [esp + 0x38]
adc edx, 0
mov dword [esp + 0x1c], edx
add esi, 1
cmp dword [esp + 0x18], esi
jne 0x594534
mov eax, dword [esp + 8]
or eax, dword [esp + 0x1c]
je 0x59479b
mov eax, dword [esp + 0xc8]
lea ecx, [eax + 1]
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + eax*8 + 0xd4], ecx
mov ecx, dword [esp + 8]
mov dword [esp + eax*8 + 0xd0], ecx
jmp 0x59479b
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax*8 + 0x60293c]
mov dword [esp + 0x1c], ecx
mov eax, dword [eax*8 + 0x602938]
mov dword [esp + 0x18], eax
xor esi, esi
mov ecx, dword [esp + esi*8 + 0x2d8]
mov edx, dword [esp + esi*8 + 0x2dc]
mov eax, ecx
or eax, edx
jne 0x59467d
add esi, 1
cmp dword [esp + 8], esi
jne 0x59465b
jmp 0x59479b
cmp esi, dword [esp + 8]
jae 0x59479b
mov ebx, edx
add esi, 1
mov dword [esp + 0x38], 0
mov dword [esp + 0x50], 0
mov eax, ecx
mul dword [esp + 0x18]
mov dword [esp + 0x58], edx
mov dword [esp + 0x30], eax
mov eax, ecx
mul dword [esp + 0x1c]
mov dword [esp + 4], edx
mov dword [esp + 0x78], eax
mov eax, ebx
mul dword [esp + 0x18]
mov dword [esp + 0x48], edx
mov dword [esp + 0x6c], eax
mov eax, ebx
mul dword [esp + 0x1c]
mov dword [esp + 0x60], eax
mov ebx, edx
mov edx, dword [esp + 0x78]
add edx, dword [esp + 0x58]
mov ecx, dword [esp + 4]
adc ecx, 0
add edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x48]
adc eax, 0
add ecx, dword [esp + 0x60]
adc ebx, 0
add ecx, eax
mov dword [esp + 4], ecx
adc ebx, 0
mov dword [esp + 0x58], ebx
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
add eax, ecx
mov dword [esp + 0x30], eax
mov ebx, dword [esp + 0x50]
adc edx, ebx
setb byte [esp + 0x48]
cmp eax, ecx
mov ecx, edx
sbb ecx, ebx
mov dword [esp + esi*8 + 0x2d4], edx
setb cl
or cl, byte [esp + 0x48]
movzx eax, cl
add eax, dword [esp + 4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + esi*8 + 0x2d0], eax
mov edx, dword [esp + 0x58]
adc edx, 0
mov dword [esp + 0x50], edx
cmp dword [esp + 8], esi
je 0x59476a
mov ecx, dword [esp + esi*8 + 0x2d8]
mov ebx, dword [esp + esi*8 + 0x2dc]
add esi, 1
jmp 0x59469c
mov eax, dword [esp + 0x38]
or eax, dword [esp + 0x50]
je 0x59479b
mov eax, dword [esp + 0x2d0]
lea ecx, [eax + 1]
mov dword [esp + 0x2d0], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + eax*8 + 0x2dc], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + eax*8 + 0x2d8], ecx
cmp dword [esp + 0x64], 0
jle 0x594866
mov ebx, dword [esp + 0x64]
mov eax, ebx
shr eax, 6
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x2d0]
mov dword [esp + 0x1c], eax
and ebx, 0x3f
mov dword [esp + 0x64], ebx
je 0x5954c9
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*8 + 0x2dc], 0
mov dword [esp + eax*8 + 0x2d8], 0
test eax, eax
je 0x5949b3
mov ecx, 0x40
sub ecx, dword [esp + 0x64]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + ebx*8 + 0x2d0]
mov esi, dword [esp + ebx*8 + 0x2d4]
mov edx, esi
shr edx, cl
shrd eax, esi, cl
lea esi, [ebx - 1]
mov dword [esp + 0x30], esi
mov dword [esp + 4], ecx
test cl, 0x20
je 0x594823
mov eax, edx
xor edx, edx
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x1c]
add ecx, esi
mov dword [esp + ecx*8 + 0x2d8], eax
mov dword [esp + ecx*8 + 0x2dc], edx
cmp dword [esp + 0x30], 0
je 0x5949b3
test byte [esp + 0x30], 1
jne 0x594928
mov eax, dword [esp + 0x1c]
lea eax, [esp + eax*8]
add eax, 0x2d0
mov dword [esp + 8], eax
jmp 0x5949ac
mov ebx, dword [esp + 0x64]
neg ebx
mov eax, ebx
shr eax, 6
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x1c], eax
and ebx, 0x3f
mov dword [esp + 0x64], ebx
je 0x595523
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*8 + 0xd4], 0
mov dword [esp + eax*8 + 0xd0], 0
test eax, eax
je 0x594bfd
mov ecx, 0x40
sub ecx, dword [esp + 0x64]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + ebx*8 + 0xc8]
mov esi, dword [esp + ebx*8 + 0xcc]
mov edx, esi
shr edx, cl
shrd eax, esi, cl
lea esi, [ebx - 1]
mov dword [esp + 0x30], esi
mov dword [esp + 4], ecx
test cl, 0x20
je 0x5948e5
mov eax, edx
xor edx, edx
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x1c]
add ecx, esi
mov dword [esp + ecx*8 + 0xd0], eax
mov dword [esp + ecx*8 + 0xd4], edx
cmp dword [esp + 0x30], 0
je 0x594bfd
test byte [esp + 0x30], 1
jne 0x594b6e
mov eax, dword [esp + 0x1c]
lea eax, [esp + eax*8]
add eax, 0xc8
mov dword [esp + 8], eax
jmp 0x594bf2
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + eax*8 + 0x2d0]
mov eax, dword [esp + eax*8 + 0x2d4]
mov ecx, dword [esp + 0x64]
shld eax, ebx, cl
mov dword [esp + 8], eax
shl ebx, cl
test cl, 0x20
je 0x594952
mov dword [esp + 8], ebx
xor ebx, ebx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + eax*8 + 0x2c8]
mov esi, dword [esp + eax*8 + 0x2cc]
mov eax, esi
mov ecx, dword [esp + 4]
shr eax, cl
shrd edx, esi, cl
test cl, 0x20
je 0x594978
mov edx, eax
xor eax, eax
or edx, ebx
or eax, dword [esp + 8]
mov ebx, dword [esp + 0x30]
add ebx, dword [esp + 0x48]
mov dword [esp + ebx*8 + 0x2d8], edx
mov dword [esp + ebx*8 + 0x2dc], eax
mov ecx, dword [esp + 0x1c]
lea eax, [ecx - 2]
lea ecx, [esp + ecx*8]
add ecx, 0x2c8
mov dword [esp + 8], ecx
mov dword [esp + 0x30], eax
cmp dword [esp + 0x1c], 2
jne 0x594a2a
mov esi, dword [esp + 0x2d8]
mov eax, dword [esp + 0x2dc]
mov edx, esi
mov ecx, dword [esp + 0x64]
shl edx, cl
shld eax, esi, cl
test cl, 0x20
je 0x5949d5
mov eax, edx
xor edx, edx
mov esi, dword [esp + 0x48]
mov dword [esp + esi*8 + 0x2d8], edx
mov dword [esp + esi*8 + 0x2dc], eax
mov eax, dword [esp + 0x2d0]
add eax, esi
mov ecx, dword [esp + eax*8 + 0x2d8]
xor edx, edx
or ecx, dword [esp + eax*8 + 0x2dc]
setne dl
add edx, eax
mov dword [esp + 0x2d0], edx
test esi, esi
je 0x594c74
mov eax, dword [esp + 0x48]
shl eax, 3
push eax
push 0
lea eax, [esp + 0x2e0]
jmp 0x594c6b
mov eax, dword [esp + 0x48]
lea eax, [esp + eax*8]
add eax, 0x2d8
mov dword [esp + 0x1c], eax
jmp 0x594a71
or esi, dword [esp + 8]
mov ecx, dword [esp + 0x38]
or ecx, ebx
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
mov dword [eax + ebx*8 - 8], esi
mov dword [eax + ebx*8 - 4], ecx
lea eax, [esp + ebx*8]
add eax, 0x2c8
mov dword [esp + 8], eax
lea eax, [ebx - 2]
test eax, eax
mov dword [esp + 0x30], eax
je 0x5949b3
mov eax, dword [esp + 8]
mov eax, dword [eax]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x64]
shl eax, cl
mov dword [esp + 0x18], eax
mov dword [esp + 0x38], 0
mov ebx, 0
test cl, 0x20
jne 0x594a9b
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + ecx*8 + 0x2d0]
mov edx, dword [esp + ecx*8 + 0x2d4]
mov esi, edx
mov ecx, dword [esp + 4]
shr esi, cl
shrd eax, edx, cl
test cl, 0x20
je 0x594ac1
mov eax, esi
xor esi, esi
or eax, ebx
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x1c]
mov dword [ebx + ecx*8], eax
mov ebx, dword [esp + ecx*8 + 0x2d0]
mov dword [esp + 0x58], ebx
mov ecx, dword [esp + 0x64]
shl ebx, cl
mov dword [esp + 8], 0
test cl, 0x20
jne 0x594af7
mov dword [esp + 8], ebx
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x50]
shld edx, eax, cl
test cl, 0x20
jne 0x594b0b
mov dword [esp + 0x18], edx
or esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + ecx*8 + 0x2c8]
mov edx, dword [esp + 0x1c]
mov dword [edx + ecx*8 + 4], esi
mov edx, dword [esp + ecx*8 + 0x2d4]
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x58]
shld edx, esi, cl
test cl, 0x20
jne 0x594b3b
mov ebx, edx
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + ecx*8 + 0x2cc]
mov esi, edx
mov ecx, dword [esp + 4]
shr esi, cl
test cl, 0x20
jne 0x594b57
mov dword [esp + 0x38], esi
mov ecx, dword [esp + 4]
shrd eax, edx, cl
test cl, 0x20
jne 0x594a3c
mov esi, eax
jmp 0x594a3c
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + eax*8 + 0xc8]
mov eax, dword [esp + eax*8 + 0xcc]
mov ecx, dword [esp + 0x64]
shld eax, ebx, cl
mov dword [esp + 8], eax
shl ebx, cl
test cl, 0x20
je 0x594b98
mov dword [esp + 8], ebx
xor ebx, ebx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + eax*8 + 0xc0]
mov esi, dword [esp + eax*8 + 0xc4]
mov eax, esi
mov ecx, dword [esp + 4]
shr eax, cl
shrd edx, esi, cl
test cl, 0x20
je 0x594bbe
mov edx, eax
xor eax, eax
or edx, ebx
or eax, dword [esp + 8]
mov ebx, dword [esp + 0x30]
add ebx, dword [esp + 0x48]
mov dword [esp + ebx*8 + 0xd0], edx
mov dword [esp + ebx*8 + 0xd4], eax
mov ecx, dword [esp + 0x1c]
lea eax, [ecx - 2]
lea ecx, [esp + ecx*8]
add ecx, 0xc0
mov dword [esp + 8], ecx
mov dword [esp + 0x30], eax
cmp dword [esp + 0x1c], 2
jne 0x594d7e
mov esi, dword [esp + 0xd0]
mov eax, dword [esp + 0xd4]
mov edx, esi
mov ecx, dword [esp + 0x64]
shl edx, cl
shld eax, esi, cl
test cl, 0x20
je 0x594c1f
mov eax, edx
xor edx, edx
mov esi, dword [esp + 0x48]
mov dword [esp + esi*8 + 0xd0], edx
mov dword [esp + esi*8 + 0xd4], eax
mov eax, dword [esp + 0xc8]
add eax, esi
mov ecx, dword [esp + eax*8 + 0xd0]
xor edx, edx
or ecx, dword [esp + eax*8 + 0xd4]
setne dl
add edx, eax
mov dword [esp + 0xc8], edx
test esi, esi
je 0x594c74
lea eax, [esp + 0xd0]
mov ecx, dword [esp + 0x48]
shl ecx, 3
push ecx
push 0
push eax
call fcn.005c5400
add esp, 0xc
mov esi, dword [esp + 0xc8]
cmp esi, dword [esp + 0x2d0]
jne 0x594d16
mov ecx, esi
jmp 0x594c98
or esi, dword [esp + 0x38]
mov esi, ecx
jne 0x594d1e
sub ecx, 1
jb 0x594d30
mov edx, dword [esp + esi*8 + 0xc8]
mov eax, dword [esp + esi*8 + 0xcc]
mov ebx, dword [esp + esi*8 + 0x2d0]
mov esi, dword [esp + esi*8 + 0x2d4]
mov dword [esp + 4], edx
mov dword [esp + 0x30], ebx
cmp ebx, edx
mov dword [esp + 0x1c], esi
mov edx, esi
sbb edx, eax
mov dword [esp + 0x18], 1
jb 0x594ce1
mov edx, dword [esp + 8]
mov dword [esp + 0x18], edx
mov esi, dword [esp + 4]
xor esi, dword [esp + 0x30]
mov edx, eax
mov ebx, dword [esp + 0x1c]
xor edx, ebx
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x30]
cmp dword [esp + 4], edx
sbb eax, ebx
mov dword [esp + 8], 0xffffffff
jb 0x594c8c
mov eax, dword [esp + 0x18]
mov dword [esp + 8], eax
jmp 0x594c8c
setae al
movzx ecx, al
jmp 0x594d37
xor ecx, ecx
cmp dword [esp + 8], 0
setg al
je 0x594d30
xor edx, edx
mov cl, al
jmp 0x594d39
mov ecx, dword [esp + 0x34]
and ecx, 1
xor edx, edx
add ecx, dword [esp + 0x34]
adc edx, dword [esp + 0x68]
mov eax, edx
mov esi, 0x7ff00000
xor eax, esi
or eax, ecx
je 0x595458
xor eax, eax
cmp byte [esp + 0x5c], 0x2d
sete al
shl eax, 0x1f
or edx, eax
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0x14
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], edx
jmp 0x592617
mov eax, dword [esp + 0x48]
lea eax, [esp + eax*8]
add eax, 0xd0
mov dword [esp + 0x1c], eax
jmp 0x594dc5
or esi, dword [esp + 8]
mov ecx, dword [esp + 0x38]
or ecx, ebx
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
mov dword [eax + ebx*8 - 8], esi
mov dword [eax + ebx*8 - 4], ecx
lea eax, [esp + ebx*8]
add eax, 0xc0
mov dword [esp + 8], eax
lea eax, [ebx - 2]
test eax, eax
mov dword [esp + 0x30], eax
je 0x594bfd
mov eax, dword [esp + 8]
mov eax, dword [eax]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x64]
shl eax, cl
mov dword [esp + 0x18], eax
mov dword [esp + 0x38], 0
mov ebx, 0
test cl, 0x20
jne 0x594def
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + ecx*8 + 0xc8]
mov edx, dword [esp + ecx*8 + 0xcc]
mov esi, edx
mov ecx, dword [esp + 4]
shr esi, cl
shrd eax, edx, cl
test cl, 0x20
je 0x594e15
mov eax, esi
xor esi, esi
or eax, ebx
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x1c]
mov dword [ebx + ecx*8], eax
mov ebx, dword [esp + ecx*8 + 0xc8]
mov dword [esp + 0x58], ebx
mov ecx, dword [esp + 0x64]
shl ebx, cl
mov dword [esp + 8], 0
test cl, 0x20
jne 0x594e4b
mov dword [esp + 8], ebx
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x50]
shld edx, eax, cl
test cl, 0x20
jne 0x594e5f
mov dword [esp + 0x18], edx
or esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + ecx*8 + 0xc0]
mov edx, dword [esp + 0x1c]
mov dword [edx + ecx*8 + 4], esi
mov edx, dword [esp + ecx*8 + 0xcc]
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x58]
shld edx, esi, cl
test cl, 0x20
jne 0x594e8f
mov ebx, edx
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + ecx*8 + 0xc4]
mov esi, edx
mov ecx, dword [esp + 4]
shr esi, cl
test cl, 0x20
jne 0x594eab
mov dword [esp + 0x38], esi
mov ecx, dword [esp + 4]
shrd eax, edx, cl
test cl, 0x20
jne 0x594d90
mov esi, eax
jmp 0x594d90
mov ecx, 5
jmp 0x59164f
mov esi, eax
mov eax, dword [ebp + 0x10]
test al, 0x10
jne 0x59581a
mov dword [esp + 0x54], str.no_digit_after_minus_sign
mov eax, dword [esp + 0x30]
jmp 0x599825
cmp cl, 0x2e
jne 0x595957
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + 1]
test byte [eax + 0x5ffe78], 3
je 0x59543e
mov esi, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], eax
mov eax, esi
cmp al, 0x30
je 0x595920
add esi, 0xffffffd0
mov dword [esp + 8], esi
sar esi, 0x1f
jmp 0x594f44
mov esi, dword [esp + 8]
sar esi, 0x1f
cmp dl, 0x2e
jne 0x595905
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 2]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x595806
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 4], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 3]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x5957f6
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 4], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 4]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x5957e6
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 4], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 5]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x5957d6
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 4], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 6]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x5957c6
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 4], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 7]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x5957b6
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 4], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 8]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x595791
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 4], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 9]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x595781
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 4], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0xa]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x595771
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 4], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0xb]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x595761
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 4], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0xc]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x595751
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 4], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0xd]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x595741
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 4], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0xe]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x595731
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 4], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0xf]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x595721
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 4], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x10]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x595711
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 4], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x11]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x595701
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 4], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x12]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x5956ca
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 4], esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x13]
mov dword [esp + 0x1c], eax
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x5956ba
mov edx, 0xa
mov eax, dword [esp + 8]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 8], eax
adc esi, edx
mov dword [esp + 4], esi
mov ecx, dword [esp + 0x18]
movzx eax, byte [ecx + 0x14]
add ecx, 0x14
mov dword [esp + 0x1c], eax
test byte [eax + 0x5ffe78], 3
mov dword [esp + 0x20], ecx
jne 0x592156
mov eax, dword [esp + 0x30]
add eax, 1
cmp eax, dword [esp + 0x20]
je 0x595447
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x30]
mov ecx, eax
sar ecx, 0x1f
mov dword [esp + 0x50], 0
mov esi, 1
sub esi, eax
mov edx, 0
sbb edx, ecx
mov dword [esp + 0x34], edx
movzx ecx, byte [esp + 0x1c]
test byte [ecx + 0x5ffe78], 0x20
jne 0x5957a1
cmp eax, 0x159
jge 0x593ab6
mov dword [esp + 0x50], 0
mov eax, dword [esp + 0x20]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 4]
mov edx, esi
mov esi, eax
jmp 0x592380
cmp dl, 0x2e
jne 0x5956da
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
jmp 0x5952f8
mov ecx, 5
jmp 0x5919bf
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x5953f3
mov byte [eax], 0
mov esi, edx
mov eax, edx
jmp 0x593f72
mov dword [esp + 0x54], str.no_low_surrogate_in_string
mov esi, str.no_low_surrogate_in_string
mov ebx, dword [esp + 4]
jmp 0x596fc9
mov dword [esp + 0x54], str.invalid_escaped_sequence_in_string
mov esi, str.invalid_escaped_sequence_in_string
mov ebx, dword [esp + 4]
jmp 0x596fc9
mov dword [esp + 0x54], str.invalid_low_surrogate_in_string
mov esi, str.invalid_low_surrogate_in_string
mov ebx, dword [esp + 4]
jmp 0x596fc9
mov eax, dword [esp + 0x30]
jmp 0x59981a
mov dword [esp + 0x54], str.no_digit_after_decimal_point
mov eax, dword [esp + 0x20]
jmp 0x599825
mov eax, dword [ebp + 0x10]
test al, al
js 0x59549e
mov eax, dword [ebp + 0x10]
test al, 0x10
je 0x5997e3
xor eax, eax
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0x14
mov ecx, 0xfff00000
cmp byte [esp + 0x5c], 0x2d
je 0x59548f
mov ecx, 0x7ff00000
mov edx, dword [esp + 0x2c]
mov dword [edx + 0x1c], ecx
mov dword [edx + 0x18], eax
jmp 0x592617
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x5954ab
mov byte [eax], 0
mov esi, dword [esp + 0x20]
jmp 0x593f70
mov dword [esp + 0x34], 0
mov dword [esp + 0x68], 0
jmp 0x5942cb
cmp dword [esp + 0x1c], 0
je 0x595580
mov edx, dword [esp + 0x1c]
lea eax, [edx - 1]
mov dword [esp + 4], eax
and edx, 3
je 0x595584
mov eax, dword [esp + 0x48]
lea eax, [esp + eax*8]
add eax, 0x2d0
mov dword [esp + 0x30], eax
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + esi*8 + 0x2d0]
mov ecx, dword [esp + esi*8 + 0x2d4]
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], ecx
lea eax, [esi - 1]
mov dword [esp + 0x1c], eax
add edx, 0xffffffff
jne 0x5954fc
jmp 0x595588
cmp dword [esp + 0x1c], 0
je 0x59561d
mov edx, dword [esp + 0x1c]
lea eax, [edx - 1]
mov dword [esp + 4], eax
and edx, 3
je 0x595621
mov eax, dword [esp + 0x48]
lea eax, [esp + eax*8]
add eax, 0xc8
mov dword [esp + 0x30], eax
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + esi*8 + 0xc8]
mov ecx, dword [esp + esi*8 + 0xcc]
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], ecx
lea eax, [esi - 1]
mov dword [esp + 0x1c], eax
add edx, 0xffffffff
jne 0x595556
jmp 0x595625
xor eax, eax
jmp 0x595603
mov eax, dword [esp + 0x1c]
cmp dword [esp + 4], 3
jb 0x5955fc
mov ecx, dword [esp + 0x48]
lea ecx, [esp + ecx*8]
add ecx, 0x2d0
mov edx, eax
mov ebx, dword [esp + eax*8 + 0x2d0]
mov esi, dword [esp + eax*8 + 0x2d4]
mov dword [ecx + eax*8 + 4], esi
mov dword [ecx + eax*8], ebx
mov ebx, dword [esp + eax*8 + 0x2cc]
mov esi, dword [esp + eax*8 + 0x2c8]
mov dword [ecx + eax*8 - 8], esi
mov dword [ecx + eax*8 - 4], ebx
mov ebx, dword [esp + eax*8 + 0x2c0]
mov esi, dword [esp + eax*8 + 0x2c4]
mov dword [ecx + eax*8 - 0xc], esi
mov dword [ecx + eax*8 - 0x10], ebx
mov ebx, dword [esp + eax*8 + 0x2bc]
mov esi, dword [esp + eax*8 + 0x2b8]
mov dword [ecx + eax*8 - 0x18], esi
mov dword [ecx + eax*8 - 0x14], ebx
add edx, 0xfffffffc
mov eax, edx
jne 0x59559e
mov eax, dword [esp + 0x2d0]
mov ecx, dword [esp + 0x48]
add eax, ecx
mov dword [esp + 0x2d0], eax
test ecx, ecx
jne 0x594a14
jmp 0x594c74
xor eax, eax
jmp 0x5956a0
mov eax, dword [esp + 0x1c]
cmp dword [esp + 4], 3
jb 0x595699
mov ecx, dword [esp + 0x48]
lea ecx, [esp + ecx*8]
add ecx, 0xc8
mov edx, eax
mov ebx, dword [esp + eax*8 + 0xc8]
mov esi, dword [esp + eax*8 + 0xcc]
mov dword [ecx + eax*8 + 4], esi
mov dword [ecx + eax*8], ebx
mov ebx, dword [esp + eax*8 + 0xc4]
mov esi, dword [esp + eax*8 + 0xc0]
mov dword [ecx + eax*8 - 8], esi
mov dword [ecx + eax*8 - 4], ebx
mov ebx, dword [esp + eax*8 + 0xb8]
mov esi, dword [esp + eax*8 + 0xbc]
mov dword [ecx + eax*8 - 0xc], esi
mov dword [ecx + eax*8 - 0x10], ebx
mov ebx, dword [esp + eax*8 + 0xb4]
mov esi, dword [esp + eax*8 + 0xb0]
mov dword [ecx + eax*8 - 0x18], esi
mov dword [ecx + eax*8 - 0x14], ebx
add edx, 0xfffffffc
mov eax, edx
jne 0x59563b
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x48]
add eax, ecx
mov dword [esp + 0xc8], eax
test ecx, ecx
jne 0x594c5a
jmp 0x594c74
mov edx, dword [esp + 0x18]
add edx, 0x13
mov dword [esp + 0x20], edx
jmp 0x595350
mov edx, dword [esp + 0x18]
add edx, 0x12
mov dword [esp + 0x20], edx
jmp 0x595350
xor edx, edx
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x50], 0
mov esi, dword [esp + 4]
jmp 0x592289
mov edx, dword [esp + 0x18]
add edx, 0x11
mov dword [esp + 0x20], edx
jmp 0x595350
mov edx, dword [esp + 0x18]
add edx, 0x10
mov dword [esp + 0x20], edx
jmp 0x595350
mov edx, dword [esp + 0x18]
add edx, 0xf
mov dword [esp + 0x20], edx
jmp 0x595350
mov edx, dword [esp + 0x18]
add edx, 0xe
mov dword [esp + 0x20], edx
jmp 0x595350
mov edx, dword [esp + 0x18]
add edx, 0xd
mov dword [esp + 0x20], edx
jmp 0x595350
mov edx, dword [esp + 0x18]
add edx, 0xc
mov dword [esp + 0x20], edx
jmp 0x595350
mov edx, dword [esp + 0x18]
add edx, 0xb
mov dword [esp + 0x20], edx
jmp 0x595350
mov edx, dword [esp + 0x18]
add edx, 0xa
mov dword [esp + 0x20], edx
jmp 0x595350
mov edx, dword [esp + 0x18]
add edx, 9
mov dword [esp + 0x20], edx
jmp 0x595350
mov edx, dword [esp + 0x18]
add edx, 8
mov dword [esp + 0x20], edx
jmp 0x595350
mov eax, dword [esp + 0x20]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 4]
mov edx, esi
mov esi, eax
jmp 0x592289
mov edx, dword [esp + 0x18]
add edx, 7
mov dword [esp + 0x20], edx
jmp 0x595350
mov edx, dword [esp + 0x18]
add edx, 6
mov dword [esp + 0x20], edx
jmp 0x595350
mov edx, dword [esp + 0x18]
add edx, 5
mov dword [esp + 0x20], edx
jmp 0x595350
mov edx, dword [esp + 0x18]
add edx, 4
mov dword [esp + 0x20], edx
jmp 0x595350
mov edx, dword [esp + 0x18]
add edx, 3
mov dword [esp + 0x20], edx
jmp 0x595350
mov edx, dword [esp + 0x18]
add edx, 2
mov dword [esp + 0x20], edx
mov dword [esp + 4], esi
jmp 0x595350
xor ecx, ecx
mov eax, ebx
cmp al, 0x2d
sete al
mov edx, esi
add dl, 0xb7
cmp dl, 0x25
ja case.0x59583c.182
mov cl, al
mov eax, dword [esp + 0x30]
sub eax, ecx
movzx ecx, dl
jmp dword [ecx*4 + 0x603cd4]
mov ecx, dword [esp + 0x30]
mov cl, byte [ecx + 1]
or cl, 0x20
cmp cl, 0x6e
jne 0x595996
mov ecx, dword [esp + 0x30]
mov cl, byte [ecx + 2]
or cl, 0x20
cmp cl, 0x66
jne 0x595996
mov edx, dword [esp + 0x30]
lea ecx, [edx + 3]
mov dl, byte [edx + 3]
or dl, 0x20
cmp dl, 0x69
jne 0x5958be
mov edx, dword [esp + 0x30]
mov dl, byte [edx + 4]
or dl, 0x20
cmp dl, 0x6e
jne 0x5958be
mov edx, dword [esp + 0x30]
mov dl, byte [edx + 5]
or dl, 0x20
cmp dl, 0x69
jne 0x5958be
mov edx, dword [esp + 0x30]
mov dl, byte [edx + 6]
or dl, 0x20
cmp dl, 0x74
jne 0x5958be
mov edx, dword [esp + 0x30]
mov dl, byte [edx + 7]
or dl, 0x20
cmp dl, 0x79
jne 0x5958be
mov ecx, dword [esp + 0x30]
add ecx, 8
cmp dword [esp + 0x3c], 0
je 0x595a40
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test edx, edx
je 0x5958d6
mov byte [edx], 0
mov edx, dword [esp + 0x3c]
mov dword [edx], ecx
mov edx, ecx
sub edx, eax
mov esi, edx
sar esi, 0x1f
shld esi, edx, 8
mov edi, dword [esp + 0x2c]
mov dword [edi + 0x14], esi
shl edx, 8
or edx, 1
mov dword [edi + 0x10], edx
mov dword [edi + 0x18], eax
mov dword [esp + 0x10], ecx
jmp 0x5919ec
xor edx, edx
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
mov dword [esp + 0x74], eax
jmp 0x59203c
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
movzx eax, byte [ecx + 2]
add ecx, 1
mov dword [esp + 0x18], ecx
cmp eax, 0x30
je 0x595928
mov esi, eax
mov al, byte [esi + 0x5ffe78]
test al, 3
jne 0x594f1c
mov ecx, dword [esp + 0x18]
add ecx, 1
mov dword [esp + 0x30], ecx
test al, 3
jne 0x595985
test al, 0x20
jne 0x595a78
xor eax, eax
cmp bl, 0x2d
sete al
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0x14
shl eax, 0x1f
jmp 0x595a38
mov dword [esp + 0x54], str.number_with_leading_zero_is_not_allowed
mov eax, dword [esp + 0x30]
jmp 0x599d7f
mov ecx, esi
cmp cl, 0x4e
jne case.0x59583c.182
mov ecx, dword [esp + 0x30]
mov cl, byte [ecx + 1]
or cl, 0x20
cmp cl, 0x61
jne case.0x59583c.182
mov ecx, dword [esp + 0x30]
mov cl, byte [ecx + 2]
or cl, 0x20
cmp cl, 0x6e
jne case.0x59583c.182
add dword [esp + 0x30], 3
cmp dword [esp + 0x3c], 0
je 0x595a13
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x5959e0
mov byte [ecx], 0
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x30]
mov dword [ecx], edx
mov ecx, 0x401
cmp bl, 0x2d
je 0x5959f9
mov ecx, 0x301
mov edx, dword [esp + 0x2c]
mov dword [edx + 0x10], ecx
mov dword [edx + 0x14], 0
mov dword [edx + 0x18], eax
mov eax, dword [esp + 0x30]
jmp 0x59261b
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0x14
mov eax, 0xfff80000
cmp bl, 0x2d
je 0x595a34
mov eax, 0x7ff80000
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 0x1c], eax
jmp 0x592df1
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0x14
mov eax, 0xfff00000
cmp bl, 0x2d
je 0x595a61
mov eax, 0x7ff00000
mov edx, dword [esp + 0x2c]
mov dword [edx + 0x1c], eax
mov dword [edx + 0x18], 0
mov dword [esp + 0x10], ecx
jmp 0x5919ec
mov ecx, dword [esp + 0x30]
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 + 0x30], ecx
test byte [eax + 0x5ffe78], 3
je 0x595abe
mov ecx, dword [esp + 0x30]
movzx eax, byte [ecx + 1]
add ecx, 1
mov dword [esp + 0x30], ecx
test byte [eax + 0x5ffe78], 3
jne 0x595aa1
jmp 0x595963
mov dword [esp + 0x54], str.no_digit_after_exponent_sign
mov eax, dword [esp + 0x30]
jmp 0x599825
mov dword [esp + 0x14], ecx
lea esi, [esp + 0x10]
mov dword [esp + 0xc], edx
movzx ecx, word [edi]
cmp ecx, 0x2020
jne 0x595c52
nop
nop
nop
nop
nop
nop
lea eax, [edi + 2]
mov dword [esp + 0x10], eax
movzx ecx, word [edi + 2]
cmp ecx, 0x2020
jne 0x595c50
lea eax, [edi + 4]
mov dword [esp + 0x10], eax
movzx ecx, word [edi + 4]
cmp ecx, 0x2020
jne 0x595c50
lea eax, [edi + 6]
mov dword [esp + 0x10], eax
movzx ecx, word [edi + 6]
cmp ecx, 0x2020
jne 0x595c50
lea eax, [edi + 8]
mov dword [esp + 0x10], eax
movzx ecx, word [edi + 8]
cmp ecx, 0x2020
jne 0x595c50
lea eax, [edi + 0xa]
mov dword [esp + 0x10], eax
movzx ecx, word [edi + 0xa]
cmp ecx, 0x2020
jne 0x595c50
lea eax, [edi + 0xc]
mov dword [esp + 0x10], eax
movzx ecx, word [edi + 0xc]
cmp ecx, 0x2020
jne 0x595c50
lea eax, [edi + 0xe]
mov dword [esp + 0x10], eax
movzx ecx, word [edi + 0xe]
cmp ecx, 0x2020
jne 0x595c50
lea eax, [edi + 0x10]
mov dword [esp + 0x10], eax
movzx ecx, word [edi + 0x10]
cmp ecx, 0x2020
jne 0x595c50
lea eax, [edi + 0x12]
mov dword [esp + 0x10], eax
movzx ecx, word [edi + 0x12]
cmp ecx, 0x2020
jne 0x595c50
lea eax, [edi + 0x14]
mov dword [esp + 0x10], eax
movzx ecx, word [edi + 0x14]
cmp ecx, 0x2020
jne 0x595c50
lea eax, [edi + 0x16]
mov dword [esp + 0x10], eax
movzx ecx, word [edi + 0x16]
cmp ecx, 0x2020
jne 0x595c50
lea eax, [edi + 0x18]
mov dword [esp + 0x10], eax
movzx ecx, word [edi + 0x18]
cmp ecx, 0x2020
jne 0x595c50
lea eax, [edi + 0x1a]
mov dword [esp + 0x10], eax
movzx ecx, word [edi + 0x1a]
cmp ecx, 0x2020
jne 0x595c50
lea eax, [edi + 0x1c]
mov dword [esp + 0x10], eax
movzx ecx, word [edi + 0x1c]
cmp ecx, 0x2020
jne 0x595c50
lea eax, [edi + 0x1e]
mov dword [esp + 0x10], eax
movzx ecx, word [edi + 0x1e]
cmp ecx, 0x2020
jne 0x595c50
lea eax, [edi + 0x20]
mov dword [esp + 0x10], eax
movzx ecx, word [edi + 0x20]
mov edi, eax
cmp ecx, 0x2020
je 0x595af0
nop
nop
mov edi, eax
cmp cl, 0x5b
je 0x595dcc
cmp cl, 0x7b
je 0x595e4b
movzx eax, cl
mov al, byte [eax + 0x5ffc78]
test al, 2
jne 0x595ec4
mov edx, ecx
add dl, 0xa3
cmp dl, 0x17
ja case.default.0x595c82
movzx edx, dl
jmp dword [edx*4 + 0x603fd8]
cmp cl, 0x22
je 0x5962dc
test al, 1
jne 0x595cc5
mov eax, dword [ebp + 0x10]
test al, 0x10
jne 0x595ceb
test al, 8
je case.0x595d2a.182
mov ecx, esi
call fcn.0059a490
test al, al
je 0x59a0a4
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x4c]
mov edx, dword [esp + 0xc]
jmp 0x595adb
add edi, 1
mov edx, dword [esp + 0xc]
nop
nop
nop
nop
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
add edi, 1
test byte [eax + 0x5ffc78], 1
jne 0x595cd0
add edi, 0xffffffff
jmp 0x595adb
cmp cl, 0x49
je 0x595cfa
cmp cl, 0x69
je 0x595cfa
cmp cl, 0x4e
jne 0x595c9d
mov eax, dword [esp + 0x44]
add eax, 0x10
mov dword [esp + 0x44], eax
cmp eax, dword [esp + 0x84]
jae 0x599271
mov eax, ecx
add al, 0xb7
cmp al, 0x25
ja case.default.0x595d2a
add dword [esp + 0x30], 1
movzx eax, al
mov ebx, dword [esp + 0x4c]
jmp dword [eax*4 + 0x604188]
mov al, byte [edi + 1]
or al, 0x20
cmp al, 0x6e
jne 0x5979f6
mov al, byte [edi + 2]
or al, 0x20
cmp al, 0x66
jne 0x5979f6
lea eax, [edi + 3]
mov cl, byte [edi + 3]
or cl, 0x20
cmp cl, 0x69
jne 0x595d88
mov cl, byte [edi + 4]
or cl, 0x20
cmp cl, 0x6e
jne 0x595d88
mov cl, byte [edi + 5]
or cl, 0x20
cmp cl, 0x69
jne 0x595d88
mov cl, byte [edi + 6]
or cl, 0x20
cmp cl, 0x74
jne 0x595d88
mov cl, byte [edi + 7]
or cl, 0x20
cmp cl, 0x79
jne 0x595d88
lea eax, [edi + 8]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x3c], 0
je 0x597ebc
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x595da4
mov byte [ecx], 0
mov ecx, dword [esp + 0x3c]
mov dword [ecx], eax
sub eax, edi
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
shl eax, 8
or eax, 1
mov edx, dword [esp + 0x44]
mov dword [edx + 4], ecx
mov dword [edx], eax
mov dword [edx + 8], edi
jmp 0x596bf3
mov ebx, dword [esp + 0x44]
add edi, 1
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x30]
mov eax, esi
shl esi, 8
movzx ecx, byte [edx]
or ecx, esi
shr eax, 0x18
add ecx, 0x100
adc eax, 0
mov dword [edx], ecx
mov dword [edx + 4], eax
add ebx, 0x10
cmp ebx, dword [esp + 0x84]
jae 0x597091
mov ecx, edx
mov edx, ebx
mov esi, dword [esp + 0x28]
mov dword [edx + 4], 0
mov dword [edx], 6
mov eax, edx
sub eax, ecx
mov dword [edx + 8], eax
mov dword [esp + 0x30], 0
cmp byte [edi], 0xa
mov ebx, dword [esp + 0x4c]
jne 0x595e3a
add edi, 1
mov dword [esp + 0x10], edi
mov dword [esp + 0x44], edx
mov dword [esp + 0x28], esi
mov ecx, dword [esp + 0x14]
jmp 0x595acf
mov ebx, dword [esp + 0x44]
add edi, 1
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x30]
mov eax, esi
shl esi, 8
movzx ecx, byte [edx]
or ecx, esi
shr eax, 0x18
add ecx, 0x100
adc eax, 0
mov dword [edx], ecx
mov dword [edx + 4], eax
add ebx, 0x10
cmp ebx, dword [esp + 0x84]
jae 0x59701e
mov ecx, edx
mov edx, ebx
mov esi, dword [esp + 0x28]
mov dword [edx + 4], 0
mov dword [edx], 7
mov eax, edx
sub eax, ecx
mov dword [edx + 8], eax
mov dword [esp + 0x40], 0
cmp byte [edi], 0xa
jne 0x595eb5
add edi, 1
mov dword [esp + 0x10], edi
mov ebx, edx
mov dword [esp + 0x28], esi
mov ecx, dword [esp + 0x14]
jmp 0x5911d9
mov eax, dword [esp + 0x44]
add eax, 0x10
mov dword [esp + 0x44], eax
cmp eax, dword [esp + 0x84]
jae 0x597104
mov eax, dword [ebp + 0x10]
mov dword [esp + 0xc], edx
add dword [esp + 0x30], 1
mov dword [esp + 0x98], 0
test al, al
js 0x595f02
cmp dword [esp + 0x3c], 0
jne 0x5978e6
mov cl, byte [edi]
xor eax, eax
mov byte [esp + 0x34], cl
cmp cl, 0x2d
sete al
lea ecx, [edi + eax]
movzx eax, byte [edi + eax]
test byte [eax + 0x5ffe78], 2
je 0x59717b
add eax, 0xffffffd0
movzx edx, byte [ecx + 1]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x5971d3
mov edx, 0xa
imul edx
mov ebx, edx
add eax, esi
adc ebx, 0
movzx edx, byte [ecx + 2]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x597231
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 3]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x597267
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 4]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x59729d
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 5]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x5972d3
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 6]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x597309
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 7]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x59733f
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 8]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x597375
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 9]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x5973ab
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 0xa]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x5973e1
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 0xb]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x597417
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 0xc]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x59744d
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 0xd]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x597483
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 0xe]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x5974b9
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 0xf]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x5974ef
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 0x10]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x597525
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 0x11]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x597557
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
adc ebx, edx
movzx edx, byte [ecx + 0x12]
lea esi, [edx - 0x30]
cmp esi, 9
ja 0x597589
mov edx, 0xa
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, esi
mov dword [esp + 0x2c], eax
adc ebx, edx
mov esi, ecx
mov al, byte [ecx + 0x13]
add esi, 0x13
movzx ecx, al
mov dl, byte [ecx + 0x5ffe78]
test dl, 0x33
je 0x5965c0
mov dword [esp + 8], eax
test dl, 3
je 0x5961a1
mov eax, esi
movzx esi, byte [esi + 1]
test byte [esi + 0x5ffe78], 0x33
mov esi, eax
je 0x5966a7
test dl, 0x20
jne 0x596647
mov eax, dword [esp + 8]
cmp al, 0x2e
mov dword [esp + 4], ebx
jne 0x596776
lea ecx, [esi + 1]
movzx eax, byte [esi + 1]
test byte [eax + 0x5ffe78], 3
je 0x596fa3
mov dword [esp + 0x40], esi
jmp 0x596780
mov eax, dword [esp + 0x44]
add eax, 0x10
mov dword [esp + 0x44], eax
cmp eax, dword [esp + 0x84]
jae 0x5975e4
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
cmp dword [edi], 0x65757274
jne 0x5977d8
add dword [esp + 0x30], 1
mov eax, dword [esp + 0x44]
mov dword [eax + 4], 0
mov dword [eax], 0xb
add edi, 4
jmp 0x5962cf
mov eax, dword [esp + 0x44]
add eax, 0x10
mov dword [esp + 0x44], eax
cmp eax, dword [esp + 0x84]
jae 0x597669
mov ecx, dword [esp + 0x14]
add dword [esp + 0x30], 1
mov eax, dword [edi]
cmp eax, 0x6c6c756e
jne 0x597862
mov eax, dword [esp + 0x44]
mov dword [eax + 4], 0
mov dword [eax], 2
add edi, 4
mov dword [esp + 0x10], edi
jmp 0x596bfb
lea esi, [edi + 1]
mov dword [esp + 0x10], esi
cmp dword [esp + 0x30], 0
jne 0x5976e6
xor edi, edi
mov edx, dword [esp + 0xc]
jmp 0x599fdb
mov eax, dword [esp + 0x44]
add eax, 0x10
mov dword [esp + 0x44], eax
cmp eax, dword [esp + 0x84]
jae 0x597757
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
cmp dword [edi + 1], 0x65736c61
jne 0x5977d8
add dword [esp + 0x30], 1
mov eax, dword [esp + 0x44]
mov dword [eax + 4], 0
mov dword [eax], 3
add edi, 5
mov dword [esp + 0x10], edi
mov dword [esp + 0x28], esi
jmp 0x596bfb
mov ebx, dword [esp + 0x44]
add ebx, 0x10
cmp ebx, dword [esp + 0x84]
jae 0x597928
mov dword [esp + 0x44], ebx
add dword [esp + 0x30], 1
add edi, 1
mov ecx, edi
movzx eax, byte [ecx]
test byte [eax + 0x5ffc78], 0xc
jne 0x59653e
add ecx, 8
mov ebx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [ebx - 7]
test byte [eax + 0x5ffc78], 0xc
jne 0x596423
movzx eax, byte [ebx - 6]
test byte [eax + 0x5ffc78], 0xc
jne 0x596428
movzx eax, byte [ebx - 5]
test byte [eax + 0x5ffc78], 0xc
jne 0x59642d
movzx eax, byte [ebx - 4]
test byte [eax + 0x5ffc78], 0xc
jne 0x596432
movzx eax, byte [ebx - 3]
test byte [eax + 0x5ffc78], 0xc
jne 0x596437
movzx eax, byte [ebx - 2]
test byte [eax + 0x5ffc78], 0xc
jne 0x59643c
movzx eax, byte [ebx - 1]
test byte [eax + 0x5ffc78], 0xc
jne 0x596441
movzx eax, byte [ebx]
test byte [eax + 0x5ffc78], 0xc
jne 0x596467
movzx eax, byte [ebx + 1]
test byte [eax + 0x5ffc78], 0xc
jne 0x596446
movzx eax, byte [ebx + 2]
test byte [eax + 0x5ffc78], 0xc
jne 0x59644b
movzx eax, byte [ebx + 3]
test byte [eax + 0x5ffc78], 0xc
jne 0x596450
movzx eax, byte [ebx + 4]
test byte [eax + 0x5ffc78], 0xc
jne 0x596455
movzx eax, byte [ebx + 5]
test byte [eax + 0x5ffc78], 0xc
jne 0x59645a
movzx eax, byte [ebx + 6]
test byte [eax + 0x5ffc78], 0xc
jne 0x59645f
movzx eax, byte [ebx + 7]
test byte [eax + 0x5ffc78], 0xc
jne 0x596464
movzx eax, byte [ebx + 8]
add ebx, 0x10
test byte [eax + 0x5ffc78], 0xc
je 0x596320
add ebx, 0xfffffff8
jmp 0x596467
add ebx, 0xfffffff9
jmp 0x596467
add ebx, 0xfffffffa
jmp 0x596467
add ebx, 0xfffffffb
jmp 0x596467
add ebx, 0xfffffffc
jmp 0x596467
add ebx, 0xfffffffd
jmp 0x596467
add ebx, 0xfffffffe
jmp 0x596467
add ebx, 0xffffffff
jmp 0x596467
add ebx, 1
jmp 0x596467
add ebx, 2
jmp 0x596467
add ebx, 3
jmp 0x596467
add ebx, 4
jmp 0x596467
add ebx, 5
jmp 0x596467
add ebx, 6
jmp 0x596467
add ebx, 7
mov ecx, 0xd
cmp al, 0x22
je 0x596585
mov dword [esp + 0x2c], 0
test al, al
jns 0x598352
test dword [ebp + 0x10], 0x40000000
jne 0x596545
mov eax, dword [ebx]
mov edx, eax
and edx, 0xc0c0f0
mov ecx, ebx
cmp edx, 0x8080e0
jne 0x5964cd
mov edx, eax
and edx, 0x200f
je 0x5964cd
cmp edx, 0x200d
je 0x5964cd
mov eax, dword [ecx + 3]
add ecx, 3
mov edx, eax
and edx, 0xc0c0f0
cmp edx, 0x8080e0
je 0x5964a5
test al, al
jns 0x5962fe
jmp 0x5964dd
mov eax, dword [ecx + 2]
add ecx, 2
mov edx, eax
and edx, 0xc0e0
cmp edx, 0x80c0
jne 0x5964fc
mov edx, eax
and edx, 0x1e
jne 0x5964d7
jmp 0x5964fc
mov eax, dword [ecx + 4]
add ecx, 4
mov edx, eax
and edx, 0xc0c0c0f8
cmp edx, 0x808080f0
jne 0x596521
mov edx, eax
and edx, 0x3007
je 0x596521
test al, 4
je 0x5964f6
and eax, 0x3003
je 0x5964f6
cmp ebx, ecx
jne 0x5962fe
mov eax, dword [ebp + 0x10]
test al, 0x40
je 0x5998d9
add ebx, 1
mov ecx, ebx
jmp 0x5962fe
mov ebx, ecx
jmp 0x596467
mov ecx, eax
add cl, 0x7f
cmp cl, 0x7d
ja 0x59656f
add ebx, 1
cmp byte [ebx], 0
je 0x596fbc
movzx eax, byte [ebx + 1]
mov ecx, eax
add cl, 0x7f
add ebx, 2
cmp cl, 0x7e
jb 0x596552
add ebx, 0xffffffff
mov ecx, ebx
cmp al, 0xff
je 0x59657d
cmp al, 0x80
jne 0x5962fe
add ecx, 1
jmp 0x5962fe
mov dword [esp + 0x2c], 0
mov esi, ebx
mov eax, esi
sub eax, edi
mov edx, eax
sar edx, 0x1f
shld edx, eax, 8
or edx, dword [esp + 0x2c]
shl eax, 8
or eax, ecx
mov ecx, dword [esp + 0x44]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [ecx + 8], edi
mov byte [esi], 0
add ebx, 1
mov dword [esp + 0x10], ebx
jmp 0x596bf3
cmp byte [esp + 0x34], 0x2d
mov edx, dword [esp + 0x2c]
jne 0x596664
mov eax, SysReAllocString
mov ecx, edx
neg ecx
sbb eax, ebx
jae 0x596664
mov eax, dword [ebp + 0x10]
test al, al
mov edx, dword [esp + 0xc]
js 0x597b52
mov eax, dword [esp + 0x44]
mov dword [eax + 4], 0
mov dword [eax], 0x14
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x4f8], ecx
mov dword [esp + 0x4fc], ebx
shr ebx, 0x1f
fild qword [esp + 0x4f8]
fadd dword [ebx*4 + 0x5ffc50]
fstp qword [esp + 0x538]
fld qword [esp + 0x538]
fchs
fstp qword [eax + 8]
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x4c]
jmp 0x599f35
xor ecx, ecx
mov dword [esp + 8], esi
xor edx, edx
mov dword [esp + 0x7c], 0
mov dword [esp + 0x38], 0
jmp 0x596886
mov edi, esi
xor eax, eax
mov ecx, edx
neg ecx
sbb eax, ebx
xor edx, edx
mov esi, dword [esp + 0x44]
mov dword [esi + 4], 0
cmp byte [esp + 0x34], 0x2d
sete dl
lea edx, [edx*8 + 4]
mov dword [esi], edx
je 0x596694
mov eax, ebx
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x44]
mov dword [edx + 8], ecx
mov dword [edx + 0xc], eax
mov dword [esp + 0x10], edi
jmp 0x596f83
add ecx, 0xffffffd0
cmp dword [esp + 0x2c], 0x99999999
mov esi, ebx
sbb esi, 0x19999999
mov esi, eax
jb 0x5966eb
mov esi, 0x19999999
mov dword [esp + 4], ebx
mov ebx, 0x99999999
xor ebx, dword [esp + 0x2c]
xor esi, dword [esp + 4]
or esi, ebx
mov esi, eax
mov ebx, dword [esp + 4]
jne 0x5961a1
cmp ecx, 5
ja 0x5961a1
mov edx, 0xa
mov eax, dword [esp + 0x2c]
mul edx
add esi, 1
mov dword [esp + 0x40], esi
lea esi, [ebx + ebx*4]
lea edx, [edx + esi*2]
mov esi, ecx
sar esi, 0x1f
add eax, ecx
adc edx, esi
cmp byte [esp + 0x34], 0x2d
jne 0x596f64
mov esi, dword [esp + 0x40]
mov ecx, dword [ebp + 0x10]
test cl, cl
mov ebx, dword [esp + 0x4c]
js 0x597b52
mov ecx, dword [esp + 0x44]
mov dword [ecx + 4], 0
mov dword [ecx], 0x14
mov dword [esp + 0x500], eax
mov dword [esp + 0x504], edx
shr edx, 0x1f
fild qword [esp + 0x500]
fadd dword [edx*4 + 0x5ffc50]
fstp qword [esp + 0x540]
fld qword [esp + 0x540]
fchs
fstp qword [ecx + 8]
mov dword [esp + 0x10], esi
jmp 0x596bf7
mov ecx, esi
mov dword [esp + 0x40], 0
mov dword [esp + 8], eax
lea esi, [ecx + 1]
mov dword [esp + 0x18], ecx
sub ecx, edi
movzx ebx, byte [esi]
movzx edx, byte [ebx + 0x5ffe78]
add esi, 1
add ecx, 1
test dl, 3
jne 0x59678d
xor eax, eax
cmp byte [esp + 8], 0x34
seta al
add dword [esp + 0x2c], eax
mov eax, esi
adc dword [esp + 4], 0
lea eax, [esi - 1]
cmp dword [esp + 0x40], 0
je 0x5967c7
mov ebx, dword [esp + 4]
jmp 0x59680f
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x10]
test al, al
jns 0x5967dd
mov dh, dl
and dh, 0x30
je 0x5980bf
cmp bl, 0x2e
jne 0x596f94
mov eax, esi
movzx ecx, byte [esi]
test byte [ecx + 0x5ffe78], 3
mov ebx, dword [esp + 4]
je 0x59981d
movzx ecx, byte [eax + 1]
add eax, 1
movzx edx, byte [ecx + 0x5ffe78]
test dl, 3
jne 0x5967fc
mov esi, dword [esp + 0x40]
mov dword [esp + 8], eax
add eax, 0xffffffff
jmp 0x59681f
add eax, 0xffffffff
movzx ecx, byte [eax]
cmp cl, 0x30
je 0x59681c
cmp cl, 0x2e
je 0x59681c
xor ecx, ecx
mov dword [esp + 0x40], esi
sub esi, dword [esp + 0x18]
setb cl
mov dword [esp + 0x1c], ecx
mov ecx, esi
sar ecx, 0x1f
add dword [esp + 0x1c], esi
mov esi, dword [esp + 0x18]
adc ecx, 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x7c], 0
mov dword [esp + 0x38], 0
cmp eax, esi
jb 0x596871
mov eax, dword [esp + 8]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x38], esi
test dl, 0x20
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
je 0x596964
mov dword [esp + 0x20], edx
mov dword [esp + 4], ebx
mov ebx, dword [esp + 8]
movzx eax, byte [ebx + 1]
add ebx, 1
mov dword [esp + 0x5c], eax
mov al, byte [eax + 0x5ffe78]
and al, 0xc
cmp al, 1
mov eax, ebx
sbb eax, 0xffffffff
movzx edx, byte [eax]
test byte [edx + 0x5ffe78], 3
je 0x59791b
cmp dl, 0x30
mov dword [esp + 0x40], esi
mov dword [esp + 0x1c], ecx
jne 0x5968f4
mov ebx, dword [esp + 4]
movzx edx, byte [eax + 1]
add eax, 1
cmp edx, 0x30
je 0x5968cd
mov dword [esp + 0x18], eax
test byte [edx + 0x5ffe78], 3
jne 0x5968f8
xor eax, eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 8], ecx
xor ecx, ecx
jmp 0x59692e
mov dword [esp + 0x18], eax
xor eax, eax
xor ecx, ecx
mov esi, dword [esp + 0x18]
add dl, 0xd0
movzx ebx, dl
mov edx, 0xa
mul edx
add ecx, ecx
add eax, ebx
lea ecx, [ecx + ecx*4]
adc ecx, edx
movzx edx, byte [esi + 1]
add esi, 1
test byte [edx + 0x5ffe78], 3
jne 0x596900
mov dword [esp + 8], esi
mov ebx, dword [esp + 4]
mov edx, dword [esp + 8]
sub edx, dword [esp + 0x18]
cmp edx, 0x13
jge 0x59799f
xor edx, edx
mov esi, eax
neg esi
sbb edx, ecx
cmp byte [esp + 0x5c], 0x2d
je 0x596952
mov edx, ecx
mov esi, eax
mov ecx, dword [esp + 0x1c]
add ecx, esi
mov eax, dword [esp + 0x20]
adc eax, edx
mov edx, eax
mov esi, dword [esp + 0x40]
mov eax, 0xfffffea8
cmp eax, ecx
mov eax, 0xffffffff
sbb eax, edx
jge 0x59789b
cmp ecx, 0x135
sbb edx, 0
mov edx, dword [esp + 0x2c]
jge 0x5979d3
mov dword [esp + 0x98], ecx
lea eax, [ecx + 0x132]
cmp eax, 0x251
mov dword [esp + 0x2c], edx
mov dword [esp + 4], ebx
mov dword [esp + 0x40], esi
ja 0x5978cc
cmp dword [esp + 0x38], 0
jne 0x5978cc
mov eax, ecx
shl eax, 4
mov dword [esp + 0x5c], eax
mov eax, ecx
test ebx, ebx
jne 0x5969d4
bsr ecx, edx
xor ecx, 0x1f
add ecx, 0x20
jmp 0x5969da
bsr ecx, ebx
xor ecx, 0x1f
mov esi, ebx
shld esi, edx, cl
mov dword [esp + 0x1c], esi
imul eax, eax, 0x3526a
mov dword [esp + 0x20], eax
shl edx, cl
mov esi, dword [esp + 0x5c]
mov eax, dword [esi + 0x6014ec]
mov dword [esp + 0x58], eax
mov eax, dword [esi + 0x6014e8]
mov dword [esp + 0x18], eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x50], ecx
test cl, 0x20
jne 0x596a1e
mov esi, dword [esp + 0x1c]
jmp 0x596a22
mov esi, edx
xor edx, edx
mov eax, dword [esp + 0x18]
mov ecx, edx
mul edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x78], eax
mov ebx, dword [esp + 0x58]
mov eax, ebx
mov dword [esp + 0x6c], ecx
mul ecx
mov ecx, eax
mov dword [esp + 0x68], edx
add dword [esp + 0x20], 0xffc10000
mov eax, dword [esp + 0x18]
mul esi
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], eax
mov eax, ebx
mul esi
mov ebx, eax
add ecx, dword [esp + 0x1c]
adc ebx, dword [esp + 0x68]
adc edx, 0
add ecx, dword [esp + 0x64]
mov dword [esp + 0x64], ecx
adc ebx, dword [esp + 0x60]
adc edx, 0
mov dword [esp + 0x60], edx
mov eax, ebx
and eax, 0x1ff
add eax, 0xffffffff
mov ecx, 0
adc ecx, 0xffffffff
cmp eax, 0x1fe
sbb ecx, 0
jae 0x596aa7
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x60]
jmp 0x596b68
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x5c]
mov eax, dword [esi + 0x6014f0]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x6c]
mul ecx
mov dword [esp + 0x68], edx
mov esi, dword [esi + 0x6014f4]
mov eax, esi
mul ecx
mov ecx, edx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x74]
mul dword [esp + 0x1c]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x74], eax
mov dword [esp + 0x9c], esi
mov eax, esi
mul dword [esp + 0x1c]
mov esi, dword [esp + 0x94]
add esi, dword [esp + 0x68]
adc ecx, 0
add esi, dword [esp + 0x74]
mov esi, dword [esp + 0x5c]
adc esi, 0
add ecx, eax
adc edx, 0
add ecx, esi
adc edx, 0
mov esi, ecx
add esi, dword [esp + 0x78]
mov dword [esp + 0x5c], edx
adc edx, dword [esp + 0x64]
mov dword [esp + 0x68], esi
add esi, 1
mov eax, edx
adc eax, 0
cmp esi, 2
sbb eax, 0
jb 0x596c04
mov esi, dword [esp + 0x68]
cmp esi, dword [esp + 0x78]
mov eax, edx
sbb eax, dword [esp + 0x64]
setb al
cmp esi, ecx
sbb edx, dword [esp + 0x5c]
setb cl
or cl, al
movzx eax, cl
add ebx, eax
mov edi, dword [esp + 0x60]
adc edi, 0
mov esi, dword [esp + 0x20]
shr esi, 0x10
mov ecx, edi
not ecx
shr ecx, 0x1f
shld edi, ebx, cl
shl ebx, cl
mov edx, ebx
and edx, 0x400
add edx, ebx
adc edi, 0
sub esi, dword [esp + 0x50]
sub esi, ecx
cmp edx, 0x400
mov eax, edi
sbb eax, 0
setb bl
adc esi, 0
xor ecx, ecx
mov eax, 0
test bl, bl
jne 0x596bb0
mov eax, edi
shr eax, 0xb
and eax, 0xfffff
test bl, bl
jne 0x596bba
shld edi, edx, 0x15
mov ecx, edi
xor edx, edx
cmp byte [esp + 0x34], 0x2d
sete dl
shl edx, 0x1f
or eax, edx
shl esi, 0x14
add esi, 0x47e00000
or eax, esi
mov edx, dword [esp + 0x44]
mov dword [edx + 4], 0
mov dword [edx], 0x14
mov dword [edx + 8], ecx
mov dword [edx + 0xc], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x10], eax
mov ebx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
jmp 0x599f35
mov dword [esp + 0x64], 0
mov esi, dword [esp + 0x20]
xor eax, eax
cmp dword [esp + 0x38], 0
setne al
shl eax, 2
xor edx, edx
mov ecx, dword [esp + 0x50]
shld edx, eax, cl
shl eax, cl
test cl, 0x20
jne 0x596c42
mov dword [esp + 0x94], 0
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], edx
jmp 0x596c59
mov dword [esp + 0x94], 0
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], 0
sar esi, 0x10
mov dword [esp + 0x20], esi
mov ecx, dword [esp + 0x9c]
shr ecx, 0x1f
add ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x58]
adc esi, 0
mov ebx, ecx
imul ebx, dword [esp + 0x48]
mov eax, ecx
mul dword [esp + 0x6c]
add edx, ebx
mov dword [esp + 0x68], edx
mov eax, esi
mul dword [esp + 0x6c]
mov dword [esp + 0x18], eax
mov ebx, edx
mov eax, dword [esp + 0x48]
imul eax, esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x58], ecx
mov eax, ecx
mul dword [esp + 0x1c]
mov dword [esp + 0x78], eax
mov dword [esp + 0x6c], edx
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x58]
imul eax, ecx
mov dword [esp + 0x58], eax
mov eax, esi
mul dword [esp + 0x1c]
mov dword [esp + 0x74], eax
mov dword [esp + 0x1c], edx
imul ecx, esi
mov edx, dword [esp + 0x18]
add edx, dword [esp + 0x68]
adc ebx, dword [esp + 0x48]
add edx, dword [esp + 0x78]
mov eax, dword [esp + 0x6c]
adc eax, dword [esp + 0x58]
mov esi, dword [esp + 0x1c]
add ebx, dword [esp + 0x74]
adc esi, ecx
add ebx, eax
adc esi, 0
shr edx, 0x1f
add edx, ebx
mov dword [esp + 0x18], edx
adc esi, 0
xor ebx, ebx
mov eax, dword [esp + 0x60]
mov ecx, eax
mov edx, dword [esp + 0x5c]
or ecx, edx
sete bl
sub eax, ebx
sbb edx, 0
add eax, 9
adc edx, 0
test esi, esi
mov ecx, edx
mov dword [esp + 0x5c], edx
jne 0x596d37
bsr ecx, dword [esp + 0x18]
xor ecx, 0x1f
add ecx, 0x20
jmp 0x596d3d
bsr ecx, esi
xor ecx, 0x1f
mov ebx, dword [esp + 0x18]
shld esi, ebx, cl
mov dword [esp + 0x1c], esi
shl ebx, cl
mov esi, dword [esp + 0x20]
sub esi, dword [esp + 0x50]
sub esi, ecx
lea edx, [esi + 0x40]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x5c]
shld edx, eax, cl
shl eax, cl
test cl, 0x20
je 0x596d73
mov dword [esp + 0x1c], ebx
xor ebx, ebx
mov edx, eax
xor eax, eax
cmp dword [esp + 0x20], 0xfffffb8f
jl 0x596d8a
add esi, 0x4b2
mov dword [esp + 0x94], esi
mov esi, 0x35
cmp dword [esp + 0x20], 0xfffffbc2
jle 0x597b8d
cmp esi, 3
jle 0x597b9d
mov dword [esp + 0x18], ebx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], eax
mov ecx, 0x40
sub ecx, esi
mov esi, dword [esp + 0x1c]
shr esi, cl
mov ebx, 0
test cl, 0x20
jne 0x596dcb
mov ebx, esi
mov eax, dword [esp + 0x18]
mov dword [esp + 0x48], ecx
mov edx, dword [esp + 0x1c]
shrd eax, edx, cl
mov ecx, dword [esp + 0x48]
test cl, 0x20
jne 0x596de5
mov esi, eax
mov dword [esp + 0x50], esi
mov eax, 0xffffffff
mov esi, 0xffffffff
shl esi, cl
test cl, 0x20
jne 0x596dfe
mov edx, esi
jmp 0x596e02
xor edx, edx
mov eax, esi
not eax
not edx
mov esi, dword [esp + 0x18]
and esi, edx
mov edx, dword [esp + 0x1c]
and edx, eax
shld edx, esi, 3
mov dword [esp + 0x1c], edx
shl esi, 3
mov dword [esp + 0x18], esi
add cl, 0xff
mov edx, 8
xor eax, eax
shld eax, edx, cl
shl edx, cl
test cl, 0x20
mov esi, dword [esp + 0x50]
je 0x596e3d
mov eax, edx
xor edx, edx
mov dword [esp + 0x58], edx
mov ecx, edx
add ecx, dword [esp + 0x60]
mov dword [esp + 0x6c], eax
mov edx, eax
adc edx, dword [esp + 0x5c]
mov dword [esp + 0x64], ecx
cmp dword [esp + 0x18], ecx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x68], edx
sbb eax, edx
setae al
movzx eax, al
add esi, eax
adc ebx, 0
mov eax, esi
or eax, ebx
je 0x597bf9
test ebx, ebx
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x48]
jne 0x596e8f
bsr ecx, esi
xor ecx, 0x1f
add ecx, 0x20
jmp 0x596e95
bsr ecx, ebx
xor ecx, 0x1f
add eax, edx
shld ebx, esi, cl
shl esi, cl
test cl, 0x20
je 0x596ea5
mov ebx, esi
xor esi, esi
mov edx, dword [esp + 0xc]
sub eax, ecx
cmp eax, 0x3c0
mov ecx, dword [esp + 0x14]
jg 0x5979d3
shrd esi, ebx, 0xb
shr ebx, 0xb
cmp eax, 0xfffffbc2
jle 0x597e8c
shl eax, 0x14
and ebx, 0xfffff
add eax, ebx
add eax, 0x43e00000
mov dword [esp + 0x20], eax
xor eax, 0x7ff00000
or eax, esi
je 0x5979d3
mov dword [esp + 0x50], esi
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x60]
mov dword [esp + 0x58], eax
mov esi, dword [esp + 0x6c]
sbb esi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x18]
cmp ebx, dword [esp + 0x64]
mov eax, dword [esp + 0x1c]
sbb eax, dword [esp + 0x68]
jae 0x596f25
cmp dword [esp + 0x58], ebx
sbb esi, dword [esp + 0x1c]
jb 0x597c10
xor eax, eax
cmp byte [esp + 0x34], 0x2d
sete al
shl eax, 0x1f
mov edi, dword [esp + 0x20]
or edi, eax
mov eax, dword [esp + 0x44]
mov dword [eax + 4], 0
mov dword [eax], 0x14
mov esi, dword [esp + 0x50]
mov dword [eax + 8], esi
mov dword [eax + 0xc], edi
mov eax, dword [esp + 8]
mov dword [esp + 0x10], eax
mov ebx, dword [esp + 0x4c]
jmp 0x599f35
mov ecx, dword [esp + 0x44]
mov dword [ecx + 4], 0
mov dword [ecx], 4
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
mov eax, dword [esp + 0x40]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x4c]
jmp 0x599f35
mov esi, dword [esp + 0x40]
mov eax, esi
mov ebx, dword [esp + 4]
jmp 0x596813
mov dword [esp + 0x54], str.no_digit_after_decimal_point
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x4c]
jmp 0x599831
mov dword [esp + 0x54], str.unexpected_null_character_in_string
mov esi, str.unexpected_null_character_in_string
mov dword [esp + 0x10], ebx
mov ecx, dword [esp + 0x4c]
mov edx, ebx
push dword [ebp + 0x10]
push 0xa
push dword [esp + 0x78]
call fcn.005a86b0
add esp, 0xc
test al, al
jne 0x596fec
mov dword [esp + 0x70], ebx
mov ecx, str.unexpected_end_of_data
jne 0x596ff5
mov ecx, esi
mov edx, dword [esp + 0x70]
sub edx, dword [esp + 0x4c]
mov dword [esp + 0x70], edx
xor al, 1
movzx eax, al
lea eax, [eax + eax*4]
add eax, 5
cmp dword [ebp + 0x18], 0
je 0x597824
mov edx, dword [ebp + 0x18]
jmp 0x59782b
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x28]
mov esi, eax
shr esi, 1
add esi, eax
cmp esi, 0xffffffe
ja 0x589be9
mov edi, esi
shl edi, 4
mov eax, dword [esp + 0x28]
shl eax, 4
push edi
push eax
push dword [esp + 0x1c]
push dword [esp + 0x8c]
call dword [esp + 0xa0]
add esp, 0x10
test eax, eax
je 0x589be9
mov ecx, dword [esp + 0x14]
sub ebx, ecx
add ebx, eax
mov edx, dword [esp + 0xc]
sub edx, ecx
add edx, eax
lea ecx, [edi + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x84], ecx
mov edi, dword [esp + 0x10]
mov ecx, edx
mov edx, ebx
mov dword [esp + 0x14], eax
jmp 0x595e8d
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x28]
mov esi, eax
shr esi, 1
add esi, eax
cmp esi, 0xffffffe
ja 0x589be9
mov edi, esi
shl edi, 4
mov eax, dword [esp + 0x28]
shl eax, 4
push edi
push eax
push dword [esp + 0x1c]
push dword [esp + 0x8c]
call dword [esp + 0xa0]
add esp, 0x10
test eax, eax
je 0x589be9
mov ecx, dword [esp + 0x14]
sub ebx, ecx
add ebx, eax
mov edx, dword [esp + 0xc]
sub edx, ecx
add edx, eax
lea ecx, [edi + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x84], ecx
mov edi, dword [esp + 0x10]
mov ecx, edx
mov edx, ebx
mov dword [esp + 0x14], eax
jmp 0x595e0e
mov eax, dword [esp + 0x28]
mov esi, eax
shr esi, 1
add esi, eax
cmp esi, 0xffffffe
ja 0x589be9
mov ebx, edx
mov edi, esi
shl edi, 4
mov eax, dword [esp + 0x28]
shl eax, 4
push edi
push eax
push dword [esp + 0x1c]
push dword [esp + 0x8c]
call dword [esp + 0xa0]
add esp, 0x10
test eax, eax
je 0x589be9
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x44]
sub edx, ecx
add edx, eax
mov dword [esp + 0x44], edx
mov edx, ebx
sub edx, ecx
add edx, eax
lea ecx, [edi + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x84], ecx
mov edi, dword [esp + 0x10]
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], esi
jmp 0x595edc
mov ebx, ecx
cmp al, 0x30
jne 0x5992ee
movzx ecx, byte [ebx + 1]
add ebx, 1
mov dword [esp + 0x40], ebx
mov al, byte [ecx + 0x5ffe78]
test al, 0x33
jne 0x59930c
xor eax, eax
cmp byte [esp + 0x34], 0x2d
sete al
lea eax, [eax*8 + 4]
mov ecx, dword [esp + 0x44]
mov dword [ecx], eax
mov dword [ecx + 4], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 8], 0
mov eax, dword [esp + 0x40]
jmp 0x596bef
mov dword [esp + 0x2c], eax
mov eax, ecx
add ecx, 1
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
jne 0x59934a
mov edx, dword [esp + 0x2c]
mov ecx, edx
sar ecx, 0x1f
xor eax, eax
neg edx
sbb eax, ecx
xor ebx, ebx
mov edi, dword [esp + 0x44]
mov dword [edi + 4], 0
cmp byte [esp + 0x34], 0x2d
sete bl
lea esi, [ebx*8 + 4]
mov dword [edi], esi
je 0x597222
mov eax, ecx
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
jmp 0x596beb
mov dword [esp + 0x2c], eax
mov dword [esp + 4], ebx
mov eax, ecx
add ecx, 2
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x5975a7
cmp dl, 0x2e
jne 0x599b45
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
jmp 0x59939a
mov dword [esp + 0x2c], eax
mov dword [esp + 4], ebx
mov eax, ecx
add ecx, 3
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x5975a7
cmp dl, 0x2e
jne 0x599b45
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
jmp 0x5993cc
mov dword [esp + 0x2c], eax
mov dword [esp + 4], ebx
mov eax, ecx
add ecx, 4
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x5975a7
cmp dl, 0x2e
jne 0x599b45
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
jmp 0x5993fe
mov dword [esp + 0x2c], eax
mov dword [esp + 4], ebx
mov eax, ecx
add ecx, 5
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x5975a7
cmp dl, 0x2e
jne 0x599b45
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
jmp 0x599430
mov dword [esp + 0x2c], eax
mov dword [esp + 4], ebx
mov eax, ecx
add ecx, 6
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x5975a7
cmp dl, 0x2e
jne 0x599b45
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
jmp 0x599462
mov dword [esp + 0x2c], eax
mov dword [esp + 4], ebx
mov eax, ecx
add ecx, 7
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x5975a7
cmp dl, 0x2e
jne 0x599b45
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
jmp 0x599494
mov dword [esp + 0x2c], eax
mov dword [esp + 4], ebx
mov eax, ecx
add ecx, 8
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x5975a7
cmp dl, 0x2e
jne 0x599b45
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
jmp 0x5994c6
mov dword [esp + 0x2c], eax
mov dword [esp + 4], ebx
mov eax, ecx
add ecx, 9
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x5975a7
cmp dl, 0x2e
jne 0x599b45
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
jmp 0x5994f8
mov dword [esp + 0x2c], eax
mov dword [esp + 4], ebx
mov eax, ecx
add ecx, 0xa
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x5975a7
cmp dl, 0x2e
jne 0x599b45
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
jmp 0x59952a
mov dword [esp + 0x2c], eax
mov dword [esp + 4], ebx
mov eax, ecx
add ecx, 0xb
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x5975a7
cmp dl, 0x2e
jne 0x599b45
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
jmp 0x59955c
mov dword [esp + 0x2c], eax
mov dword [esp + 4], ebx
mov eax, ecx
add ecx, 0xc
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x5975a7
cmp dl, 0x2e
jne 0x599b45
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
jmp 0x59958e
mov dword [esp + 0x2c], eax
mov dword [esp + 4], ebx
mov eax, ecx
add ecx, 0xd
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x5975a7
cmp dl, 0x2e
jne 0x599b45
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
jmp 0x5995c0
mov dword [esp + 0x2c], eax
mov dword [esp + 4], ebx
mov eax, ecx
add ecx, 0xe
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x5975a7
cmp dl, 0x2e
jne 0x599b45
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
jmp 0x5995f2
mov dword [esp + 0x2c], eax
mov dword [esp + 4], ebx
mov eax, ecx
add ecx, 0xf
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x5975a7
cmp dl, 0x2e
jne 0x599b45
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
jmp 0x599624
mov dword [esp + 0x2c], eax
mov dword [esp + 4], ebx
mov eax, ecx
add ecx, 0x10
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x5975a7
cmp dl, 0x2e
jne 0x599b45
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
jmp 0x599656
mov dword [esp + 0x2c], eax
mov dword [esp + 4], ebx
mov eax, ecx
add ecx, 0x11
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
je 0x5975a7
cmp dl, 0x2e
jne 0x599b45
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
jmp 0x599688
mov dword [esp + 0x2c], eax
mov dword [esp + 4], ebx
mov eax, ecx
add ecx, 0x12
mov dword [esp + 8], ecx
test byte [edx + 0x5ffe78], 0x30
jne 0x599781
xor eax, eax
mov ecx, dword [esp + 0x2c]
neg ecx
sbb eax, dword [esp + 4]
xor edx, edx
mov esi, dword [esp + 0x44]
mov dword [esi + 4], 0
cmp byte [esp + 0x34], 0x2d
sete dl
lea edx, [edx*8 + 4]
mov dword [esi], edx
je 0x5975db
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x44]
jmp 0x596be5
mov eax, dword [esp + 0x28]
mov esi, eax
shr esi, 1
add esi, eax
cmp esi, 0xffffffe
ja 0x589be9
mov edi, esi
shl edi, 4
mov eax, dword [esp + 0x28]
shl eax, 4
push edi
push eax
push dword [esp + 0x1c]
push dword [esp + 0x8c]
call dword [esp + 0xa0]
add esp, 0x10
test eax, eax
je 0x589be9
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x44]
sub edx, ecx
add edx, eax
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0xc]
sub edx, ecx
add edx, eax
mov dword [esp + 0xc], edx
lea ecx, [edi + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x84], ecx
mov edi, dword [esp + 0x10]
mov ecx, eax
mov ebx, dword [esp + 0x4c]
cmp dword [edi], 0x65757274
je 0x596203
jmp 0x5977d8
mov eax, dword [esp + 0x28]
mov esi, eax
shr esi, 1
add esi, eax
cmp esi, 0xffffffe
ja 0x589be9
mov edi, esi
shl edi, 4
mov eax, dword [esp + 0x28]
shl eax, 4
push edi
push eax
push dword [esp + 0x1c]
push dword [esp + 0x8c]
call dword [esp + 0xa0]
add esp, 0x10
test eax, eax
je 0x589be9
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x44]
sub edx, ecx
add edx, eax
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0xc]
sub edx, ecx
add edx, eax
mov dword [esp + 0xc], edx
lea ecx, [edi + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x84], ecx
mov edi, dword [esp + 0x10]
mov ecx, eax
mov dword [esp + 0x28], esi
mov ebx, dword [esp + 0x4c]
jmp 0x59623d
mov eax, dword [ebp + 0x10]
test al, 4
jne 0x5997c4
cmp byte [esi], 0x2c
je 0x597707
mov dword [esp + 0x10], edi
cmp byte [edi], 0x2c
lea edi, [edi - 1]
jne 0x5976f6
add edi, 1
mov esi, edi
mov ecx, dword [esp + 0x4c]
mov edx, esi
push dword [ebp + 0x10]
push 7
push dword [esp + 0x78]
call fcn.005a86b0
add esp, 0xc
test al, al
jne 0x597726
mov dword [esp + 0x70], esi
mov ecx, str.unexpected_end_of_data
jne 0x597732
mov ecx, str.trailing_comma_is_not_allowed
mov edx, dword [esp + 0x70]
sub edx, dword [esp + 0x4c]
mov dword [esp + 0x70], edx
xor al, 1
movzx eax, al
add eax, eax
add eax, 5
cmp dword [ebp + 0x18], 0
je 0x597824
jmp 0x597016
mov eax, dword [esp + 0x28]
mov esi, eax
shr esi, 1
add esi, eax
cmp esi, 0xffffffe
ja 0x589be9
mov edi, esi
shl edi, 4
mov eax, dword [esp + 0x28]
shl eax, 4
push edi
push eax
push dword [esp + 0x1c]
push dword [esp + 0x8c]
call dword [esp + 0xa0]
add esp, 0x10
test eax, eax
je 0x589be9
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x44]
sub edx, ecx
add edx, eax
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0xc]
sub edx, ecx
add edx, eax
mov dword [esp + 0xc], edx
lea ecx, [edi + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x84], ecx
mov edi, dword [esp + 0x10]
mov ecx, eax
mov ebx, dword [esp + 0x4c]
cmp dword [edi + 1], 0x65736c61
je 0x5962b6
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x4c]
mov edx, edi
push dword [ebp + 0x10]
push 0xb
push dword [esp + 0x78]
call fcn.005a86b0
add esp, 0xc
test al, al
jne 0x59784d
mov dword [esp + 0x70], edi
mov eax, 5
je 0x597854
mov ecx, str.unexpected_end_of_data
jne 0x59780e
mov ecx, str.invalid_literal
mov edx, dword [esp + 0x70]
sub edx, dword [esp + 0x4c]
mov dword [esp + 0x70], edx
cmp dword [ebp + 0x18], 0
jne 0x597016
lea edx, [esp + 0xa4]
mov esi, dword [esp + 0x70]
mov dword [edx + 8], esi
mov dword [edx], eax
mov dword [edx + 4], ecx
xor esi, esi
cmp dword [esp + 0x14], 0
je 0x59a1af
push dword [esp + 0x14]
jmp 0x5998a0
mov eax, 5
jne 0x597802
mov eax, 0xb
mov ecx, str.unexpected_end_of_data
je 0x597809
jmp 0x59780e
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 0x10]
test cl, 0x10
je 0x5977dc
or al, 0x20
cmp al, 0x6e
jne 0x5977dc
mov al, byte [edi + 1]
or al, 0x20
cmp al, 0x61
jne 0x5977dc
mov al, byte [edi + 2]
or al, 0x20
cmp al, 0x6e
je 0x597a11
jmp 0x5977dc
xor eax, eax
cmp byte [esp + 0x34], 0x2d
sete al
mov ecx, dword [esp + 0x44]
mov dword [ecx + 4], 0
mov dword [ecx], 0x14
shl eax, 0x1f
mov dword [ecx + 0xc], eax
mov dword [ecx + 8], 0
mov eax, dword [esp + 8]
jmp 0x596f7f
mov edx, ecx
test ebx, ebx
jne 0x597ad3
bsr eax, dword [esp + 0x2c]
xor eax, 0x1f
add eax, 0x20
jmp 0x597adb
lea eax, [esp + 0x54]
lea ecx, [esp + 0x10]
mov edx, dword [esp + 0x3c]
push eax
push dword [esp + 0x48]
push dword [ebp + 0x10]
call fcn.005a8990
mov edx, dword [esp + 0x18]
add esp, 0xc
test al, al
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x4c]
jne 0x599f35
jmp 0x599831
mov dword [esp + 0x54], str.no_digit_after_exponent_sign
jmp 0x599825
mov eax, dword [esp + 0x28]
mov esi, eax
shr esi, 1
add esi, eax
cmp esi, 0xffffffe
ja 0x589be9
mov edi, esi
shl edi, 4
mov eax, dword [esp + 0x28]
shl eax, 4
push edi
push eax
push dword [esp + 0x1c]
push dword [esp + 0x8c]
call dword [esp + 0xa0]
add esp, 0x10
test eax, eax
je 0x589be9
mov ecx, dword [esp + 0x14]
sub ebx, ecx
add ebx, eax
mov dword [esp + 0x44], ebx
mov edx, dword [esp + 0xc]
sub edx, ecx
add edx, eax
mov dword [esp + 0xc], edx
lea ecx, [edi + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x84], ecx
mov edi, dword [esp + 0x10]
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], esi
jmp 0x5962f4
cmp byte [esp + 0x5c], 0x2d
jne 0x5979d3
xor eax, eax
cmp byte [esp + 0x34], 0x2d
sete al
mov ecx, dword [esp + 0x44]
mov dword [ecx + 4], 0
mov dword [ecx], 0x14
shl eax, 0x1f
mov dword [ecx + 0xc], eax
mov dword [ecx + 8], 0
jmp 0x596beb
mov eax, dword [ebp + 0x10]
test al, al
js 0x5997f1
mov eax, dword [ebp + 0x10]
test al, 0x10
jne 0x599799
mov dword [esp + 0x54], str.number_is_infinity_when_parsed_as_double
jmp 0x599829
cmp cl, 0x4e
mov ebx, dword [esp + 0x4c]
jne case.0x595d2a.182
mov al, byte [edi + 1]
or al, 0x20
cmp al, 0x61
jne case.default.0x595d2a
mov al, byte [edi + 2]
or al, 0x20
cmp al, 0x6e
jne case.default.0x595d2a
lea eax, [edi + 3]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x3c], 0
je 0x597aaf
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x597a30
mov byte [ecx], 0
mov ecx, dword [esp + 0x3c]
mov dword [ecx], eax
mov eax, dword [esp + 0x44]
mov dword [eax + 4], 0
mov dword [eax], 0x301
mov dword [eax + 8], edi
jmp 0x596bf3
mov ebx, dword [esp + 0x4c]
mov ecx, ebx
mov edx, edi
push dword [ebp + 0x10]
push 6
mov esi, dword [esp + 0x78]
push esi
call fcn.005a86b0
add esp, 0xc
test al, al
jne 0x597a6f
mov esi, edi
movzx edx, al
mov eax, str.unexpected_end_of_data
jne 0x597a7e
mov eax, str.unexpected_character
sub esi, ebx
mov ecx, 6
sub ecx, edx
mov edi, dword [ebp + 0x18]
test edi, edi
je 0x597a9c
mov edx, edi
mov ebx, dword [esp + 0x88]
jmp 0x59a365
lea edx, [esp + 0xa4]
mov ebx, dword [esp + 0x88]
jmp 0x59a365
mov eax, dword [esp + 0x44]
mov dword [eax + 4], 0
mov dword [eax], 0x14
mov dword [eax + 0xc], 0x7ff80000
mov dword [eax + 8], 0
jmp 0x596bf3
bsr eax, dword [esp + 4]
xor eax, 0x1f
mov dword [esp + 0x50], eax
mov dword [esp + 0x48], 0
mov esi, dword [esp + 4]
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x2c]
shld esi, eax, cl
mov dword [esp + 0x1c], esi
shl eax, cl
mov dword [esp + 0x6c], eax
test cl, 0x20
je 0x597b15
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x6c], 0
imul esi, edx, 0x3526a
shl edx, 4
add esi, 0xffc10000
mov eax, dword [edx + 0x6014ec]
mov dword [esp + 0x58], eax
mov eax, dword [edx + 0x6014e8]
mov dword [esp + 0x18], eax
mov eax, dword [edx + 0x6014f4]
mov dword [esp + 0x9c], eax
mov dword [esp + 0x64], 0
jmp 0x596c10
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x597b5f
mov byte [eax], 0
mov eax, esi
sub eax, edi
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
mov edx, dword [esp + 0x44]
mov dword [edx + 4], ecx
shl eax, 8
or eax, 1
mov dword [edx], eax
mov dword [edx + 8], edi
mov eax, dword [esp + 0x3c]
mov dword [eax], esi
mov dword [esp + 0x10], esi
jmp 0x596bf3
mov esi, dword [esp + 0x94]
cmp esi, 3
jg 0x596da6
mov ecx, 4
sub ecx, esi
mov esi, dword [esp + 0x1c]
shrd ebx, esi, cl
mov dword [esp + 0x18], ebx
shr esi, cl
mov dword [esp + 0x1c], esi
shrd eax, edx, cl
shr edx, cl
mov dword [esp + 0x5c], edx
test cl, 0x20
je 0x597bdf
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x5c], 0
add dword [esp + 0x20], ecx
add eax, 9
mov dword [esp + 0x60], eax
adc dword [esp + 0x5c], 0
mov ecx, 0x3c
jmp 0x596db9
xor esi, esi
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x20], 0
jmp 0x596eed
mov ebx, dword [esp + 0x20]
mov eax, ebx
and eax, 0x7ff00000
mov ecx, dword [esp + 0x50]
shld ebx, ecx, 1
lea esi, [ecx + ecx]
and ebx, 0x1fffff
mov ecx, esi
add ecx, 0xfffffffe
mov edx, ebx
adc edx, 0x1fffff
add ecx, 2
adc edx, 0
mov dword [esp + 0x68], 0xfffffbcd
test eax, eax
je 0x597c5b
shr eax, 0x14
add eax, 0xfffffbcc
mov dword [esp + 0x68], eax
mov ebx, edx
mov esi, ecx
or esi, 1
lea eax, [esp + 0x98]
lea ecx, [esp + 0xc8]
mov edx, dword [esp + 0x2c]
push dword [esp + 0x40]
push dword [esp + 0x80]
push dword [esp + 0x40]
push eax
push dword [esp + 0x14]
call fcn.005a8ba0
add esp, 0x14
mov dword [esp + 0x2d0], 1
mov dword [esp + 0x2d8], esi
mov dword [esp + 0x2dc], ebx
mov eax, dword [esp + 0x98]
mov dword [esp + 0x78], eax
test eax, eax
js 0x597ee0
cmp dword [esp + 0x78], 0x13
jge 0x597d12
mov eax, dword [esp + 0x78]
test eax, eax
je 0x598b79
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x18], ecx
xor ebx, ebx
test ecx, ecx
je 0x5980fa
mov ecx, dword [esp + ebx*8 + 0xd0]
or ecx, dword [esp + ebx*8 + 0xd4]
jne 0x5980fa
add ebx, 1
cmp dword [esp + 0x18], ebx
jne 0x597ce0
jmp 0x598b79
mov ecx, dword [esp + 0x78]
lea eax, [ecx - 0x13]
cmp ecx, 0x25
mov dword [esp + 0x78], eax
jle 0x597cc3
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x48], eax
xor ebx, ebx
test eax, eax
je 0x597d3e
mov eax, dword [esp + ebx*8 + 0xd0]
or eax, dword [esp + ebx*8 + 0xd4]
jne 0x597d3e
add ebx, 1
cmp dword [esp + 0x48], ebx
jne 0x597d23
jmp 0x597d02
cmp ebx, dword [esp + 0x48]
jae 0x597d02
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov ecx, dword [esp + ebx*8 + 0xd0]
mov eax, ecx
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x6c], edx
xor eax, eax
mov esi, 0x89e80000
add esi, 0xdf2304
setb al
mov dword [esp + 0x18], eax
mov dword [esp + 4], ecx
mov eax, ecx
mul esi
mov ecx, eax
mov dword [esp + 0x40], edx
mov eax, dword [esp + ebx*8 + 0xd4]
mov dword [esp + 0x38], eax
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 4]
imul eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mul esi
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x18]
imul eax, dword [esp + 0x38]
add ecx, dword [esp + 0x6c]
mov esi, dword [esp + 0x40]
adc esi, dword [esp + 4]
add ecx, dword [esp + 0x60]
adc dword [esp + 0x1c], 0
add esi, dword [esp + 0x64]
adc edx, eax
add esi, dword [esp + 0x1c]
mov dword [esp + 0x40], esi
adc edx, 0
mov dword [esp + 4], edx
mov eax, dword [esp + 0x2c]
and eax, 0xfff80000
mov esi, dword [esp + 0x5c]
add eax, esi
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x58]
adc ecx, edx
setb byte [esp + 0x1c]
cmp eax, esi
mov esi, ecx
sbb esi, edx
mov dword [esp + ebx*8 + 0xd4], ecx
setb cl
or cl, byte [esp + 0x1c]
movzx eax, cl
add eax, dword [esp + 0x40]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + ebx*8 + 0xd0], eax
mov edx, dword [esp + 4]
adc edx, 0
mov dword [esp + 0x58], edx
add ebx, 1
cmp dword [esp + 0x48], ebx
jne 0x597d54
mov eax, dword [esp + 0x5c]
or eax, dword [esp + 0x58]
je 0x597d02
mov eax, dword [esp + 0xc8]
lea ecx, [eax + 1]
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + eax*8 + 0xd4], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + eax*8 + 0xd0], ecx
jmp 0x597d02
cmp eax, 0xfffffb8f
jl 0x599807
mov edx, eax
mov cl, 0xc3
sub cl, dl
shrd esi, ebx, cl
shr ebx, cl
test cl, 0x20
je 0x597eab
mov esi, ebx
xor ebx, ebx
mov dword [esp + 0x20], ebx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
jmp 0x596eed
mov eax, dword [esp + 0x44]
mov dword [eax + 4], 0
mov dword [eax], 0x14
mov dword [eax + 0xc], 0x7ff00000
mov dword [eax + 8], 0
jmp 0x596bf3
mov eax, dword [esp + 0x78]
mov ecx, eax
neg ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 4], 1
cmp eax, 0xffffffed
jg 0x59822d
mov dword [esp + 0x5c], 1
cmp dword [esp + 0x5c], 0
jne 0x597f24
jmp 0x597f44
mov ecx, dword [esp + 0x2d0]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x7c], eax
cmp dword [esp + 0x5c], 0
je 0x597f44
xor ebx, ebx
mov eax, dword [esp + ebx*8 + 0x2d8]
or eax, dword [esp + ebx*8 + 0x2dc]
jne 0x597f46
add ebx, 1
cmp dword [esp + 0x5c], ebx
jne 0x597f26
jmp 0x59808f
xor ebx, ebx
cmp ebx, dword [esp + 0x5c]
jae 0x59808f
mov dword [esp + 0x58], 0
mov dword [esp + 0x48], 0
mov ecx, dword [esp + ebx*8 + 0x2d8]
mov eax, ecx
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x6c], edx
xor eax, eax
mov esi, 0x89e80000
add esi, 0xdf2304
setb al
mov dword [esp + 0x18], eax
mov dword [esp + 4], ecx
mov eax, ecx
mul esi
mov ecx, eax
mov dword [esp + 0x40], edx
mov eax, dword [esp + ebx*8 + 0x2dc]
mov dword [esp + 0x38], eax
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 4]
imul eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mul esi
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x18]
imul eax, dword [esp + 0x38]
add ecx, dword [esp + 0x6c]
mov esi, dword [esp + 0x40]
adc esi, dword [esp + 4]
add ecx, dword [esp + 0x60]
adc dword [esp + 0x1c], 0
add esi, dword [esp + 0x64]
adc edx, eax
add esi, dword [esp + 0x1c]
mov dword [esp + 0x40], esi
adc edx, 0
mov dword [esp + 4], edx
mov eax, dword [esp + 0x2c]
and eax, 0xfff80000
mov esi, dword [esp + 0x58]
add eax, esi
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x48]
adc ecx, edx
setb byte [esp + 0x1c]
cmp eax, esi
mov esi, ecx
sbb esi, edx
mov dword [esp + ebx*8 + 0x2dc], ecx
setb cl
or cl, byte [esp + 0x1c]
movzx eax, cl
add eax, dword [esp + 0x40]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + ebx*8 + 0x2d8], eax
mov edx, dword [esp + 4]
adc edx, 0
mov dword [esp + 0x48], edx
add ebx, 1
cmp dword [esp + 0x5c], ebx
jne 0x597f60
mov eax, dword [esp + 0x58]
or eax, dword [esp + 0x48]
je 0x59808f
mov eax, dword [esp + 0x2d0]
lea ecx, [eax + 1]
mov dword [esp + 0x2d0], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + eax*8 + 0x2dc], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + eax*8 + 0x2d8], ecx
mov ecx, dword [esp + 0x7c]
lea eax, [ecx - 0x13]
cmp ecx, 0x26
jge 0x597f0e
test eax, eax
je 0x598b79
mov ecx, dword [esp + 0x2d0]
mov dword [esp + 4], ecx
test ecx, ecx
jne 0x598231
jmp 0x598b79
mov eax, dword [esp + 0x3c]
mov edx, dword [eax]
test edx, edx
je 0x5980cc
mov byte [edx], 0
mov edx, ecx
sar edx, 0x1f
shld edx, ecx, 8
mov eax, dword [esp + 0x44]
mov dword [eax + 4], edx
shl ecx, 8
or ecx, 1
mov dword [eax], ecx
mov dword [eax + 8], edi
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov dword [eax], ecx
mov dword [esp + 0x10], ecx
jmp 0x596bf3
cmp ebx, dword [esp + 0x18]
jae 0x598b79
mov ecx, dword [eax*8 + 0x60293c]
mov dword [esp + 0x60], ecx
mov eax, dword [eax*8 + 0x602938]
mov dword [esp + 0x38], eax
mov dword [esp + 4], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + ebx*8 + 0xd0]
mov eax, ecx
mul dword [esp + 0x38]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x2c], eax
mov eax, ecx
mov ecx, dword [esp + 0x60]
mul ecx
mov esi, eax
mov dword [esp + 0x40], edx
mov eax, dword [esp + ebx*8 + 0xd4]
mov dword [esp + 0x6c], eax
mul dword [esp + 0x38]
mov dword [esp + 0x58], edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x6c]
mul ecx
mov dword [esp + 0x6c], eax
add esi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x40]
adc ecx, 0
add esi, dword [esp + 0x48]
mov eax, dword [esp + 0x58]
adc eax, 0
add ecx, dword [esp + 0x6c]
adc edx, 0
add ecx, eax
mov dword [esp + 0x40], ecx
adc edx, 0
mov dword [esp + 0x5c], edx
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0x2c]
add eax, ecx
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x1c]
adc esi, edx
setb byte [esp + 0x58]
cmp eax, ecx
mov ecx, esi
sbb ecx, edx
mov dword [esp + ebx*8 + 0xd4], esi
setb cl
or cl, byte [esp + 0x58]
movzx eax, cl
add eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + ebx*8 + 0xd0], eax
mov edx, dword [esp + 0x5c]
adc edx, 0
mov dword [esp + 0x1c], edx
add ebx, 1
cmp dword [esp + 0x18], ebx
jne 0x59812a
mov eax, dword [esp + 4]
or eax, dword [esp + 0x1c]
je 0x598b79
mov eax, dword [esp + 0xc8]
lea ecx, [eax + 1]
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + eax*8 + 0xd4], ecx
mov ecx, dword [esp + 4]
mov dword [esp + eax*8 + 0xd0], ecx
jmp 0x598b79
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax*8 + 0x60293c]
mov dword [esp + 0x1c], ecx
mov eax, dword [eax*8 + 0x602938]
mov dword [esp + 0x18], eax
xor ebx, ebx
mov ecx, dword [esp + ebx*8 + 0x2d8]
mov esi, dword [esp + ebx*8 + 0x2dc]
mov eax, ecx
or eax, esi
jne 0x59826b
add ebx, 1
cmp dword [esp + 4], ebx
jne 0x598249
jmp 0x598b79
cmp ebx, dword [esp + 4]
jae 0x598b79
add ebx, 1
mov dword [esp + 0x38], 0
mov dword [esp + 0x5c], 0
mov eax, ecx
mul dword [esp + 0x18]
mov dword [esp + 0x58], edx
mov dword [esp + 0x2c], eax
mov eax, ecx
mul dword [esp + 0x1c]
mov dword [esp + 0x40], edx
mov ecx, eax
mov eax, esi
mul dword [esp + 0x18]
mov dword [esp + 0x48], edx
mov dword [esp + 0x6c], eax
mov eax, esi
mul dword [esp + 0x1c]
mov dword [esp + 0x60], eax
add ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x40]
adc esi, 0
add ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x48]
adc eax, 0
add esi, dword [esp + 0x60]
adc edx, 0
add esi, eax
mov dword [esp + 0x40], esi
adc edx, 0
mov dword [esp + 0x58], edx
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x2c]
add eax, esi
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x5c]
adc ecx, edx
setb byte [esp + 0x48]
cmp eax, esi
mov esi, ecx
sbb esi, edx
mov dword [esp + ebx*8 + 0x2d4], ecx
setb cl
or cl, byte [esp + 0x48]
movzx eax, cl
add eax, dword [esp + 0x40]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + ebx*8 + 0x2d0], eax
mov edx, dword [esp + 0x58]
adc edx, 0
mov dword [esp + 0x5c], edx
cmp dword [esp + 4], ebx
je 0x598b48
mov ecx, dword [esp + ebx*8 + 0x2d8]
mov esi, dword [esp + ebx*8 + 0x2dc]
add ebx, 1
jmp 0x598288
mov dword [esp + 4], ebx
cmp al, 0x5c
jne 0x598a10
mov al, byte [ebx + 1]
add al, 0xde
cmp al, 0x53
ja case.0x59334f.221
movzx eax, al
jmp dword [eax*4 + 0x604038]
mov eax, dword [esp + 4]
mov byte [eax], 0x22
jmp 0x59848a
mov eax, dword [esp + 4]
mov byte [eax], 0x2f
jmp 0x59848a
mov eax, dword [esp + 4]
mov byte [eax], 0x5c
jmp 0x59848a
mov eax, dword [esp + 4]
mov byte [eax], 8
jmp 0x59848a
mov eax, dword [esp + 4]
mov byte [eax], 0xc
jmp 0x59848a
mov eax, dword [esp + 4]
mov byte [eax], 0xa
jmp 0x59848a
mov eax, dword [esp + 4]
mov byte [eax], 0xd
jmp 0x59848a
movzx eax, byte [ebx + 2]
movzx ecx, byte [eax + 0x5ffd78]
movzx eax, byte [ebx + 3]
movzx edx, byte [eax + 0x5ffd78]
movzx eax, byte [ebx + 4]
movzx esi, byte [eax + 0x5ffd78]
movzx eax, byte [ebx + 5]
movzx eax, byte [eax + 0x5ffd78]
shl ecx, 8
or ecx, esi
shl edx, 8
or edx, eax
mov eax, ecx
shl eax, 4
or eax, edx
mov word [esp + 0xc8], ax
or edx, ecx
test edx, 0xf0f0
jne 0x599917
lea ecx, [ebx + 6]
mov dword [esp + 0x40], ecx
test dword [ebp + 0x10], 0x40000000
jne 0x59849a
mov ecx, eax
and ecx, 0xf800
cmp ecx, 0xd800
je 0x598a43
movzx ecx, ax
cmp ecx, 0x800
jb 0x5984c4
shr ecx, 0xc
or cl, 0xe0
mov edx, dword [esp + 4]
mov byte [edx], cl
movzx eax, word [esp + 0xc8]
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [edx + 1], al
mov al, byte [esp + 0xc8]
and al, 0x3f
or al, 0x80
mov byte [edx + 2], al
add edx, 3
mov dword [esp + 4], edx
jmp 0x59850f
mov eax, dword [esp + 4]
mov byte [eax], 9
add eax, 1
mov dword [esp + 4], eax
add ebx, 2
mov dword [esp + 0x40], ebx
jmp 0x59850f
push 0
push 0
push 2
mov esi, dword [esp + 0x10]
push esi
push 1
lea eax, [esp + 0xdc]
push eax
push 0
push 0x3a8
call dword [sym.imp.kernel32.dll_WideCharToMultiByte_1]
add esi, eax
mov dword [esp + 4], esi
jmp 0x59850f
cmp ecx, 0x80
jb 0x5984ee
shr eax, 6
or al, 0xc0
mov ecx, dword [esp + 4]
mov byte [ecx], al
mov al, byte [esp + 0xc8]
and al, 0x3f
or al, 0x80
mov byte [ecx + 1], al
add ecx, 2
mov dword [esp + 4], ecx
jmp 0x59850f
mov ecx, dword [esp + 4]
mov byte [ecx], al
add ecx, 1
mov dword [esp + 4], ecx
jmp 0x59850f
mov ecx, dword [esp + 4]
mov byte [ecx], al
add ecx, 1
mov dword [esp + 4], ecx
add dword [esp + 0x40], 1
mov eax, dword [esp + 0x40]
movzx eax, byte [eax]
test byte [eax + 0x5ffc78], 0xc
jne 0x598687
mov eax, dword [esp + 0x40]
movzx eax, byte [eax + 1]
test byte [eax + 0x5ffc78], 0xc
jne 0x598971
mov eax, dword [esp + 0x40]
movzx eax, byte [eax + 2]
test byte [eax + 0x5ffc78], 0xc
jne 0x598690
mov eax, dword [esp + 0x40]
movzx eax, byte [eax + 3]
test byte [eax + 0x5ffc78], 0xc
jne 0x5986ad
mov eax, dword [esp + 0x40]
movzx eax, byte [eax + 4]
test byte [eax + 0x5ffc78], 0xc
jne 0x5986c8
mov eax, dword [esp + 0x40]
movzx eax, byte [eax + 5]
test byte [eax + 0x5ffc78], 0xc
jne 0x5986e3
mov eax, dword [esp + 0x40]
movzx eax, byte [eax + 6]
test byte [eax + 0x5ffc78], 0xc
jne 0x598706
mov eax, dword [esp + 0x40]
movzx eax, byte [eax + 7]
test byte [eax + 0x5ffc78], 0xc
jne 0x598729
mov eax, dword [esp + 0x40]
movzx eax, byte [eax + 8]
test byte [eax + 0x5ffc78], 0xc
jne 0x59874a
mov eax, dword [esp + 0x40]
movzx eax, byte [eax + 9]
test byte [eax + 0x5ffc78], 0xc
jne 0x59876b
mov eax, dword [esp + 0x40]
movzx eax, byte [eax + 0xa]
test byte [eax + 0x5ffc78], 0xc
jne 0x598794
mov eax, dword [esp + 0x40]
movzx eax, byte [eax + 0xb]
test byte [eax + 0x5ffc78], 0xc
jne 0x5987bd
mov eax, dword [esp + 0x40]
movzx eax, byte [eax + 0xc]
test byte [eax + 0x5ffc78], 0xc
jne 0x5987e4
mov eax, dword [esp + 0x40]
movzx eax, byte [eax + 0xd]
test byte [eax + 0x5ffc78], 0xc
jne 0x598808
mov eax, dword [esp + 0x40]
movzx eax, byte [eax + 0xe]
test byte [eax + 0x5ffc78], 0xc
jne 0x598834
mov esi, dword [esp + 0x40]
movzx eax, byte [esi + 0xf]
test byte [eax + 0x5ffc78], 0xc
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0xc]
mov ebx, dword [esi + 8]
mov esi, dword [esp + 4]
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], edx
jne 0x598860
add dword [esp + 0x40], 0x10
add dword [esp + 4], 0x10
jmp 0x59850f
mov ebx, dword [esp + 0x40]
jmp 0x59886c
mov ebx, dword [esp + 0x40]
movzx eax, word [ebx]
add ebx, 2
mov ecx, dword [esp + 4]
mov word [ecx], ax
add ecx, 2
mov dword [esp + 4], ecx
jmp 0x59886c
mov ebx, dword [esp + 0x40]
mov eax, dword [ebx]
add ebx, 3
mov ecx, dword [esp + 4]
mov dword [ecx], eax
add ecx, 3
mov dword [esp + 4], ecx
jmp 0x59886c
mov ebx, dword [esp + 0x40]
mov eax, dword [ebx]
add ebx, 4
mov ecx, dword [esp + 4]
mov dword [ecx], eax
add ecx, 4
mov dword [esp + 4], ecx
jmp 0x59886c
mov edx, dword [esp + 0x40]
lea ebx, [edx + 5]
mov eax, dword [edx]
mov ecx, dword [esp + 4]
mov dword [ecx], eax
movzx eax, word [edx + 4]
mov word [ecx + 4], ax
add ecx, 5
mov dword [esp + 4], ecx
jmp 0x59886c
mov edx, dword [esp + 0x40]
lea ebx, [edx + 6]
mov eax, dword [edx]
mov ecx, dword [esp + 4]
mov dword [ecx], eax
movzx eax, word [edx + 4]
mov word [ecx + 4], ax
add ecx, 6
mov dword [esp + 4], ecx
jmp 0x59886c
mov ecx, dword [esp + 0x40]
lea ebx, [ecx + 7]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 4]
mov dword [edx + 4], ecx
mov dword [edx], eax
add edx, 7
mov dword [esp + 4], edx
jmp 0x59886c
mov ecx, dword [esp + 0x40]
lea ebx, [ecx + 8]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 4]
mov dword [edx + 4], ecx
mov dword [edx], eax
add edx, 8
mov dword [esp + 4], edx
jmp 0x59886c
mov esi, dword [esp + 0x40]
lea ebx, [esi + 9]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [esp + 4]
mov dword [edx + 4], ecx
mov dword [edx], eax
movzx eax, word [esi + 8]
mov word [edx + 8], ax
add edx, 9
mov dword [esp + 4], edx
jmp 0x59886c
mov esi, dword [esp + 0x40]
lea ebx, [esi + 0xa]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [esp + 4]
mov dword [edx + 4], ecx
mov dword [edx], eax
movzx eax, word [esi + 8]
mov word [edx + 8], ax
add edx, 0xa
mov dword [esp + 4], edx
jmp 0x59886c
mov esi, dword [esp + 0x40]
lea ebx, [esi + 0xb]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [esp + 4]
mov dword [edx + 4], ecx
mov dword [edx], eax
mov eax, dword [esi + 8]
mov dword [edx + 8], eax
add edx, 0xb
mov dword [esp + 4], edx
jmp 0x59886c
mov esi, dword [esp + 0x40]
lea ebx, [esi + 0xc]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [esp + 4]
mov dword [edx + 4], ecx
mov dword [edx], eax
mov eax, dword [esi + 8]
mov dword [edx + 8], eax
add edx, 0xc
mov dword [esp + 4], edx
jmp 0x59886c
mov esi, dword [esp + 0x40]
lea ebx, [esi + 0xd]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [esp + 4]
mov dword [edx + 4], ecx
mov dword [edx], eax
mov eax, dword [esi + 8]
mov dword [edx + 8], eax
movzx eax, word [esi + 0xc]
mov word [edx + 0xc], ax
add edx, 0xd
mov dword [esp + 4], edx
jmp 0x59886c
mov esi, dword [esp + 0x40]
lea ebx, [esi + 0xe]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [esp + 4]
mov dword [edx + 4], ecx
mov dword [edx], eax
mov eax, dword [esi + 8]
mov dword [edx + 8], eax
movzx eax, word [esi + 0xc]
mov word [edx + 0xc], ax
add edx, 0xe
mov dword [esp + 4], edx
jmp 0x59886c
mov ebx, dword [esp + 0x40]
add ebx, 0xf
add dword [esp + 4], 0xf
mov al, byte [ebx]
test al, al
jns 0x598356
test dword [ebp + 0x10], 0x40000000
jne 0x59898e
mov eax, dword [ebx]
mov ecx, eax
and ecx, 0xc0c0f0
mov dword [esp + 0x40], ebx
cmp ecx, 0x8080e0
jne 0x5988d6
mov ecx, eax
and ecx, 0x200f
je 0x5988d6
cmp ecx, 0x200d
je 0x5988d6
mov ecx, dword [esp + 4]
mov dword [ecx], eax
add ecx, 3
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + 3]
add ecx, 3
mov dword [esp + 0x40], ecx
mov ecx, eax
and ecx, 0xc0c0f0
cmp ecx, 0x8080e0
je 0x598899
test al, al
jns 0x59850f
jmp 0x5988fc
mov ecx, dword [esp + 4]
mov word [ecx], ax
add ecx, 2
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + 2]
add ecx, 2
mov dword [esp + 0x40], ecx
mov ecx, eax
and ecx, 0xc0e0
cmp ecx, 0x80c0
jne 0x598930
mov ecx, eax
and ecx, 0x1e
jne 0x5988e0
jmp 0x598930
mov ecx, dword [esp + 4]
mov dword [ecx], eax
add ecx, 4
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + 4]
add ecx, 4
mov dword [esp + 0x40], ecx
mov ecx, eax
and ecx, 0xc0c0c0f8
cmp ecx, 0x808080f0
jne 0x598958
mov ecx, eax
and ecx, 0x3007
je 0x598958
test al, 4
je 0x598915
mov ecx, eax
and ecx, 0x3003
je 0x598915
cmp ebx, dword [esp + 0x40]
jne 0x59850f
mov eax, dword [ebp + 0x10]
test al, 0x40
je 0x5998d9
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x40]
movzx eax, word [ebx]
mov ecx, dword [esp + 4]
mov word [ecx], ax
add ebx, 1
add ecx, 1
mov dword [esp + 4], ecx
jmp 0x59886c
movzx eax, word [ebx]
movzx ecx, al
cmp ecx, 0x81
jb 0x5989f7
movzx ecx, cx
cmp ecx, 0xff
je 0x5989f7
add ebx, 1
mov dword [esp + 0x40], ebx
movzx ecx, ax
cmp ecx, 0xff
jbe 0x598b32
mov ecx, dword [esp + 4]
mov word [ecx], ax
add ecx, 2
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x40]
movzx eax, word [edx + 1]
movzx ecx, al
add edx, 2
mov dword [esp + 0x40], edx
cmp ecx, 0x81
jb 0x5989f0
movzx ecx, cx
cmp ecx, 0xff
jne 0x5989ae
add dword [esp + 0x40], 0xffffffff
jmp 0x5989fb
mov dword [esp + 0x40], ebx
cmp al, 0xff
je 0x5984fd
cmp al, 0x80
je 0x5984fd
jmp 0x59850f
cmp al, 0x22
je 0x599a94
mov ecx, dword [ebp + 0x10]
test cl, 0x40
je 0x5998c7
cmp ebx, dword [esp + 0x70]
jae 0x599929
add ebx, 1
mov ecx, dword [esp + 4]
mov byte [ecx], al
add ecx, 1
mov dword [esp + 4], ecx
jmp 0x598494
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x599951
mov ecx, dword [esp + 0x40]
movzx ecx, word [ecx]
cmp ecx, 0x755c
jne 0x599901
movzx ecx, byte [ebx + 8]
movzx edx, byte [ecx + 0x5ffd78]
movzx ecx, byte [ebx + 9]
movzx esi, byte [ecx + 0x5ffd78]
movzx ecx, byte [ebx + 0xa]
movzx ecx, byte [ecx + 0x5ffd78]
mov dword [esp + 8], ecx
movzx ecx, byte [ebx + 0xb]
movzx ecx, byte [ecx + 0x5ffd78]
shl edx, 8
add edx, dword [esp + 8]
shl esi, 8
or esi, ecx
mov dword [esp + 8], esi
mov ecx, esi
or ecx, edx
test ecx, 0xf0f0
jne 0x59993b
shl edx, 4
movzx ecx, dx
mov edx, dword [esp + 8]
or edx, ecx
mov ecx, edx
and ecx, 0xfc00
cmp ecx, 0xdc00
jne 0x5998eb
mov esi, edx
movzx eax, ax
shl eax, 0xa
add eax, 0xfca00000
add edx, 0xffff2400
or edx, eax
add edx, 0x10000
mov eax, edx
shr eax, 0x12
or al, 0xf0
mov ecx, dword [esp + 4]
mov byte [ecx], al
mov eax, edx
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [ecx + 1], al
mov eax, edx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [ecx + 2], al
and dl, 0x3f
or dl, 0x80
mov byte [ecx + 3], dl
add ecx, 4
mov dword [esp + 4], ecx
add ebx, 0xc
jmp 0x598494
mov dword [esp + 0x54], str.unexpected_null_character_in_string
mov esi, str.unexpected_null_character_in_string
mov ebx, dword [esp + 0x40]
jmp 0x596fc9
mov eax, dword [esp + 0x38]
or eax, dword [esp + 0x5c]
je 0x598b79
mov eax, dword [esp + 0x2d0]
lea ecx, [eax + 1]
mov dword [esp + 0x2d0], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + eax*8 + 0x2dc], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + eax*8 + 0x2d8], ecx
cmp dword [esp + 0x68], 0
jle 0x598c23
mov eax, dword [esp + 0x68]
mov ecx, eax
shr ecx, 6
mov dword [esp + 0x48], ecx
mov esi, dword [esp + 0x2d0]
and eax, 0x3f
mov dword [esp + 0x68], eax
je 0x599963
mov dword [esp + esi*8 + 0x2dc], 0
mov dword [esp + esi*8 + 0x2d8], 0
test esi, esi
je 0x598d58
mov ecx, 0x40
sub ecx, dword [esp + 0x68]
mov eax, dword [esp + esi*8 + 0x2d0]
mov ebx, dword [esp + esi*8 + 0x2d4]
mov edx, ebx
shr edx, cl
shrd eax, ebx, cl
lea ebx, [esi - 1]
mov dword [esp + 0x2c], ecx
test cl, 0x20
je 0x598bf1
mov eax, edx
xor edx, edx
mov ecx, dword [esp + 0x48]
add ecx, esi
mov dword [esp + ecx*8 + 0x2d8], eax
mov dword [esp + ecx*8 + 0x2dc], edx
test ebx, ebx
je 0x598d58
test bl, 1
jne 0x598cc4
lea eax, [esp + esi*8]
add eax, 0x2d0
jmp 0x598d4f
mov eax, dword [esp + 0x68]
neg eax
mov ecx, eax
shr ecx, 6
mov dword [esp + 0x48], ecx
mov edx, dword [esp + 0xc8]
and eax, 0x3f
mov dword [esp + 0x68], eax
je 0x5999a7
mov dword [esp + edx*8 + 0xd4], 0
mov dword [esp + edx*8 + 0xd0], 0
test edx, edx
je 0x598fa8
mov ecx, 0x40
sub ecx, dword [esp + 0x68]
mov eax, dword [esp + edx*8 + 0xc8]
mov ebx, dword [esp + edx*8 + 0xcc]
mov esi, ebx
shr esi, cl
shrd eax, ebx, cl
lea ebx, [edx - 1]
mov dword [esp + 0x2c], ecx
test cl, 0x20
je 0x598c92
mov eax, esi
xor esi, esi
mov ecx, dword [esp + 0x48]
add ecx, edx
mov dword [esp + ecx*8 + 0xd0], eax
mov dword [esp + ecx*8 + 0xd4], esi
test ebx, ebx
je 0x598fa8
test bl, 1
jne 0x598f10
lea eax, [esp + edx*8]
add eax, 0xc8
jmp 0x598f9b
mov edx, dword [esp + esi*8 + 0x2d0]
mov eax, dword [esp + esi*8 + 0x2d4]
mov ecx, dword [esp + 0x68]
shld eax, edx, cl
mov dword [esp + 0x1c], eax
shl edx, cl
mov dword [esp + 0x40], edx
test cl, 0x20
je 0x598cf8
mov eax, dword [esp + 0x40]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x40], 0
mov eax, dword [esp + esi*8 + 0x2c8]
mov dword [esp + 4], eax
mov eax, dword [esp + esi*8 + 0x2cc]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x2c]
shr eax, cl
mov edx, dword [esp + 0x18]
shrd dword [esp + 4], edx, cl
mov edx, dword [esp + 4]
test cl, 0x20
je 0x598d2a
mov edx, eax
xor eax, eax
or edx, dword [esp + 0x40]
or eax, dword [esp + 0x1c]
add ebx, dword [esp + 0x48]
mov dword [esp + ebx*8 + 0x2d8], edx
mov dword [esp + ebx*8 + 0x2dc], eax
lea ebx, [esi - 2]
lea eax, [esp + esi*8]
add eax, 0x2c8
mov dword [esp + 0x40], eax
cmp esi, 2
jne 0x598dcf
mov esi, dword [esp + 0x2d8]
mov eax, dword [esp + 0x2dc]
mov edx, esi
mov ecx, dword [esp + 0x68]
shl edx, cl
shld eax, esi, cl
test cl, 0x20
je 0x598d7a
mov eax, edx
xor edx, edx
mov esi, dword [esp + 0x48]
mov dword [esp + esi*8 + 0x2d8], edx
mov dword [esp + esi*8 + 0x2dc], eax
mov eax, dword [esp + 0x2d0]
add eax, esi
mov ecx, dword [esp + eax*8 + 0x2d8]
xor edx, edx
or ecx, dword [esp + eax*8 + 0x2dc]
setne dl
add edx, eax
mov dword [esp + 0x2d0], edx
test esi, esi
je 0x59901f
mov eax, dword [esp + 0x48]
shl eax, 3
push eax
push 0
lea eax, [esp + 0x2e0]
jmp 0x599016
mov eax, dword [esp + 0x48]
lea eax, [esp + eax*8]
add eax, 0x2d8
mov dword [esp + 4], eax
jmp 0x598e10
or edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x18]
or ecx, dword [esp + 0x40]
mov eax, dword [esp + 4]
mov dword [eax + ebx*8 - 8], edx
mov dword [eax + ebx*8 - 4], ecx
lea eax, [esp + ebx*8]
add eax, 0x2c8
mov dword [esp + 0x40], eax
add ebx, 0xfffffffe
test ebx, ebx
je 0x598d58
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x68]
shl eax, cl
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x38], 0
test cl, 0x20
jne 0x598e41
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
mov esi, dword [esp + ebx*8 + 0x2d0]
mov eax, dword [esp + ebx*8 + 0x2d4]
mov edx, eax
mov ecx, dword [esp + 0x2c]
shr edx, cl
shrd esi, eax, cl
test cl, 0x20
je 0x598e63
mov esi, edx
xor edx, edx
or esi, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 4]
mov ecx, dword [esp + 4]
mov dword [ecx + ebx*8], esi
mov esi, dword [esp + ebx*8 + 0x2d0]
mov dword [esp + 0x58], esi
mov ecx, dword [esp + 0x68]
shl esi, cl
mov dword [esp + 0x40], esi
mov dword [esp + 0x38], 0
test cl, 0x20
jne 0x598e9f
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x5c]
shld eax, esi, cl
test cl, 0x20
jne 0x598eb3
mov dword [esp + 0x1c], eax
or edx, dword [esp + 0x1c]
mov eax, dword [esp + ebx*8 + 0x2c8]
mov ecx, dword [esp + 4]
mov dword [ecx + ebx*8 + 4], edx
mov edx, dword [esp + ebx*8 + 0x2d4]
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x58]
shld edx, esi, cl
test cl, 0x20
jne 0x598ee1
mov dword [esp + 0x40], edx
mov esi, dword [esp + ebx*8 + 0x2cc]
mov edx, esi
mov ecx, dword [esp + 0x2c]
shr edx, cl
test cl, 0x20
jne 0x598ef9
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x2c]
shrd eax, esi, cl
test cl, 0x20
jne 0x598de1
mov edx, eax
jmp 0x598de1
mov esi, dword [esp + edx*8 + 0xc8]
mov eax, dword [esp + edx*8 + 0xcc]
mov ecx, dword [esp + 0x68]
shld eax, esi, cl
mov dword [esp + 0x1c], eax
shl esi, cl
mov dword [esp + 0x40], esi
test cl, 0x20
je 0x598f44
mov eax, dword [esp + 0x40]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x40], 0
mov eax, dword [esp + edx*8 + 0xc0]
mov dword [esp + 4], eax
mov eax, dword [esp + edx*8 + 0xc4]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x2c]
shr eax, cl
mov esi, dword [esp + 0x18]
shrd dword [esp + 4], esi, cl
mov esi, dword [esp + 4]
test cl, 0x20
je 0x598f76
mov esi, eax
xor eax, eax
or esi, dword [esp + 0x40]
or eax, dword [esp + 0x1c]
add ebx, dword [esp + 0x48]
mov dword [esp + ebx*8 + 0xd0], esi
mov dword [esp + ebx*8 + 0xd4], eax
lea ebx, [edx - 2]
lea eax, [esp + edx*8]
add eax, 0xc0
mov dword [esp + 0x40], eax
cmp edx, 2
jne 0x59911b
mov esi, dword [esp + 0xd0]
mov eax, dword [esp + 0xd4]
mov edx, esi
mov ecx, dword [esp + 0x68]
shl edx, cl
shld eax, esi, cl
test cl, 0x20
je 0x598fca
mov eax, edx
xor edx, edx
mov esi, dword [esp + 0x48]
mov dword [esp + esi*8 + 0xd0], edx
mov dword [esp + esi*8 + 0xd4], eax
mov eax, dword [esp + 0xc8]
add eax, esi
mov ecx, dword [esp + eax*8 + 0xd0]
xor edx, edx
or ecx, dword [esp + eax*8 + 0xd4]
setne dl
add edx, eax
mov dword [esp + 0xc8], edx
test esi, esi
je 0x59901f
lea eax, [esp + 0xd0]
mov ecx, dword [esp + 0x48]
shl ecx, 3
push ecx
push 0
push eax
call fcn.005c5400
add esp, 0xc
mov esi, dword [esp + 0xc8]
cmp esi, dword [esp + 0x2d0]
jne 0x5990b4
mov ecx, esi
jmp 0x59903d
or eax, esi
mov esi, ecx
jne 0x5990bc
sub ecx, 1
jb 0x5990ce
mov eax, dword [esp + esi*8 + 0xc8]
mov ebx, dword [esp + esi*8 + 0xcc]
mov edx, dword [esp + esi*8 + 0x2d0]
mov esi, dword [esp + esi*8 + 0x2d4]
mov dword [esp + 4], eax
mov dword [esp + 0x40], edx
cmp edx, eax
mov dword [esp + 0x2c], esi
mov eax, esi
sbb eax, ebx
mov dword [esp + 0x18], 1
jb 0x599086
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 4]
xor eax, dword [esp + 0x40]
mov esi, ebx
xor esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
cmp dword [esp + 4], edx
sbb ebx, dword [esp + 0x2c]
mov dword [esp + 0x1c], 0xffffffff
jb 0x599037
mov edx, dword [esp + 0x18]
mov dword [esp + 0x1c], edx
jmp 0x599037
setae al
movzx ecx, al
jmp 0x5990d5
xor ecx, ecx
cmp dword [esp + 0x1c], 0
setg al
je 0x5990ce
xor edx, edx
mov cl, al
jmp 0x5990d7
mov ecx, dword [esp + 0x50]
and ecx, 1
xor edx, edx
add ecx, dword [esp + 0x50]
adc edx, dword [esp + 0x20]
mov eax, edx
mov esi, 0x7ff00000
xor eax, esi
or eax, ecx
je 0x5997d1
xor eax, eax
cmp byte [esp + 0x34], 0x2d
sete al
shl eax, 0x1f
or edx, eax
mov eax, dword [esp + 0x44]
mov dword [eax + 4], 0
mov dword [eax], 0x14
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
jmp 0x596beb
mov eax, dword [esp + 0x48]
lea eax, [esp + eax*8]
add eax, 0xd0
mov dword [esp + 4], eax
jmp 0x59915c
or esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x18]
or ecx, dword [esp + 0x40]
mov eax, dword [esp + 4]
mov dword [eax + ebx*8 - 8], esi
mov dword [eax + ebx*8 - 4], ecx
lea eax, [esp + ebx*8]
add eax, 0xc0
mov dword [esp + 0x40], eax
add ebx, 0xfffffffe
test ebx, ebx
je 0x598fa8
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x68]
shl eax, cl
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x38], 0
test cl, 0x20
jne 0x59918d
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
mov edx, dword [esp + ebx*8 + 0xc8]
mov eax, dword [esp + ebx*8 + 0xcc]
mov esi, eax
mov ecx, dword [esp + 0x2c]
shr esi, cl
shrd edx, eax, cl
test cl, 0x20
je 0x5991af
mov edx, esi
xor esi, esi
or edx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 4]
mov ecx, dword [esp + 4]
mov dword [ecx + ebx*8], edx
mov edx, dword [esp + ebx*8 + 0xc8]
mov dword [esp + 0x58], edx
mov ecx, dword [esp + 0x68]
shl edx, cl
mov dword [esp + 0x40], edx
mov dword [esp + 0x38], 0
test cl, 0x20
jne 0x5991eb
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x5c]
shld eax, edx, cl
test cl, 0x20
jne 0x5991ff
mov dword [esp + 0x1c], eax
or esi, dword [esp + 0x1c]
mov eax, dword [esp + ebx*8 + 0xc0]
mov ecx, dword [esp + 4]
mov dword [ecx + ebx*8 + 4], esi
mov edx, dword [esp + ebx*8 + 0xcc]
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x58]
shld edx, esi, cl
test cl, 0x20
jne 0x59922d
mov dword [esp + 0x40], edx
mov edx, dword [esp + ebx*8 + 0xc4]
mov esi, edx
mov ecx, dword [esp + 0x2c]
shr esi, cl
test cl, 0x20
jne 0x599245
mov dword [esp + 0x18], esi
mov ecx, dword [esp + 0x2c]
shrd eax, edx, cl
test cl, 0x20
jne 0x59912d
mov esi, eax
jmp 0x59912d
add ebx, 1
mov dword [esp + 0x54], str.invalid_escaped_character_in_string
mov esi, str.invalid_escaped_character_in_string
jmp 0x596fc9
mov eax, dword [esp + 0x28]
mov esi, eax
shr esi, 1
add esi, eax
cmp esi, 0xffffffe
ja 0x589be9
mov edi, esi
shl edi, 4
mov eax, dword [esp + 0x28]
shl eax, 4
push edi
push eax
push dword [esp + 0x1c]
push dword [esp + 0x8c]
call dword [esp + 0xa0]
add esp, 0x10
test eax, eax
je 0x589be9
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x44]
sub edx, ecx
add edx, eax
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0xc]
sub edx, ecx
add edx, eax
mov dword [esp + 0xc], edx
lea ecx, [edi + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x84], ecx
mov edi, dword [esp + 0x10]
mov cl, byte [edi]
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], esi
jmp 0x595d12
mov esi, eax
mov eax, dword [ebp + 0x10]
test al, 0x10
jne 0x599c4d
mov dword [esp + 0x54], str.no_digit_after_minus_sign
mov dword [esp + 0x10], ebx
jmp 0x599829
cmp cl, 0x2e
jne 0x599d41
mov eax, dword [esp + 0x40]
movzx eax, byte [eax + 1]
test byte [eax + 0x5ffe78], 3
je 0x599816
mov ecx, eax
mov ebx, dword [esp + 0x40]
cmp al, 0x30
je 0x599d1a
mov eax, ecx
add eax, 0xffffffd0
mov dword [esp + 0x2c], eax
sar eax, 0x1f
mov dword [esp + 4], eax
jmp 0x599368
mov ecx, dword [esp + 0x2c]
sar ecx, 0x1f
mov dword [esp + 4], ecx
cmp dl, 0x2e
jne 0x599b45
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
movzx ecx, byte [ebx + 2]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x599c41
mov edx, 0xa
mov eax, dword [esp + 0x2c]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0x2c], eax
adc esi, edx
mov dword [esp + 4], esi
movzx ecx, byte [ebx + 3]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x599c35
mov edx, 0xa
mov eax, dword [esp + 0x2c]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0x2c], eax
adc esi, edx
mov dword [esp + 4], esi
movzx ecx, byte [ebx + 4]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x599c29
mov edx, 0xa
mov eax, dword [esp + 0x2c]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0x2c], eax
adc esi, edx
mov dword [esp + 4], esi
movzx ecx, byte [ebx + 5]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x599c1d
mov edx, 0xa
mov eax, dword [esp + 0x2c]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0x2c], eax
adc esi, edx
mov dword [esp + 4], esi
movzx ecx, byte [ebx + 6]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x599c11
mov edx, 0xa
mov eax, dword [esp + 0x2c]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0x2c], eax
adc esi, edx
mov dword [esp + 4], esi
movzx ecx, byte [ebx + 7]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x599c05
mov edx, 0xa
mov eax, dword [esp + 0x2c]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0x2c], eax
adc esi, edx
mov dword [esp + 4], esi
movzx ecx, byte [ebx + 8]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x599bdc
mov edx, 0xa
mov eax, dword [esp + 0x2c]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0x2c], eax
adc esi, edx
mov dword [esp + 4], esi
movzx ecx, byte [ebx + 9]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x599bd0
mov edx, 0xa
mov eax, dword [esp + 0x2c]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0x2c], eax
adc esi, edx
mov dword [esp + 4], esi
movzx ecx, byte [ebx + 0xa]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x599bc4
mov edx, 0xa
mov eax, dword [esp + 0x2c]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0x2c], eax
adc esi, edx
mov dword [esp + 4], esi
movzx ecx, byte [ebx + 0xb]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x599bb8
mov edx, 0xa
mov eax, dword [esp + 0x2c]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0x2c], eax
adc esi, edx
mov dword [esp + 4], esi
movzx ecx, byte [ebx + 0xc]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x599bac
mov edx, 0xa
mov eax, dword [esp + 0x2c]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0x2c], eax
adc esi, edx
mov dword [esp + 4], esi
movzx ecx, byte [ebx + 0xd]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x599ba0
mov edx, 0xa
mov eax, dword [esp + 0x2c]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0x2c], eax
adc esi, edx
mov dword [esp + 4], esi
movzx ecx, byte [ebx + 0xe]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x599b94
mov edx, 0xa
mov eax, dword [esp + 0x2c]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0x2c], eax
adc esi, edx
mov dword [esp + 4], esi
movzx ecx, byte [ebx + 0xf]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x599b88
mov edx, 0xa
mov eax, dword [esp + 0x2c]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0x2c], eax
adc esi, edx
mov dword [esp + 4], esi
movzx ecx, byte [ebx + 0x10]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x599b7c
mov edx, 0xa
mov eax, dword [esp + 0x2c]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0x2c], eax
adc esi, edx
mov dword [esp + 4], esi
movzx ecx, byte [ebx + 0x11]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x599b70
mov edx, 0xa
mov eax, dword [esp + 0x2c]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0x2c], eax
adc esi, edx
mov dword [esp + 4], esi
movzx ecx, byte [ebx + 0x12]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x599b64
mov edx, 0xa
mov eax, dword [esp + 0x2c]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0x2c], eax
adc esi, edx
mov dword [esp + 4], esi
movzx ecx, byte [ebx + 0x13]
mov eax, ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x599b39
mov edx, 0xa
mov eax, dword [esp + 0x2c]
mul edx
mov esi, dword [esp + 4]
add esi, esi
lea esi, [esi + esi*4]
add eax, ecx
mov dword [esp + 0x2c], eax
adc esi, edx
mov dword [esp + 4], esi
mov ecx, ebx
movzx eax, byte [ebx + 0x14]
add ecx, 0x14
test byte [eax + 0x5ffe78], 3
mov dword [esp + 8], ecx
jne 0x596780
mov edx, eax
mov eax, dword [esp + 0x40]
add eax, 1
cmp eax, dword [esp + 8]
je 0x5998b6
mov ecx, dword [esp + 8]
sub ecx, dword [esp + 0x40]
mov eax, ecx
sar eax, 0x1f
mov dword [esp + 0x38], 0
mov esi, 1
sub esi, ecx
mov ebx, 0
sbb ebx, eax
mov dword [esp + 0x20], ebx
movzx eax, dl
test byte [eax + 0x5ffe78], 0x20
jne 0x599be8
cmp ecx, 0x159
jge 0x5979a6
mov dword [esp + 0x38], 0
mov eax, dword [esp + 8]
mov dword [esp + 0x7c], eax
mov ebx, dword [esp + 4]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x40]
mov ecx, esi
mov esi, eax
jmp 0x59698b
cmp dl, 0x2e
jne 0x599b45
mov ebx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
jmp 0x5996ba
mov eax, dword [esp + 0x44]
mov dword [eax + 4], 0
mov dword [eax], 0x14
mov eax, 0xfff00000
cmp byte [esp + 0x34], 0x2d
je 0x5997bb
mov eax, 0x7ff00000
mov ecx, dword [esp + 0x44]
jmp 0x5979c4
mov ebx, dword [esp + 0x4c]
mov edx, dword [esp + 0xc]
jmp 0x599fd7
mov eax, dword [ebp + 0x10]
test al, al
js 0x5997f1
mov eax, dword [ebp + 0x10]
test al, 0x10
jne 0x599e30
mov dword [esp + 0x54], str.number_is_infinity_when_parsed_as_double
mov dword [esp + 0x10], edi
jmp 0x599829
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x5997fe
mov byte [eax], 0
mov esi, dword [esp + 8]
jmp 0x597b5f
xor esi, esi
mov dword [esp + 0x20], 0
jmp 0x597eaf
mov eax, dword [esp + 0x40]
add eax, 1
mov dword [esp + 0x54], str.no_digit_after_decimal_point
mov dword [esp + 0x10], eax
mov ebx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x14]
mov edi, ecx
mov esi, dword [esp + 0x10]
mov ecx, ebx
mov edx, esi
push dword [ebp + 0x10]
push 9
push dword [esp + 0x78]
call fcn.005a86b0
add esp, 0xc
test al, al
jne 0x599854
mov dword [esp + 0x70], esi
mov ecx, str.unexpected_end_of_data
jne 0x59985f
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x70]
sub edx, dword [esp + 0x4c]
mov dword [esp + 0x70], edx
xor al, 1
movzx eax, al
lea eax, [eax*4 + 5]
cmp dword [ebp + 0x18], 0
je 0x599882
mov edx, dword [ebp + 0x18]
jmp 0x599889
lea edx, [esp + 0xa4]
mov esi, dword [esp + 0x70]
mov dword [edx + 8], esi
mov dword [edx], eax
mov dword [edx + 4], ecx
xor esi, esi
test edi, edi
je 0x59a1af
push edi
push dword [esp + 0x84]
call dword [esp + 0x94]
add esp, 8
jmp 0x59a1af
mov dword [esp + 0x54], str.no_digit_after_decimal_point
mov eax, dword [esp + 8]
jmp 0x599825
mov dword [esp + 0x54], str.unexpected_control_character_in_string
mov esi, str.unexpected_control_character_in_string
jmp 0x596fc9
mov dword [esp + 0x54], str.invalid_UTF_8_encoding_in_string
mov esi, str.invalid_UTF_8_encoding_in_string
jmp 0x596fc9
mov dword [esp + 0x54], str.invalid_low_surrogate_in_string
mov esi, str.invalid_low_surrogate_in_string
mov ebx, dword [esp + 0x40]
jmp 0x596fc9
mov dword [esp + 0x54], str.no_low_surrogate_in_string
mov esi, str.no_low_surrogate_in_string
mov ebx, dword [esp + 0x40]
jmp 0x596fc9
mov dword [esp + 0x54], str.invalid_escaped_sequence_in_string
mov esi, str.invalid_escaped_sequence_in_string
jmp 0x596fc9
mov dword [esp + 0x54], str.unclosed_string
mov esi, str.unclosed_string
jmp 0x596fc9
mov dword [esp + 0x54], str.invalid_escaped_sequence_in_string
mov esi, str.invalid_escaped_sequence_in_string
mov ebx, dword [esp + 0x40]
jmp 0x596fc9
mov dword [esp + 0x54], str.invalid_high_surrogate_in_string
mov esi, str.invalid_high_surrogate_in_string
jmp 0x596fc9
test esi, esi
je 0x5999f2
lea eax, [esi - 1]
mov dword [esp + 0x2c], eax
mov edx, esi
and edx, 3
je 0x5999f6
mov eax, dword [esp + 0x48]
lea ebx, [esp + eax*8]
add ebx, 0x2d0
mov eax, dword [esp + esi*8 + 0x2d0]
mov ecx, dword [esp + esi*8 + 0x2d4]
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], ecx
lea eax, [esi - 1]
mov esi, eax
add edx, 0xffffffff
jne 0x599986
jmp 0x5999f8
test edx, edx
je 0x599a8d
lea eax, [edx - 1]
mov dword [esp + 0x2c], eax
mov esi, edx
and esi, 3
je 0x599aa2
mov eax, dword [esp + 0x48]
lea ebx, [esp + eax*8]
add ebx, 0xc8
mov eax, dword [esp + edx*8 + 0xc8]
mov ecx, dword [esp + edx*8 + 0xcc]
mov dword [ebx + edx*8], eax
mov dword [ebx + edx*8 + 4], ecx
lea eax, [edx - 1]
mov edx, eax
add esi, 0xffffffff
jne 0x5999ce
jmp 0x599aa4
xor eax, eax
jmp 0x599a73
mov eax, esi
cmp dword [esp + 0x2c], 3
jb 0x599a6c
mov ecx, dword [esp + 0x48]
lea ecx, [esp + ecx*8]
add ecx, 0x2d0
mov edx, eax
mov esi, dword [esp + eax*8 + 0x2d0]
mov ebx, dword [esp + eax*8 + 0x2d4]
mov dword [ecx + eax*8 + 4], ebx
mov dword [ecx + eax*8], esi
mov esi, dword [esp + eax*8 + 0x2cc]
mov ebx, dword [esp + eax*8 + 0x2c8]
mov dword [ecx + eax*8 - 8], ebx
mov dword [ecx + eax*8 - 4], esi
mov esi, dword [esp + eax*8 + 0x2c0]
mov ebx, dword [esp + eax*8 + 0x2c4]
mov dword [ecx + eax*8 - 0xc], ebx
mov dword [ecx + eax*8 - 0x10], esi
mov esi, dword [esp + eax*8 + 0x2bc]
mov ebx, dword [esp + eax*8 + 0x2b8]
mov dword [ecx + eax*8 - 0x18], ebx
mov dword [ecx + eax*8 - 0x14], esi
add edx, 0xfffffffc
mov eax, edx
jne 0x599a0e
mov eax, dword [esp + 0x2d0]
mov ecx, dword [esp + 0x48]
add eax, ecx
mov dword [esp + 0x2d0], eax
test ecx, ecx
jne 0x598db9
jmp 0x59901f
xor eax, eax
jmp 0x599b1f
mov ecx, 5
mov esi, dword [esp + 4]
jmp 0x59658f
mov eax, edx
cmp dword [esp + 0x2c], 3
jb 0x599b18
mov ecx, dword [esp + 0x48]
lea ecx, [esp + ecx*8]
add ecx, 0xc8
mov edx, eax
mov esi, dword [esp + eax*8 + 0xc8]
mov ebx, dword [esp + eax*8 + 0xcc]
mov dword [ecx + eax*8 + 4], ebx
mov dword [ecx + eax*8], esi
mov esi, dword [esp + eax*8 + 0xc4]
mov ebx, dword [esp + eax*8 + 0xc0]
mov dword [ecx + eax*8 - 8], ebx
mov dword [ecx + eax*8 - 4], esi
mov esi, dword [esp + eax*8 + 0xb8]
mov ebx, dword [esp + eax*8 + 0xbc]
mov dword [ecx + eax*8 - 0xc], ebx
mov dword [ecx + eax*8 - 0x10], esi
mov esi, dword [esp + eax*8 + 0xb4]
mov ebx, dword [esp + eax*8 + 0xb0]
mov dword [ecx + eax*8 - 0x18], ebx
mov dword [ecx + eax*8 - 0x14], esi
add edx, 0xfffffffc
mov eax, edx
jne 0x599aba
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x48]
add eax, ecx
mov dword [esp + 0xc8], eax
test ecx, ecx
jne 0x599005
jmp 0x59901f
add ebx, 0x13
mov dword [esp + 8], ebx
jmp 0x599706
xor ecx, ecx
xor edx, edx
mov eax, dword [esp + 8]
mov esi, eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x38], 0
mov ebx, dword [esp + 4]
jmp 0x596886
add ebx, 0x12
mov dword [esp + 8], ebx
jmp 0x599706
add ebx, 0x11
mov dword [esp + 8], ebx
jmp 0x599706
add ebx, 0x10
mov dword [esp + 8], ebx
jmp 0x599706
add ebx, 0xf
mov dword [esp + 8], ebx
jmp 0x599706
add ebx, 0xe
mov dword [esp + 8], ebx
jmp 0x599706
add ebx, 0xd
mov dword [esp + 8], ebx
jmp 0x599706
add ebx, 0xc
mov dword [esp + 8], ebx
jmp 0x599706
add ebx, 0xb
mov dword [esp + 8], ebx
jmp 0x599706
add ebx, 0xa
mov dword [esp + 8], ebx
jmp 0x599706
add ebx, 9
mov dword [esp + 8], ebx
jmp 0x599706
add ebx, 8
mov dword [esp + 8], ebx
jmp 0x599706
mov eax, dword [esp + 8]
mov dword [esp + 0x7c], eax
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0x40]
mov ecx, esi
mov esi, eax
mov edx, dword [esp + 0x20]
jmp 0x596886
add ebx, 7
mov dword [esp + 8], ebx
jmp 0x599706
add ebx, 6
mov dword [esp + 8], ebx
jmp 0x599706
add ebx, 5
mov dword [esp + 8], ebx
jmp 0x599706
add ebx, 4
mov dword [esp + 8], ebx
jmp 0x599706
add ebx, 3
mov dword [esp + 8], ebx
jmp 0x599706
add ebx, 2
mov dword [esp + 8], ebx
jmp 0x599706
xor ecx, ecx
cmp byte [esp + 0x34], 0x2d
sete al
mov edx, esi
add dl, 0xb7
cmp dl, 0x25
ja case.0x599c6e.182
mov cl, al
mov eax, ebx
sub eax, ecx
movzx ecx, dl
jmp dword [ecx*4 + 0x603f40]
mov cl, byte [ebx + 1]
or cl, 0x20
cmp cl, 0x6e
jne 0x599d87
mov cl, byte [ebx + 2]
or cl, 0x20
cmp cl, 0x66
jne 0x599d87
mov edx, ebx
lea ecx, [ebx + 3]
mov dl, byte [ebx + 3]
or dl, 0x20
cmp dl, 0x69
jne 0x599cd4
mov dl, byte [ebx + 4]
or dl, 0x20
cmp dl, 0x6e
jne 0x599cd4
mov dl, byte [ebx + 5]
or dl, 0x20
cmp dl, 0x69
jne 0x599cd4
mov dl, byte [ebx + 6]
or dl, 0x20
cmp dl, 0x74
jne 0x599cd4
mov dl, byte [ebx + 7]
or dl, 0x20
cmp dl, 0x79
jne 0x599cd4
mov ecx, ebx
add ecx, 8
cmp dword [esp + 0x3c], 0
je 0x599e63
mov edx, dword [esp + 0x3c]
mov edx, dword [edx]
test edx, edx
je 0x599cec
mov byte [edx], 0
mov edx, dword [esp + 0x3c]
mov dword [edx], ecx
mov edx, ecx
sub edx, eax
mov esi, edx
sar esi, 0x1f
shld esi, edx, 8
mov edi, dword [esp + 0x44]
mov dword [edi + 4], esi
shl edx, 8
or edx, 1
mov dword [edi], edx
mov dword [edi + 8], eax
mov dword [esp + 0x10], ecx
jmp 0x596bf3
mov ebx, dword [esp + 0x40]
movzx eax, byte [ebx + 2]
add ebx, 1
cmp eax, 0x30
je 0x599d1e
mov ecx, eax
mov al, byte [ecx + 0x5ffe78]
test al, 3
jne 0x599338
add ebx, 1
mov dword [esp + 0x40], ebx
test al, 3
jne 0x599d73
test al, 0x20
jne 0x599e9c
xor eax, eax
cmp byte [esp + 0x34], 0x2d
sete al
mov ecx, dword [esp + 0x44]
mov dword [ecx + 4], 0
mov dword [ecx], 0x14
shl eax, 0x1f
mov dword [ecx + 0xc], eax
jmp 0x5971c3
mov dword [esp + 0x54], str.number_with_leading_zero_is_not_allowed
mov eax, dword [esp + 0x40]
add eax, 0xffffffff
jmp 0x599825
mov ecx, esi
cmp cl, 0x4e
jne case.0x599c6e.182
mov cl, byte [ebx + 1]
or cl, 0x20
cmp cl, 0x61
jne case.0x599c6e.182
mov cl, byte [ebx + 2]
or cl, 0x20
cmp cl, 0x6e
jne case.0x599c6e.182
add ebx, 3
cmp dword [esp + 0x3c], 0
je 0x599df7
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x599dc7
mov byte [ecx], 0
mov ecx, dword [esp + 0x3c]
mov dword [ecx], ebx
mov ecx, 0x401
cmp byte [esp + 0x34], 0x2d
je 0x599dde
mov ecx, 0x301
mov edx, dword [esp + 0x44]
mov dword [edx], ecx
mov dword [edx + 4], 0
mov dword [edx + 8], eax
mov dword [esp + 0x10], ebx
jmp 0x596bf3
mov eax, dword [esp + 0x44]
mov dword [eax + 4], 0
mov dword [eax], 0x14
mov eax, 0xfff80000
cmp byte [esp + 0x34], 0x2d
je 0x599e19
mov eax, 0x7ff80000
mov ecx, dword [esp + 0x44]
mov dword [ecx + 0xc], eax
mov dword [ecx + 8], 0
mov dword [esp + 0x10], ebx
jmp 0x596bf3
xor eax, eax
mov ecx, dword [esp + 0x44]
mov dword [ecx + 4], 0
mov dword [ecx], 0x14
mov ecx, 0xfff00000
cmp byte [esp + 0x34], 0x2d
je 0x599e54
mov ecx, 0x7ff00000
mov edx, dword [esp + 0x44]
mov dword [edx + 0xc], ecx
mov dword [edx + 8], eax
jmp 0x596beb
mov eax, dword [esp + 0x44]
mov dword [eax + 4], 0
mov dword [eax], 0x14
mov eax, 0xfff00000
cmp byte [esp + 0x34], 0x2d
je 0x599e85
mov eax, 0x7ff00000
mov edx, dword [esp + 0x44]
mov dword [edx + 0xc], eax
mov dword [edx + 8], 0
mov dword [esp + 0x10], ecx
jmp 0x596bf3
mov ecx, dword [esp + 0x40]
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 + 0x40], ecx
test byte [eax + 0x5ffe78], 3
je 0x599ee2
mov ecx, dword [esp + 0x40]
movzx eax, byte [ecx + 1]
add ecx, 1
mov dword [esp + 0x40], ecx
test byte [eax + 0x5ffe78], 3
jne 0x599ec5
jmp 0x599d4d
mov dword [esp + 0x54], str.no_digit_after_exponent_sign
mov eax, dword [esp + 0x40]
jmp 0x599825
xor esi, esi
mov eax, dword [esp + 0x14]
test eax, eax
je 0x599f0f
push eax
push dword [esp + 0x84]
call dword [esp + 0x94]
add esp, 8
test esi, esi
je 0x589bdd
mov dword [ebx + 8], 0
mov dword [ebx + 4], 0
mov dword [ebx], 0
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [esp + 0x10]
movzx eax, word [edi]
cmp eax, 0xa2c
mov dword [esp + 0x14], ecx
jne 0x599f53
add edi, 2
mov dword [esp + 0x10], edi
jmp 0x595acf
lea esi, [esp + 0x10]
cmp al, 0x5d
je 0x599fce
cmp al, 0x2c
je 0x599fc2
movzx eax, al
test byte [eax + 0x5ffc78], 1
jne 0x599f9b
mov eax, dword [ebp + 0x10]
test al, 8
je case.0x595d2a.182
mov dword [esp + 0xc], edx
mov ecx, esi
call fcn.0059a490
test al, al
je 0x59a0a4
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
jmp 0x599fb6
add edi, 1
nop
nop
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
add edi, 1
test byte [eax + 0x5ffc78], 1
jne 0x599fa0
add edi, 0xffffffff
movzx eax, word [edi]
cmp eax, 0xa2c
jne 0x599f57
jmp 0x599f47
add edi, 1
mov dword [esp + 0x10], edi
jmp 0x595acf
add edi, 1
mov dword [esp + 0x10], edi
mov esi, edi
mov edi, dword [esp + 0x30]
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x44]
sub ecx, edx
add ecx, 0x10
mov dword [edx + 8], ecx
shl edi, 8
or edi, 6
mov dword [edx], edi
mov dword [edx + 4], 0
test eax, eax
je 0x59a02f
sub edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
cmp byte [esi], 0xa
jne 0x59a010
add esi, 1
mov dword [esp + 0x10], esi
shld ecx, eax, 0x18
not eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x40], ecx
test al, 7
mov ecx, dword [esp + 0x14]
jne 0x599f35
jmp 0x5919f4
mov eax, dword [ebp + 0x10]
test al, 2
jne 0x59a040
cmp esi, dword [esp + 0x70]
jb 0x59a10b
cmp byte [esp + 0x24], 0
je 0x59a054
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x59a054
mov byte [eax], 0
mov esi, dword [esp + 0x14]
lea eax, [esi + 0x20]
mov dword [esi], eax
mov eax, dword [esp + 0xb0]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x90]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x8c]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x80]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x4c]
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x44]
sub eax, esi
sar eax, 4
add eax, 0xffffffff
mov dword [esi + 0x18], eax
jmp 0x59a3fa
mov esi, dword [esp + 0x10]
movzx eax, word [esi]
mov edi, esi
cmp eax, 0x2a2f
mov ebx, dword [esp + 0x4c]
jne case.0x595d2a.182
mov ecx, ebx
mov edx, esi
push dword [ebp + 0x10]
push 8
push dword [esp + 0x78]
call fcn.005a86b0
add esp, 0xc
test al, al
jne 0x59a0d9
mov dword [esp + 0x70], esi
mov ecx, str.unexpected_end_of_data
jne 0x59a0e5
mov ecx, str.unclosed_multiline_comment
mov edx, dword [esp + 0x70]
sub edx, dword [esp + 0x4c]
mov dword [esp + 0x70], edx
xor al, 1
movzx eax, al
lea eax, [eax + eax*2]
add eax, 5
cmp dword [ebp + 0x18], 0
je 0x597824
jmp 0x597016
mov eax, dword [ebp + 0x10]
test al, 8
jne 0x59a143
movzx eax, byte [esi]
test byte [eax + 0x5ffc78], 1
je 0x59a137
add esi, 1
mov dword [esp + 0x10], esi
movzx eax, byte [esi]
add esi, 1
test byte [eax + 0x5ffc78], 1
jne 0x59a121
add esi, 0xffffffff
cmp esi, dword [esp + 0x70]
jae 0x59a040
jmp 0x59a163
lea ecx, [esp + 0x10]
call fcn.0059a490
mov esi, dword [esp + 0x10]
movzx eax, word [esi]
cmp eax, 0x2a2f
jne 0x59a137
mov ebx, dword [esp + 0x4c]
jmp 0x59a0bc
mov ecx, dword [esp + 0x4c]
mov edx, esi
push dword [ebp + 0x10]
push 4
push dword [esp + 0x78]
call fcn.005a86b0
add esp, 0xc
test al, al
jne 0x59a182
mov dword [esp + 0x70], esi
movzx eax, al
mov ecx, str.unexpected_end_of_data
jne 0x59a191
mov ecx, str.unexpected_content_after_document
mov edx, dword [esp + 0x70]
sub edx, dword [esp + 0x4c]
mov dword [esp + 0x70], edx
or eax, 4
cmp dword [ebp + 0x18], 0
je 0x597824
jmp 0x597016
mov edi, dword [ebp + 0x18]
mov ebx, dword [esp + 0x88]
test esi, esi
jne 0x599f17
jmp 0x589bdd
lea esi, [esp + 0x10]
mov dword [esp + 0x14], ecx
mov edi, dword [esp + 0x10]
movzx eax, byte [edi]
cmp eax, 0x5d
je 0x59a251
cmp al, 0x2c
je 0x59a235
test byte [eax + 0x5ffc78], 1
jne 0x59a210
mov eax, dword [ebp + 0x10]
test al, 8
je case.0x58877b.182
mov ecx, esi
mov edi, edx
call fcn.0059a490
mov edx, edi
test al, al
mov ecx, dword [esp + 0x14]
jne 0x59a1ce
jmp 0x5911bc
add edi, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
add edi, 1
test byte [eax + 0x5ffc78], 1
jne 0x59a220
jmp 0x59a1ce
add edi, 1
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x28]
jmp 0x588689
add edi, 1
mov dword [esp + 0x10], edi
mov ebx, edi
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x28]
mov eax, dword [esi + 8]
mov ecx, edx
sub ecx, esi
add ecx, 0x10
mov dword [esi + 8], ecx
shl edi, 8
or edi, 6
mov dword [esi], edi
mov dword [esi + 4], 0
test eax, eax
je 0x59a38a
sub esi, eax
mov eax, dword [esi]
mov dword [esp + 0x40], esi
mov ecx, dword [esi + 1]
not eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x3c], ecx
test al, 7
mov ecx, dword [esp + 0x14]
jne 0x59a1c6
lea esi, [esp + 0x10]
mov edi, dword [esp + 0x10]
movzx eax, byte [edi]
cmp eax, 0x2c
je 0x59a372
mov dword [esp + 0x14], ecx
cmp al, 0x7d
je 0x59a409
mov ebx, edx
test byte [eax + 0x5ffc78], 1
jne 0x59a2ef
mov eax, dword [ebp + 0x10]
test al, 8
je case.0x58877b.182
mov ecx, esi
call fcn.0059a490
test al, al
mov ecx, dword [esp + 0x14]
mov edx, ebx
jne 0x59a2ab
jmp 0x5911bc
add edi, 1
mov ecx, dword [esp + 0x14]
mov edx, ebx
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
add edi, 1
test byte [eax + 0x5ffc78], 1
jne 0x59a2f8
jmp 0x59a2ab
mov esi, dword [esp + 0x4c]
mov ecx, esi
mov edx, edi
push dword [ebp + 0x10]
push 6
push dword [esp + 0x78]
call fcn.005a86b0
add esp, 0xc
test al, al
jne 0x59a32e
mov dword [esp + 0x70], edi
movzx edx, al
mov eax, str.unexpected_end_of_data
mov ebx, dword [esp + 0x88]
jne 0x59a344
mov eax, str.unexpected_character
mov ecx, dword [esp + 0x70]
sub ecx, esi
mov esi, ecx
mov ecx, 6
sub ecx, edx
mov edi, dword [ebp + 0x18]
test edi, edi
je 0x59a35e
mov edx, edi
jmp 0x59a365
lea edx, [esp + 0xa4]
mov dword [edx + 8], esi
mov dword [edx], ecx
mov dword [edx + 4], eax
jmp 0x599ef3
add edi, 1
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0x40]
jmp 0x58c9a3
mov esi, ebx
mov edi, edx
mov eax, dword [ebp + 0x10]
test al, 2
jne 0x59a39f
cmp esi, dword [esp + 0x70]
jb 0x59a432
cmp byte [esp + 0x2c], 0
je 0x59a3b3
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
test eax, eax
je 0x59a3b3
mov byte [eax], 0
mov esi, dword [esp + 0x14]
lea eax, [esi + 0x20]
mov dword [esi], eax
mov ecx, dword [esp + 0xb0]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x90]
mov dword [esi + 8], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x80]
mov dword [esi + 0x10], ecx
mov ecx, dword [esp + 0x10]
sub ecx, dword [esp + 0x4c]
mov dword [esi + 0x14], ecx
sub edi, eax
sar edi, 4
add edi, 1
mov dword [esi + 0x18], edi
mov eax, dword [esp + 0xc4]
mov dword [esi + 0x1c], eax
jmp 0x59a1af
add edi, 1
mov dword [esp + 0x10], edi
mov ebx, edi
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
mov eax, dword [esi + 8]
mov ecx, edx
sub ecx, esi
add ecx, 0x10
mov dword [esi + 8], ecx
shl edi, 7
or edi, 7
jmp 0x59a275
mov eax, dword [ebp + 0x10]
test al, 8
jne 0x59a46d
movzx eax, byte [esi]
test byte [eax + 0x5ffc78], 1
je 0x59a45e
add esi, 1
mov dword [esp + 0x10], esi
movzx eax, byte [esi]
add esi, 1
test byte [eax + 0x5ffc78], 1
jne 0x59a448
add esi, 0xffffffff
cmp esi, dword [esp + 0x70]
jae 0x59a39f
jmp 0x59a163
lea ecx, [esp + 0x10]
call fcn.0059a490
mov eax, dword [esp + 0x10]
mov esi, eax
movzx eax, word [eax]
cmp eax, 0x2a2f
je 0x5911d0
jmp 0x59a45e