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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x4d8
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 8]
test ecx, ecx
lea edi, [esp + 0xa4]
cmove ecx, edi
mov dword [esp + 0x90], ecx
test eax, eax
jne 0x489a63
mov dword [esp + 0x68], dbg.default_malloc
mov dword [esp + 0x94], dbg.default_realloc
mov dword [esp + 0x8c], dbg.default_free
mov dword [esp + 0x78], 0
test esi, esi
je 0x489a8c
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x489aa4
mov eax, dword [ebp + 0x10]
test al, 1
jne 0x489ace
cmp ecx, 0xfffffffb
jae 0x48959c
lea eax, [ecx + 4]
push eax
push dword [esp + 0x7c]
mov ebx, ecx
call dword [esp + 0x70]
add esp, 8
test eax, eax
je 0x48959c
mov ecx, eax
add ecx, ebx
mov dword [esp + 0x84], ecx
mov dword [esp + 0xb4], eax
push ebx
push esi
push eax
mov esi, eax
call sym._memcpy
mov edx, esi
add esp, 0xc
mov dword [esi + ebx], 0
movzx eax, byte [esi]
movzx ecx, byte [eax + 0x4fdfe6]
test cl, 0x21
mov dword [esp + 0x88], esi
jne 0x489ae6
and al, 0xdf
cmp al, 0x5b
jne 0x489b27
lea edi, [esi + 1]
movzx eax, byte [esi + 1]
test byte [eax + 0x4fdfe6], 1
mov dword [esp + 0xbc], edx
je 0x4887fd
movzx eax, byte [esi + 2]
test byte [eax + 0x4fdfe6], 1
jne 0x488a8e
mov eax, dword [esp + 0x84]
sub eax, esi
mov ecx, 0xaaaaaaab
mul ecx
mov dword [esp], esi
shr edx, 2
cmp edx, 0xffffff9
mov ebx, 0xffffff9
cmovb ebx, edx
mov eax, dword [ebp + 0x10]
test al, 2
jne 0x489c10
add ebx, 6
mov dword [esp + 0x10], ebx
shl ebx, 4
push ebx
push dword [esp + 0x7c]
call dword [esp + 0x70]
add esp, 8
mov ecx, eax
mov eax, 0
test ecx, ecx
je 0x48ec2a
mov eax, dword [ebp + 0x10]
test al, 0x20
jne 0x489c1a
mov edx, eax
and edx, 0x40
shr edx, 6
mov dword [esp + 0x98], edx
mov dword [esp + 0x80], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0x20], 0
test al, al
jns 0x4888a1
lea eax, [esp + 0xb0]
mov dword [esp + 0x20], eax
mov al, 1
mov dword [esp + 0x80], eax
lea eax, [ebx + ecx]
add eax, 0xffffffe0
mov dword [esp + 0x74], eax
mov ebx, ecx
add ebx, 0x20
mov dword [esp], edi
cmp byte [esi], 0x7b
jne 0x4888de
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x20], 7
mov dword [ecx + 0x28], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], ebx
jmp 0x48d0f8
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x20], 6
mov dword [ecx + 0x28], 0
xor edx, edx
mov esi, ebx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x54], esi
mov dword [esp + 8], ecx
mov edi, esp
nop word cs:[eax + eax]
mov esi, dword [esp]
movzx ecx, byte [esi]
cmp ecx, 0x5b
je 0x488b9e
cmp ecx, 0x7b
je 0x488bfd
movzx eax, byte [ecx + 0x4fdfe6]
test al, 2
jne 0x488c66
lea edx, [ecx - 0x5d]
cmp edx, 0x17
ja case.default.0x48893f
jmp dword [edx*4 + 0x501b28]
cmp ecx, 0x22
je 0x4890be
test al, 1
jne 0x488980
mov eax, dword [ebp + 0x10]
test al, 0x10
jne 0x4889a5
test al, 8
je 0x4969f2
mov ecx, edi
call dbg.skip_spaces_and_comments
test al, al
jne 0x488910
jmp 0x491933
inc esi
nop word cs:[eax + eax]
mov dword [esp], esi
movzx eax, byte [esi]
inc esi
test byte [eax + 0x4fdfe6], 1
jne 0x488990
jmp 0x488910
cmp ecx, 0x49
je 0x4889b4
cmp ecx, 0x69
je 0x4889b4
cmp ecx, 0x4e
jne 0x488964
mov eax, dword [esp + 0x54]
add eax, 0x10
mov dword [esp + 0x54], eax
cmp eax, dword [esp + 0x74]
jae 0x48c381
mov edi, dword [esp + 0x10]
movzx eax, cl
add eax, 0xffffffb7
cmp eax, 0x25
ja case.0x4889e0.74
inc dword [esp + 0x1c]
jmp dword [eax*4 + 0x501cd8]
movzx eax, byte [esi + 1]
or eax, 0x20
cmp eax, 0x6e
jne 0x48ac00
movzx eax, byte [esi + 2]
or eax, 0x20
cmp eax, 0x66
jne 0x48ac00
mov ecx, esi
lea eax, [esi + 3]
movzx ecx, byte [esi + 3]
or ecx, 0x20
cmp ecx, 0x69
jne 0x488a4b
movzx ecx, byte [esi + 4]
or ecx, 0x20
cmp ecx, 0x6e
jne 0x488a4b
movzx ecx, byte [esi + 5]
or ecx, 0x20
cmp ecx, 0x69
jne 0x488a4b
movzx ecx, byte [esi + 6]
or ecx, 0x20
cmp ecx, 0x74
jne 0x488a4b
movzx ecx, byte [esi + 7]
or ecx, 0x20
cmp ecx, 0x79
jne 0x488a4b
lea eax, [esi + 8]
mov dword [esp], eax
cmp dword [esp + 0x20], 0
je 0x48acf3
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
test ecx, ecx
je 0x488a66
mov byte [ecx], 0
mov ecx, dword [esp + 0x20]
mov dword [ecx], eax
sub eax, esi
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
shl eax, 8
or eax, 1
mov edx, dword [esp + 0x54]
mov dword [edx + 4], ecx
mov dword [edx], eax
mov dword [edx + 8], esi
jmp 0x48ad03
mov dword [esp], esi
mov eax, dword [esp + 0x84]
sub eax, esi
shr eax, 4
cmp eax, 0xffffff9
mov ebx, 0xffffff9
cmovb ebx, eax
mov eax, dword [ebp + 0x10]
test al, 2
jne 0x489c37
add ebx, 6
mov dword [esp + 0x2c], ebx
shl ebx, 4
push ebx
push dword [esp + 0x7c]
call dword [esp + 0x70]
add esp, 8
test eax, eax
je 0x489c41
mov edx, eax
mov eax, dword [ebp + 0x10]
test al, 0x20
jne 0x489cbb
mov ecx, eax
and ecx, 0x40
shr ecx, 6
mov dword [esp + 0x98], ecx
mov dword [esp + 0x48], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0x28], 0
test al, al
jns 0x488b1f
lea eax, [esp + 0xb0]
mov dword [esp + 0x28], eax
mov al, 1
mov dword [esp + 0x48], eax
mov eax, edx
add eax, 0x20
mov dword [esp], edi
cmp byte [esi], 0x7b
lea esi, [esi + 2]
lea ecx, [ebx + edx - 0x20]
mov dword [esp + 0x80], ecx
jne 0x488b61
mov dword [edx + 0x24], 0
mov dword [edx + 0x20], 7
mov dword [edx + 0x28], 0
mov dword [esp + 0x54], 0
cmp byte [edi], 0xa
jne 0x488b88
mov dword [esp], esi
jmp 0x488b8a
mov dword [edx + 0x24], 0
mov dword [edx + 0x20], 6
mov dword [edx + 0x28], 0
mov dword [esp + 0x54], 0
cmp byte [edi], 0xa
jne 0x488b93
mov dword [esp], esi
jmp 0x488b95
mov esi, edi
mov dword [esp + 0x10], eax
jmp 0x496181
mov esi, edi
mov dword [esp + 0x10], eax
jmp 0x491b48
mov edi, dword [esp + 0x54]
mov edx, dword [esp + 0x10]
inc esi
mov dword [esp], esi
mov esi, dword [esp + 0x1c]
mov eax, esi
shl esi, 8
movzx ecx, byte [ebx]
or ecx, esi
shr eax, 0x18
add ecx, 0x100
adc eax, 0
mov dword [ebx], ecx
mov dword [ebx + 4], eax
add edi, 0x10
mov esi, edi
cmp edi, dword [esp + 0x74]
jae 0x489d72
mov dword [esp + 0x10], edx
mov ecx, dword [esp + 8]
mov dword [esi + 4], 0
mov dword [esi], 6
mov eax, esi
sub eax, ebx
mov dword [esi + 8], eax
xor edx, edx
mov ebx, esi
jmp 0x4888f7
mov edi, dword [esp + 0x54]
mov edx, dword [esp + 0x10]
inc esi
mov dword [esp], esi
mov esi, dword [esp + 0x1c]
mov eax, esi
shl esi, 8
movzx ecx, byte [ebx]
or ecx, esi
shr eax, 0x18
add ecx, 0x100
adc eax, 0
mov dword [ebx], ecx
mov dword [ebx + 4], eax
add edi, 0x10
mov esi, edi
cmp edi, dword [esp + 0x74]
jae 0x489d14
mov dword [esp + 0x10], edx
mov ecx, dword [esp + 8]
mov dword [esi + 4], 0
mov dword [esi], 7
mov eax, esi
sub eax, ebx
mov dword [esi + 8], eax
mov dword [esp + 0x48], 0
mov ebx, esi
mov dword [esp + 0x54], esi
jmp 0x48d0f8
mov eax, dword [esp + 0x54]
add eax, 0x10
mov dword [esp + 0x54], eax
cmp eax, dword [esp + 0x74]
jae 0x489e06
mov edi, dword [esp + 0x10]
mov eax, dword [ebp + 0x10]
mov dword [esp + 4], edi
inc dword [esp + 0x1c]
mov dword [esp + 0x9c], 0
test al, al
sets al
mov ecx, dword [esp + 0x80]
xor cl, 1
or cl, al
je 0x48ab25
movzx ecx, byte [esi]
xor edx, edx
mov byte [esp + 0x24], cl
cmp cl, 0x2d
sete dl
lea ecx, [esi + edx]
movzx eax, byte [esi + edx]
test byte [eax + 0x4fe4d8], 2
mov dword [esp + 0x10], ecx
je 0x489e72
add eax, 0xffffffd0
movzx edx, byte [ecx + 1]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x489eca
mov ecx, 0xa
imul ecx
mov ecx, edx
add eax, edi
adc ecx, 0
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 2]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x489f28
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 3]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x489f7f
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 4]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x489fd6
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 5]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48a02d
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 6]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48a084
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 7]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48a0db
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 8]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48a132
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 9]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48a189
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 0xa]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48a1e0
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 0xb]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48a237
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 0xc]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48a28e
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 0xd]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48a2e5
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 0xe]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48a33c
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 0xf]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48a393
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 0x10]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48a3ea
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 0x11]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48a441
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 0x12]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48a494
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
mov dword [esp + 0x28], eax
adc ecx, edx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0x13]
mov dword [esp + 0xc], eax
movzx edx, byte [ecx + 0x13]
movzx edi, dl
movzx eax, byte [edi + 0x4fe4d8]
test al, 0x33
je 0x489351
mov dword [esp + 0x34], edx
test al, 3
je 0x488fa2
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 0x14]
test byte [ecx + 0x4fe4d8], 0x33
mov ecx, dword [esp + 0x10]
je 0x48943c
test al, 0x20
jne 0x4893dc
cmp byte [esp + 0x34], 0x2e
mov dword [esp + 0x2c], ebx
jne 0x48950c
movzx eax, byte [ecx + 0x14]
add ecx, 0x14
mov dword [esp + 0x34], eax
test byte [eax + 0x4fe4d8], 3
mov edi, dword [esp + 0xc]
jne 0x489512
jmp 0x48e666
mov eax, dword [esp + 0x54]
add eax, 0x10
cmp eax, dword [esp + 0x74]
jae 0x48a4fb
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 8]
cmp dword [esi], 0x65757274
jne 0x48a681
inc dword [esp + 0x1c]
mov dword [eax + 4], 0
mov dword [esp + 0x54], eax
mov dword [eax], 0xb
jmp 0x489051
mov edi, dword [esp + 0x54]
add edi, 0x10
cmp edi, dword [esp + 0x74]
jae 0x48a575
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 8]
inc dword [esp + 0x1c]
mov eax, dword [esi]
cmp eax, 0x6c6c756e
mov dword [esp + 0x54], edi
jne 0x48a68a
mov dword [edi + 4], 0
mov dword [edi], 2
add esi, 4
mov dword [esp], esi
jmp 0x49ac47
lea edi, [esi + 1]
mov dword [esp], edi
cmp dword [esp + 0x1c], 0
jne 0x48a5e7
xor esi, esi
mov edx, dword [esp + 0x10]
jmp 0x49acd1
mov eax, dword [esp + 0x54]
add eax, 0x10
cmp eax, dword [esp + 0x74]
jae 0x48a60b
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 8]
cmp dword [esi + 1], 0x65736c61
jne 0x48a681
inc dword [esp + 0x1c]
mov dword [eax + 4], 0
mov dword [esp + 0x54], eax
mov dword [eax], 3
add esi, 5
mov dword [esp], esi
jmp 0x49ac47
mov eax, dword [esp + 0x54]
add eax, 0x10
mov dword [esp + 0x54], eax
cmp eax, dword [esp + 0x74]
jae 0x48ab54
mov dword [esp + 0x2c], ebx
mov edi, dword [esp + 0x10]
mov dword [esp + 4], edi
inc dword [esp + 0x1c]
inc esi
mov eax, esi
movzx edx, byte [eax]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48929d
add eax, 8
mov ebx, eax
nop dword [eax + eax]
movzx edx, byte [ebx - 7]
test byte [edx + 0x4fdfe6], 0xc
jne 0x4891ff
movzx edx, byte [ebx - 6]
test byte [edx + 0x4fdfe6], 0xc
jne 0x489204
movzx edx, byte [ebx - 5]
test byte [edx + 0x4fdfe6], 0xc
jne 0x489209
movzx edx, byte [ebx - 4]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48920e
movzx edx, byte [ebx - 3]
test byte [edx + 0x4fdfe6], 0xc
jne 0x489213
movzx edx, byte [ebx - 2]
test byte [edx + 0x4fdfe6], 0xc
jne 0x489218
movzx edx, byte [ebx - 1]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48921d
movzx edx, byte [ebx]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48923f
movzx edx, byte [ebx + 1]
test byte [edx + 0x4fdfe6], 0xc
jne 0x489220
movzx edx, byte [ebx + 2]
test byte [edx + 0x4fdfe6], 0xc
jne 0x489223
movzx edx, byte [ebx + 3]
test byte [edx + 0x4fdfe6], 0xc
jne 0x489228
movzx edx, byte [ebx + 4]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48922d
movzx edx, byte [ebx + 5]
test byte [edx + 0x4fdfe6], 0xc
jne 0x489232
movzx edx, byte [ebx + 6]
test byte [edx + 0x4fdfe6], 0xc
jne 0x489237
movzx edx, byte [ebx + 7]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48923c
movzx edx, byte [ebx + 8]
add ebx, 0x10
test byte [edx + 0x4fdfe6], 0xc
je 0x489100
add ebx, 0xfffffff8
jmp 0x48923f
add ebx, 0xfffffff9
jmp 0x48923f
add ebx, 0xfffffffa
jmp 0x48923f
add ebx, 0xfffffffb
jmp 0x48923f
add ebx, 0xfffffffc
jmp 0x48923f
add ebx, 0xfffffffd
jmp 0x48923f
add ebx, 0xfffffffe
jmp 0x48923f
dec ebx
jmp 0x48923f
inc ebx
jmp 0x48923f
add ebx, 2
jmp 0x48923f
add ebx, 3
jmp 0x48923f
add ebx, 4
jmp 0x48923f
add ebx, 5
jmp 0x48923f
add ebx, 6
jmp 0x48923f
add ebx, 7
mov dword [esp + 0x48], 0
mov eax, 0xd
cmp dl, 0x22
je 0x489321
mov dword [esp + 0x10], esi
test dl, dl
jns 0x48b420
mov ecx, dword [ebx]
mov eax, ecx
and eax, 0xc0c0f0
cmp eax, 0x8080e0
jne 0x4892a1
mov eax, ebx
mov edx, ecx
and edx, 0x200f
je 0x4892a3
cmp edx, 0x200d
je 0x4892a3
mov ecx, dword [eax + 3]
add eax, 3
mov edx, ecx
and edx, 0xc0c0f0
cmp edx, 0x8080e0
je 0x489273
jmp 0x4892a3
mov ebx, eax
jmp 0x48923f
mov eax, ebx
test cl, cl
mov esi, dword [esp + 0x10]
jns 0x4890e6
mov edx, ecx
and edx, 0xc0e0
cmp edx, 0x80c0
jne 0x4892d4
mov edx, ecx
and edx, 0x1e
je 0x4892d4
mov ecx, dword [eax + 2]
add eax, 2
jmp 0x4892af
mov ecx, dword [eax + 4]
add eax, 4
mov edx, ecx
and edx, 0xc0c0c0f8
cmp edx, 0x808080f0
jne 0x4892fb
mov edx, ecx
and edx, 0x3007
je 0x4892fb
test cl, 4
je 0x4892ce
and ecx, 0x3003
je 0x4892ce
cmp ebx, eax
mov esi, dword [esp + 0x10]
jne 0x4890e6
cmp byte [esp + 0x98], 0
je 0x490bcc
inc ebx
mov eax, ebx
mov esi, dword [esp + 0x10]
jmp 0x4890e6
mov ecx, ebx
mov edx, ecx
sub edx, esi
mov edi, edx
sar edi, 0x1f
shld edi, edx, 8
or edi, dword [esp + 0x48]
shl edx, 8
or edx, eax
mov eax, dword [esp + 0x54]
mov dword [eax], edx
mov dword [eax + 4], edi
mov dword [eax + 8], esi
mov byte [ecx], 0
inc ebx
mov dword [esp], ebx
jmp 0x4895e4
cmp byte [esp + 0x24], 0x2d
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x28]
jne 0x4893ff
mov eax, 0x80000000
mov ecx, edx
neg ecx
sbb eax, edi
jae 0x4893ff
mov eax, dword [ebp + 0x10]
test al, al
mov edx, dword [esp + 4]
mov eax, dword [esp + 0x54]
js 0x48acb8
mov dword [eax + 4], 0
movd xmm0, dword [esp + 0x28]
movd xmm1, edi
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x4fde70]
subpd xmm0, xmmword [0x4fde80]
mov dword [eax], 0x14
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
xorpd xmm1, xmmword [0x4fde90]
movlpd qword [eax + 8], xmm1
mov eax, dword [esp + 0xc]
mov dword [esp], eax
mov ecx, dword [esp + 8]
jmp 0x49ac47
mov dword [esp + 0x18], 0
mov edi, dword [esp + 0xc]
xor ecx, ecx
mov dword [esp + 0x40], 0
mov dword [esp + 0x14], 0
jmp 0x489669
xor eax, eax
mov ecx, edx
neg ecx
sbb eax, edi
xor edx, edx
cmp byte [esp + 0x24], 0x2d
sete dl
lea edx, [edx*8 + 4]
mov esi, dword [esp + 0x54]
mov dword [esi], edx
cmovne eax, edi
cmovne ecx, dword [esp + 0x28]
mov dword [esi + 4], 0
mov dword [esi + 8], ecx
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0xc]
jmp 0x489a0c
add edi, 0xffffffd0
cmp dword [esp + 0x28], 0x99999999
mov ecx, dword [esp + 0x48]
sbb ecx, 0x19999999
mov ecx, dword [esp + 0x10]
lea ecx, [ecx + 0x14]
mov dword [esp + 0x18], ecx
jb 0x489489
mov edx, 0x19999999
mov ecx, ebx
mov ebx, 0x99999999
xor ebx, dword [esp + 0x28]
xor edx, dword [esp + 0x48]
or edx, ebx
mov ebx, ecx
mov ecx, dword [esp + 0x10]
jne 0x488fa2
cmp edi, 5
ja 0x488fa2
mov dword [esp + 0x2c], ebx
mov edx, 0xa
mov eax, dword [esp + 0x28]
mul edx
mov ecx, dword [esp + 0x48]
lea ebx, [ecx + ecx*4]
lea edx, [edx + ebx*2]
mov ebx, edi
sar ebx, 0x1f
add eax, edi
adc edx, ebx
cmp byte [esp + 0x24], 0x2d
jne 0x4895c6
mov ebx, dword [ebp + 0x10]
test bl, bl
mov ecx, dword [esp + 0x54]
js 0x48b022
mov dword [ecx + 4], 0
movd xmm0, eax
movd xmm1, edx
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x4fde70]
subpd xmm0, xmmword [0x4fde80]
mov dword [ecx], 0x14
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
xorpd xmm1, xmmword [0x4fde90]
movlpd qword [ecx + 8], xmm1
jmp 0x4895dd
xor edi, edi
mov ecx, dword [esp + 0xc]
mov eax, ecx
inc ecx
mov dword [esp + 0x10], eax
sub eax, esi
movzx ebx, byte [ecx]
movzx edx, byte [ebx + 0x4fe4d8]
inc ecx
inc eax
test dl, 3
jne 0x48951b
mov byte [esp + 0x38], dl
xor edx, edx
cmp byte [esp + 0x34], 0x35
setae dl
add dword [esp + 0x28], edx
adc dword [esp + 0x48], 0
lea edx, [ecx - 1]
test edi, edi
je 0x489551
mov ecx, edx
jmp 0x4895f7
mov edi, edx
mov edx, dword [ebp + 0x10]
test dl, dl
jns 0x489567
mov dh, byte [esp + 0x38]
and dh, 0x30
je 0x48b054
cmp bl, 0x2e
jne 0x4895f5
movzx eax, byte [ecx]
test byte [eax + 0x4fe4d8], 3
je 0x48e666
mov ecx, edi
mov ebx, dword [esp + 0x2c]
movzx eax, byte [ecx + 1]
inc ecx
movzx eax, byte [eax + 0x4fe4d8]
test al, 3
jne 0x489586
mov byte [esp + 0x38], al
jmp 0x4895fb
mov eax, dword [ebp + 0x18]
test eax, eax
cmovne edi, eax
mov dword [edi + 8], 0
mov dword [edi + 4], str.memory_allocation_failed
mov eax, dword [esp + 0x90]
mov dword [eax], 2
xor ebx, ebx
jmp 0x496a85
mov ecx, dword [esp + 0x54]
mov dword [ecx + 4], 0
mov dword [ecx], 4
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
mov eax, dword [esp + 0x18]
mov dword [esp], eax
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 4]
jmp 0x49ac47
mov ecx, edi
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x34], ecx
lea eax, [ecx - 1]
jmp 0x489611
dec eax
movzx ecx, byte [eax]
cmp ecx, 0x30
je 0x489610
cmp ecx, 0x2e
je 0x489610
mov ecx, edi
mov edx, dword [esp + 0x10]
sub edi, edx
sar edi, 0x1f
mov dword [esp + 0xc], ecx
sub ecx, edx
adc ecx, 0
mov dword [esp + 0x18], ecx
adc edi, 0
cmp eax, edx
mov ecx, dword [esp + 0x34]
mov eax, 0
cmovb ecx, eax
mov dword [esp + 0x40], ecx
mov ecx, edi
cmovb edx, eax
mov edi, edx
mov edx, dword [esp + 4]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x34]
test byte [esp + 0x38], 0x20
je 0x48972a
mov dword [esp + 0x4c], ecx
movzx ecx, byte [edi + 1]
xor eax, eax
mov dword [esp + 0x10], ecx
test byte [ecx + 0x4fe4d8], 0xc
setne al
movzx ecx, byte [edi + eax + 1]
test byte [ecx + 0x4fe4d8], 3
je 0x48ec9c
add edi, eax
mov ecx, edi
nop word [eax + eax]
movzx edx, byte [ecx + 1]
inc ecx
inc edi
cmp edx, 0x30
je 0x4896a0
mov dword [esp + 0x38], edi
mov dword [esp + 0x2c], ebx
xor eax, eax
test byte [edx + 0x4fe4d8], 3
je 0x4896ec
xor eax, eax
xor ebx, ebx
add dl, 0xd0
movzx edi, dl
mov edx, 0xa
mul edx
add ebx, ebx
add eax, edi
lea edi, [ecx + 1]
lea ebx, [ebx + ebx*4]
adc ebx, edx
movzx edx, byte [ecx + 1]
test byte [edx + 0x4fe4d8], 3
mov ecx, edi
jne 0x4896c2
jmp 0x4896f0
mov edi, ecx
xor ebx, ebx
mov dword [esp + 0x34], edi
mov ecx, edi
sub ecx, dword [esp + 0x38]
cmp ecx, 0x13
jge 0x48abc4
xor ecx, ecx
mov edx, eax
neg edx
sbb ecx, ebx
cmp byte [esp + 0x10], 0x2d
cmovne ecx, ebx
cmovne edx, eax
add dword [esp + 0x18], edx
mov eax, dword [esp + 0x4c]
adc eax, ecx
mov ecx, eax
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 4]
mov eax, 0xfffffea8
mov edi, dword [esp + 0x18]
cmp eax, edi
mov eax, 0xffffffff
sbb eax, ecx
jge 0x48a74b
cmp edi, 0x135
sbb ecx, 0
jge 0x48a77c
mov dword [esp + 0x9c], edi
test dword [esp + 0x48], 0xffe00000
jne 0x4897b0
cmp edi, 0xffffffea
jl 0x4897b0
cmp edi, 0x16
jg 0x4897b0
movss xmm1, dword [esp + 0x28]
movss xmm0, dword [esp + 0x48]
unpcklps xmm1, xmm0
unpcklps xmm1, xmmword [0x4fde70]
subpd xmm1, xmmword [0x4fde80]
movapd xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm0, xmm1
test edi, edi
mov ecx, dword [esp + 8]
js 0x489a1c
mulsd xmm0, qword [edi*8 + 0x4fe420]
jmp 0x489a2a
cmp dword [esp + 0x14], 0
sete cl
cmp edi, 0xfffffece
setge dl
cmp edi, 0x120
setl al
test cl, dl
je 0x48a7c1
test al, al
je 0x48a7cb
mov eax, edi
shl eax, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x18], edi
imul eax, edi, 0x3526a
add eax, 0xffc10000
sar eax, 0x10
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x48]
bsr eax, edx
xor eax, 0x1f
mov edi, dword [esp + 0x28]
bsr ecx, edi
xor ecx, 0x1f
add ecx, 0x20
test edx, edx
cmovne ecx, eax
shld edx, edi, cl
shl edi, cl
xor eax, eax
mov dword [esp + 0x38], ecx
test cl, 0x20
cmovne edx, edi
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], 0
cmovne edi, eax
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx + 0x4ffb48]
mov dword [esp + 0x58], eax
mul edi
mov dword [esp + 0x70], eax
mov dword [esp + 0x30], edx
mov eax, dword [ecx + 0x4ffb4c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x6c], edi
mul edi
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x5c], edx
mov ecx, eax
mov eax, dword [esp + 0x58]
mul edi
mov dword [esp + 0x60], edx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x3c]
mul edi
add ecx, dword [esp + 0x30]
adc eax, dword [esp + 0x5c]
adc edx, 0
add ecx, dword [esp + 0x44]
mov dword [esp + 0x30], ecx
adc eax, dword [esp + 0x60]
adc edx, 0
mov dword [esp + 0x60], eax
and eax, 0x1ff
add eax, 0xffffffff
mov ecx, 0
adc ecx, 0xffffffff
cmp eax, 0x1fe
sbb ecx, 0
jae 0x4898bc
mov esi, dword [esp + 0x60]
jmp 0x489988
mov dword [esp + 0xa0], edx
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x18]
add eax, eax
mov ebx, dword [eax*8 + 0x4ffb54]
mov dword [esp + 0x5c], ebx
mov eax, dword [eax*8 + 0x4ffb50]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x6c]
mul ecx
mov dword [esp + 0x18], edx
mov eax, ebx
mul ecx
mov ebx, edx
mov ecx, eax
mov eax, dword [esp + 0x44]
mul edi
mov dword [esp + 0x44], edx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x5c]
mul edi
add ecx, dword [esp + 0x18]
adc ebx, 0
add ecx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x44]
adc ecx, 0
add ebx, eax
adc edx, 0
add ebx, ecx
adc edx, 0
mov dword [esp + 0x18], ebx
add ebx, dword [esp + 0x70]
mov dword [esp + 0x44], edx
mov eax, edx
mov edx, ebx
adc eax, dword [esp + 0x30]
mov edi, ebx
add edi, 0xffffffff
mov ebx, eax
adc ebx, 0xffffffff
mov ecx, 0xfffffffd
cmp ecx, edi
mov ecx, 0xffffffff
sbb ecx, ebx
jb 0x48a842
cmp edx, dword [esp + 0x70]
mov ecx, eax
sbb ecx, dword [esp + 0x30]
setb cl
cmp edx, dword [esp + 0x18]
sbb eax, dword [esp + 0x44]
setb al
or al, cl
movzx eax, al
mov esi, dword [esp + 0x60]
add esi, eax
mov edx, dword [esp + 0xa0]
adc edx, 0
mov ebx, dword [esp + 0x2c]
xor eax, eax
cmp byte [esp + 0x24], 0x2d
sete al
mov dword [esp + 0x48], eax
xor eax, eax
test edx, edx
setns al
mov ecx, eax
shld edx, esi, cl
shl esi, cl
mov ecx, edx
mov edx, esi
and edx, 0x400
add edx, esi
adc ecx, 0
mov edi, dword [esp + 0x10]
sub edi, dword [esp + 0x38]
sub edi, eax
mov eax, ecx
shld eax, edx, 0x15
mov esi, ecx
shr esi, 0xb
cmp edx, 0x400
sbb ecx, 0
adc edi, 0
shl edi, 0x14
and esi, 0xfffff
lea edx, [edi + esi]
add edx, 0x47e00000
mov ecx, dword [esp + 0x48]
shl ecx, 0x1f
or ecx, edx
mov edx, ecx
mov ecx, dword [esp + 0x54]
mov dword [ecx + 4], 0
mov dword [ecx], 0x14
mov dword [ecx + 0xc], edx
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
jmp 0x49ac47
shl edi, 3
mov eax, 0x4fe420
sub eax, edi
divsd xmm0, qword [eax]
mov eax, dword [esp + 0x54]
mov dword [eax + 4], 0
mov dword [eax], 0x14
movapd xmm1, xmmword [0x4fde90]
xorpd xmm1, xmm0
cmp byte [esp + 0x24], 0x2d
je 0x489a52
movapd xmm1, xmm0
movsd qword [eax + 8], xmm1
mov eax, dword [esp + 0x34]
mov dword [esp], eax
jmp 0x49ac47
mov ecx, dword [eax]
mov dword [esp + 0x68], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x94], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x8c], ecx
mov eax, dword [eax + 0xc]
mov dword [esp + 0x78], eax
test esi, esi
jne 0x488751
mov eax, dword [ebp + 0x18]
test eax, eax
cmovne edi, eax
mov dword [edi + 8], 0
mov dword [edi + 4], str.input_data_is_NULL
jmp 0x489aba
mov eax, dword [ebp + 0x18]
test eax, eax
cmovne edi, eax
mov dword [edi + 8], 0
mov dword [edi + 4], str.input_length_is_0
mov eax, dword [esp + 0x90]
mov dword [eax], 1
xor ebx, ebx
jmp 0x496a85
lea eax, [esi + ecx]
mov dword [esp + 0x84], eax
mov dword [esp + 0xb4], esi
xor edx, edx
jmp 0x4887b1
mov eax, dword [ebp + 0x10]
test al, 8
jne 0x48b08a
test cl, 1
je 0x489b12
mov esi, dword [esp + 0x88]
movzx eax, byte [esi + 1]
inc esi
test byte [eax + 0x4fdfe6], 1
jne 0x489afd
mov dword [esp + 0xb4], esi
cmp esi, dword [esp + 0x84]
jae 0x48b0b6
movzx eax, byte [esi]
jmp 0x4887cb
mov ecx, dword [esp + 0x88]
mov edx, esi
push dword [esp + 0x90]
push dword [ebp + 0x10]
push dword [esp + 0x80]
mov esi, dword [esp + 0x98]
push esi
push dword [esp + 0xa4]
push dword [esp + 0x7c]
push dword [esp + 0x9c]
call dbg.read_root_single
add esp, 0x1c
mov ebx, eax
test ebx, ebx
jne 0x496a6a
mov eax, dword [ebp + 0x18]
test eax, eax
cmove eax, edi
cmp dword [eax + 8], 0
mov edx, dword [esp + 0x88]
jne 0x48a72f
mov eax, dword [esp + 0x90]
cmp dword [eax], 2
je 0x48a72f
movzx eax, byte [edx]
cmp eax, 0xef
jne 0x489bb5
cmp byte [edx + 1], 0xbb
jne 0x489bb5
mov ecx, str.byte_order_mark__BOM__is_not_supported
cmp byte [edx + 2], 0xbf
je 0x48a724
mov ecx, dword [ebp + 0xc]
cmp ecx, 4
jb 0x489cd8
cmp eax, 0xff
je 0x489dd0
cmp eax, 0xfe
mov edx, dword [esp + 0x88]
mov esi, dword [esp + 0x8c]
je 0x489d05
test eax, eax
jne 0x48a72f
cmp byte [edx + 1], 0
jne 0x48a72f
cmp byte [edx + 2], 0xfe
jne 0x48a72f
cmp byte [edx + 3], 0xff
jne 0x48a72f
jmp 0x489dfc
mov ebx, 0x30
jmp 0x48882f
and eax, 0x40
shr eax, 6
mov dword [esp + 0x98], eax
mov dword [esp + 0xb0], 0
jmp 0x48888d
mov ebx, 0x16
jmp 0x488ab8
mov dword [esp + 8], 0
mov eax, dword [ebp + 0x10]
mov edi, dword [esp + 0x88]
mov ecx, edi
mov edx, esi
push eax
push 2
mov ebx, dword [esp + 0x8c]
push ebx
call dbg.is_truncated_end
add esp, 0xc
test al, al
cmovne esi, ebx
mov ecx, 0x4fe0e6
mov edx, str.memory_allocation_failed
cmovne edx, ecx
sub esi, edi
mov ecx, dword [ebp + 0x18]
test ecx, ecx
lea edi, [esp + 0xa4]
cmove ecx, edi
mov dword [ecx + 8], esi
movzx eax, al
lea eax, [eax + eax*2 + 2]
mov esi, dword [esp + 0x90]
mov dword [esi], eax
mov dword [ecx + 4], edx
mov eax, dword [esp + 8]
test eax, eax
jne 0x48ec96
mov esi, dword [esp + 0x8c]
jmp 0x496a60
and eax, 0x40
shr eax, 6
mov dword [esp + 0x98], eax
mov dword [esp + 0xb0], 0
jmp 0x488b0e
cmp ecx, 2
jb 0x48a72f
cmp eax, 0xff
je 0x48a70b
cmp eax, 0xfe
mov edx, dword [esp + 0x88]
mov esi, dword [esp + 0x8c]
jne 0x48a72f
cmp byte [edx + 1], 0xff
jne 0x48a72f
jmp 0x48a71f
mov ecx, edx
shr ecx, 1
add ecx, edx
mov dword [esp + 0x10], ecx
cmp ecx, 0xffffffe
ja 0x48c3ea
mov eax, edx
shl eax, 4
mov edi, dword [esp + 0x10]
shl edi, 4
push edi
push eax
push dword [esp + 0x10]
push dword [esp + 0x84]
call dword [esp + 0xa4]
add esp, 0x10
test eax, eax
je 0x48c3ea
mov ecx, dword [esp + 8]
sub esi, ecx
add esi, eax
sub ebx, ecx
add ebx, eax
lea ecx, [edi + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x74], ecx
mov ecx, eax
jmp 0x488c3f
mov ecx, edx
shr ecx, 1
add ecx, edx
mov dword [esp + 0x10], ecx
cmp ecx, 0xffffffe
ja 0x48c3ea
mov eax, edx
shl eax, 4
mov edi, dword [esp + 0x10]
shl edi, 4
push edi
push eax
push dword [esp + 0x10]
push dword [esp + 0x84]
call dword [esp + 0xa4]
add esp, 0x10
test eax, eax
je 0x48c3ea
mov ecx, dword [esp + 8]
sub esi, ecx
add esi, eax
sub ebx, ecx
add ebx, eax
lea ecx, [edi + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x74], ecx
mov ecx, eax
jmp 0x488be0
mov edx, dword [esp + 0x88]
cmp byte [edx + 1], 0xfe
mov esi, dword [esp + 0x8c]
jne 0x48a72f
cmp byte [edx + 2], 0
jne 0x48a71f
cmp byte [edx + 3], 0
jne 0x48a71f
mov ecx, str.UTF_32_encoding_is_not_supported
jmp 0x48a724
mov ecx, dword [esp + 0x10]
mov eax, ecx
shr eax, 1
add eax, ecx
cmp eax, 0xffffffe
ja 0x48c3ea
mov edi, eax
mov eax, dword [esp + 0x10]
shl eax, 4
mov esi, edi
shl esi, 4
push esi
push eax
push dword [esp + 0x10]
push dword [esp + 0x84]
call dword [esp + 0xa4]
add esp, 0x10
test eax, eax
je 0x48c3ea
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x54]
sub edx, ecx
add edx, eax
mov dword [esp + 0x54], edx
sub ebx, ecx
add ebx, eax
lea ecx, [esi + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x74], ecx
mov esi, dword [esp]
mov dword [esp + 8], eax
jmp 0x488c7f
cmp eax, 0x30
jne 0x48c3f3
mov eax, dword [esp + 0x10]
lea edi, [eax + 1]
movzx eax, byte [eax + 1]
movzx ecx, byte [eax + 0x4fe4d8]
test cl, 0x33
jne 0x48c4ec
xor eax, eax
cmp byte [esp + 0x24], 0x2d
sete al
lea eax, [eax*8 + 4]
mov ecx, dword [esp + 0x54]
mov dword [ecx], eax
mov dword [ecx + 4], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 8], 0
mov dword [esp], edi
jmp 0x489a0f
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x38], eax
test byte [edx + 0x4fe4d8], 0x30
jne 0x48c549
mov edi, dword [esp + 0x28]
mov ecx, edi
sar ecx, 0x1f
xor eax, eax
mov edx, edi
neg edx
sbb eax, ecx
xor ebx, ebx
cmp byte [esp + 0x24], 0x2d
sete bl
lea esi, [ebx*8 + 4]
mov ebx, dword [esp + 0x54]
mov dword [ebx], esi
cmovne eax, ecx
cmovne edx, edi
mov dword [ebx + 4], 0
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], eax
jmp 0x48a4f2
mov dword [esp + 0x28], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
add eax, 2
mov dword [esp + 0x38], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48a4b8
mov dword [esp + 0x18], 0
mov ecx, 0
mov edi, dword [esp + 0x38]
mov dword [esp + 0xc], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov ebx, dword [esp + 0x2c]
je 0x48c5c9
jmp 0x489669
mov dword [esp + 0x28], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
add eax, 3
mov dword [esp + 0x38], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48a4b8
mov dword [esp + 0x18], 0
mov ecx, 0
mov edi, dword [esp + 0x38]
mov dword [esp + 0xc], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov ebx, dword [esp + 0x2c]
je 0x48c610
jmp 0x489669
mov dword [esp + 0x28], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
add eax, 4
mov dword [esp + 0x38], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48a4b8
mov dword [esp + 0x18], 0
mov ecx, 0
mov edi, dword [esp + 0x38]
mov dword [esp + 0xc], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov ebx, dword [esp + 0x2c]
je 0x48c657
jmp 0x489669
mov dword [esp + 0x28], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
add eax, 5
mov dword [esp + 0x38], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48a4b8
mov dword [esp + 0x18], 0
mov ecx, 0
mov edi, dword [esp + 0x38]
mov dword [esp + 0xc], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov ebx, dword [esp + 0x2c]
je 0x48c69e
jmp 0x489669
mov dword [esp + 0x28], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
add eax, 6
mov dword [esp + 0x38], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48a4b8
mov dword [esp + 0x18], 0
mov ecx, 0
mov edi, dword [esp + 0x38]
mov dword [esp + 0xc], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov ebx, dword [esp + 0x2c]
je 0x48c6e5
jmp 0x489669
mov dword [esp + 0x28], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
add eax, 7
mov dword [esp + 0x38], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48a4b8
mov dword [esp + 0x18], 0
mov ecx, 0
mov edi, dword [esp + 0x38]
mov dword [esp + 0xc], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov ebx, dword [esp + 0x2c]
je 0x48c72c
jmp 0x489669
mov dword [esp + 0x28], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
add eax, 8
mov dword [esp + 0x38], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48a4b8
mov dword [esp + 0x18], 0
mov ecx, 0
mov edi, dword [esp + 0x38]
mov dword [esp + 0xc], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov ebx, dword [esp + 0x2c]
je 0x48c773
jmp 0x489669
mov dword [esp + 0x28], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
add eax, 9
mov dword [esp + 0x38], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48a4b8
mov dword [esp + 0x18], 0
mov ecx, 0
mov edi, dword [esp + 0x38]
mov dword [esp + 0xc], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov ebx, dword [esp + 0x2c]
je 0x48c7ba
jmp 0x489669
mov dword [esp + 0x28], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
add eax, 0xa
mov dword [esp + 0x38], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48a4b8
mov dword [esp + 0x18], 0
mov ecx, 0
mov edi, dword [esp + 0x38]
mov dword [esp + 0xc], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov ebx, dword [esp + 0x2c]
je 0x48c801
jmp 0x489669
mov dword [esp + 0x28], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
add eax, 0xb
mov dword [esp + 0x38], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48a4b8
mov dword [esp + 0x18], 0
mov ecx, 0
mov edi, dword [esp + 0x38]
mov dword [esp + 0xc], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov ebx, dword [esp + 0x2c]
je 0x48c848
jmp 0x489669
mov dword [esp + 0x28], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
add eax, 0xc
mov dword [esp + 0x38], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48a4b8
mov dword [esp + 0x18], 0
mov ecx, 0
mov edi, dword [esp + 0x38]
mov dword [esp + 0xc], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov ebx, dword [esp + 0x2c]
je 0x48c88f
jmp 0x489669
mov dword [esp + 0x28], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
add eax, 0xd
mov dword [esp + 0x38], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48a4b8
mov dword [esp + 0x18], 0
mov ecx, 0
mov edi, dword [esp + 0x38]
mov dword [esp + 0xc], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov ebx, dword [esp + 0x2c]
je 0x48c8d6
jmp 0x489669
mov dword [esp + 0x28], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
add eax, 0xe
mov dword [esp + 0x38], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48a4b8
mov dword [esp + 0x18], 0
mov ecx, 0
mov edi, dword [esp + 0x38]
mov dword [esp + 0xc], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov ebx, dword [esp + 0x2c]
je 0x48c91d
jmp 0x489669
mov dword [esp + 0x28], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
add eax, 0xf
mov dword [esp + 0x38], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48a4b8
mov dword [esp + 0x18], 0
mov ecx, 0
mov edi, dword [esp + 0x38]
mov dword [esp + 0xc], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov ebx, dword [esp + 0x2c]
je 0x48c964
jmp 0x489669
mov dword [esp + 0x28], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
add eax, 0x10
mov dword [esp + 0x38], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48a4b8
mov dword [esp + 0x18], 0
mov ecx, 0
mov edi, dword [esp + 0x38]
mov dword [esp + 0xc], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov ebx, dword [esp + 0x2c]
je 0x48c9ab
jmp 0x489669
mov dword [esp + 0x28], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
add eax, 0x11
mov dword [esp + 0x38], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48a4b8
mov dword [esp + 0x18], 0
mov ecx, 0
mov edi, dword [esp + 0x38]
mov dword [esp + 0xc], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov ebx, dword [esp + 0x2c]
je 0x48c9f2
jmp 0x489669
mov dword [esp + 0x28], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
add eax, 0x12
mov dword [esp + 0x38], eax
test byte [edx + 0x4fe4d8], 0x30
jne 0x48cb14
xor eax, eax
mov ebx, dword [esp + 0x28]
mov ecx, ebx
neg ecx
mov edi, dword [esp + 0x48]
sbb eax, edi
xor edx, edx
cmp byte [esp + 0x24], 0x2d
sete dl
lea edx, [edx*8 + 4]
mov esi, dword [esp + 0x54]
mov dword [esi], edx
cmovne eax, edi
cmovne ecx, ebx
mov dword [esi + 4], 0
mov dword [esi + 8], ecx
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x38]
jmp 0x4895e1
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x10]
mov eax, ecx
shr eax, 1
add eax, ecx
cmp eax, 0xffffffe
ja 0x48c3ea
mov edi, eax
mov eax, dword [esp + 0x10]
shl eax, 4
mov esi, edi
shl esi, 4
push esi
push eax
push dword [esp + 0x10]
push dword [esp + 0x84]
call dword [esp + 0xa4]
add esp, 0x10
test eax, eax
je 0x48c3ea
mov edx, eax
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x54]
sub eax, ecx
add eax, edx
sub ebx, ecx
add ebx, edx
lea ecx, [esi + edx]
add ecx, 0xffffffe0
mov dword [esp + 0x74], ecx
mov esi, dword [esp]
mov ecx, edx
mov edx, edi
cmp dword [esi], 0x65757274
je 0x488fff
jmp 0x48a681
mov dword [esp + 0x54], edi
mov ecx, dword [esp + 0x10]
mov eax, ecx
shr eax, 1
add eax, ecx
mov dword [esp + 4], eax
cmp eax, 0xffffffe
ja 0x48c3ea
mov eax, dword [esp + 0x10]
shl eax, 4
mov esi, dword [esp + 4]
shl esi, 4
push esi
push eax
push dword [esp + 0x10]
push dword [esp + 0x84]
call dword [esp + 0xa4]
add esp, 0x10
test eax, eax
je 0x48c3ea
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x54]
sub edi, ecx
add edi, eax
sub ebx, ecx
add ebx, eax
lea ecx, [esi + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x74], ecx
mov esi, dword [esp]
mov ecx, eax
mov edx, dword [esp + 4]
jmp 0x48902f
mov eax, dword [ebp + 0x10]
test al, 4
jne 0x48cb47
cmp byte [edi], 0x2c
je 0x4919a1
mov dword [esp], esi
cmp byte [esi], 0x2c
lea esi, [esi - 1]
jne 0x48a5fb
jmp 0x49199e
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x10]
mov eax, ecx
shr eax, 1
add eax, ecx
cmp eax, 0xffffffe
ja 0x48c3ea
mov edi, eax
mov eax, dword [esp + 0x10]
shl eax, 4
mov esi, edi
shl esi, 4
push esi
push eax
push dword [esp + 0x10]
push dword [esp + 0x84]
call dword [esp + 0xa4]
add esp, 0x10
test eax, eax
je 0x48c3ea
mov edx, eax
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x54]
sub eax, ecx
add eax, edx
sub ebx, ecx
add ebx, edx
lea ecx, [esi + edx]
add ecx, 0xffffffe0
mov dword [esp + 0x74], ecx
mov esi, dword [esp]
mov ecx, edx
mov edx, edi
cmp dword [esi + 1], 0x65736c61
je 0x48909e
mov dword [esp + 8], ecx
jmp 0x4919fd
mov dword [esp + 8], ecx
mov ecx, dword [ebp + 0x10]
test cl, 0x10
je 0x4919fd
movzx ecx, al
or ecx, 0x20
cmp ecx, 0x6e
jne 0x4919fd
movzx ecx, ah
or ecx, 0x20
cmp ecx, 0x61
jne 0x4919fd
shr eax, 0x10
movzx eax, al
or eax, 0x20
cmp eax, 0x6e
jne 0x4919fd
lea eax, [esi + 3]
mov dword [esp], eax
cmp dword [esp + 0x20], 0
je 0x48cb66
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
test ecx, ecx
je 0x48a6e8
mov byte [ecx], 0
mov ecx, dword [esp + 0x20]
mov dword [ecx], eax
mov eax, dword [esp + 0x54]
mov dword [eax + 4], 0
mov dword [eax], 0x301
mov dword [eax + 8], esi
mov ecx, dword [esp + 8]
jmp 0x49ac47
mov edx, dword [esp + 0x88]
cmp byte [edx + 1], 0xfe
mov esi, dword [esp + 0x8c]
jne 0x48a72f
mov ecx, str.UTF_16_encoding_is_not_supported
mov eax, dword [ebp + 0x18]
test eax, eax
cmovne edi, eax
mov dword [edi + 4], ecx
xor ebx, ebx
mov eax, dword [ebp + 0x10]
test al, 1
jne 0x496a85
push edx
push dword [esp + 0x7c]
call esi
add esp, 8
jmp 0x496a85
xor eax, eax
cmp byte [esp + 0x24], 0x2d
sete al
mov ecx, dword [esp + 0x54]
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 + 0x34]
jmp 0x4893d0
mov eax, dword [ebp + 0x10]
test al, al
js 0x48cb50
test al, 0x10
je 0x48fabd
cmp byte [esp + 0x24], 0x2d
mov edx, dword [esp + 0x54]
mov dword [edx + 4], 0
mov eax, 0xfff00000
mov ecx, 0x7ff00000
cmove ecx, eax
mov dword [edx], 0x14
mov dword [edx + 0xc], ecx
mov dword [edx + 8], 0
jmp 0x489a08
xor eax, eax
test al, al
jne 0x4897da
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x48]
bsr eax, ebx
xor eax, 0x1f
mov edx, dword [esp + 0x28]
bsr ecx, edx
xor ecx, 0x1f
add ecx, 0x20
test ebx, ebx
cmovne ecx, eax
shld ebx, edx, cl
xor eax, eax
shl edx, cl
mov dword [esp + 0x38], ecx
test cl, 0x20
cmovne ebx, edx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], 0
cmovne edx, eax
mov dword [esp + 0x6c], edx
imul eax, edi, 0x3526a
shl edi, 4
add eax, 0xffc10000
sar eax, 0x10
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x4ffb4c]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x4ffb48]
mov dword [esp + 0x58], eax
mov eax, dword [edi + 0x4ffb54]
mov dword [esp + 0x5c], eax
xor ebx, ebx
cmp dword [esp + 0x14], 0
setne bl
shl ebx, 2
xor eax, eax
mov ecx, dword [esp + 0x38]
shld eax, ebx, cl
shl ebx, cl
xor edx, edx
test cl, 0x20
cmovne eax, ebx
mov dword [esp + 0x18], eax
cmovne ebx, edx
mov dword [esp + 0x60], ebx
mov ecx, dword [esp + 0x5c]
shr ecx, 0x1f
add ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x3c]
adc ebx, 0
mov eax, ecx
mov edi, dword [esp + 0x6c]
mul edi
mov eax, ecx
imul eax, dword [esp + 0x50]
add edx, eax
mov dword [esp + 0x3c], edx
mov eax, ebx
mul edi
mov edi, eax
mov dword [esp + 0x58], edx
mov eax, dword [esp + 0x50]
imul eax, ebx
mov dword [esp + 0x30], eax
mov eax, ecx
mul dword [esp + 0x4c]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x5c], edx
mov eax, ecx
mov ecx, dword [esp + 0x50]
imul eax, ecx
mov dword [esp + 0x44], eax
mov eax, ebx
mul dword [esp + 0x4c]
mov dword [esp + 0x4c], eax
imul ecx, ebx
mov ebx, ecx
add edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x58]
adc ecx, dword [esp + 0x30]
add edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x5c]
adc eax, dword [esp + 0x44]
add ecx, dword [esp + 0x4c]
adc edx, ebx
add ecx, eax
adc edx, 0
shr edi, 0x1f
add edi, ecx
adc edx, 0
xor ebx, ebx
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x18]
or eax, ecx
sete bl
xor ebx, 9
add ebx, dword [esp + 0x60]
adc ecx, 0
mov dword [esp + 0x18], ecx
bsr eax, edx
xor eax, 0x1f
bsr ecx, edi
xor ecx, 0x1f
add ecx, 0x20
test edx, edx
cmovne ecx, eax
shld edx, edi, cl
mov eax, ecx
add eax, dword [esp + 0x38]
sub dword [esp + 0x10], eax
shl edi, cl
mov eax, dword [esp + 0x18]
shld eax, ebx, cl
shl ebx, cl
add dword [esp + 0x10], 0x40
test cl, 0x20
cmovne edx, edi
mov ecx, 0
cmovne edi, ecx
cmovne eax, ebx
mov dword [esp + 0x18], eax
cmovne ebx, ecx
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x10]
mov ecx, 0xb
cmp ebx, 0xfffffbc2
jle 0x48ad0e
mov dword [esp + 0x50], ecx
mov dword [esp + 0x60], edx
shr edx, cl
test cl, 0x20
mov eax, edx
mov ebx, 0
cmovne eax, ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x4c], edi
mov eax, dword [esp + 0x60]
shrd edi, eax, cl
test cl, 0x20
cmovne edi, edx
mov dword [esp + 0x58], edi
mov edx, 0xffffffff
shl edx, cl
test cl, 0x20
mov ebx, 0xffffffff
mov edi, edx
cmove edx, ebx
mov ebx, 0
cmovne edi, ebx
not edi
and edi, dword [esp + 0x4c]
not edx
and edx, eax
shld edx, edi, 3
dec cl
mov eax, 8
xor ebx, ebx
shld ebx, eax, cl
shl eax, cl
shl edi, 3
test cl, 0x20
cmovne ebx, eax
mov dword [esp + 0x4c], 0
mov ecx, 0
cmovne eax, ecx
mov dword [esp + 0x44], eax
add eax, dword [esp + 0x38]
mov dword [esp + 0x5c], ebx
adc ebx, dword [esp + 0x18]
mov dword [esp + 0x30], edi
mov dword [esp + 0x6c], eax
cmp edi, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x60], edx
mov ecx, edx
mov dword [esp + 0x70], ebx
sbb ecx, ebx
setae cl
movzx ebx, cl
add ebx, dword [esp + 0x58]
adc eax, 0
mov ecx, ebx
or ecx, eax
mov ecx, 0
mov edx, dword [esp + 0x10]
je 0x48aaaf
add edx, dword [esp + 0x50]
bsr edi, eax
xor edi, 0x1f
bsr ecx, ebx
xor ecx, 0x1f
add ecx, 0x20
test eax, eax
cmovne ecx, edi
shld eax, ebx, cl
shl ebx, cl
xor edi, edi
test cl, 0x20
cmovne eax, ebx
cmove edi, ebx
sub edx, ecx
cmp edx, 0x3c0
jg 0x48ad7e
shrd edi, eax, 0xb
shr eax, 0xb
cmp edx, 0xfffffbc2
jle 0x48afed
shl edx, 0x14
and eax, 0xfffff
add eax, edx
add eax, 0x43e00000
mov dword [esp + 0x4c], eax
xor eax, 0x7ff00000
or eax, edi
mov ecx, edi
je 0x48ad7e
mov dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x44]
sub eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x5c]
sbb ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x30]
cmp eax, edx
mov eax, dword [esp + 0x60]
sbb ecx, eax
mov ecx, dword [esp + 8]
jae 0x48aae3
cmp edx, dword [esp + 0x6c]
sbb eax, dword [esp + 0x70]
jb 0x48adc7
xor eax, eax
cmp byte [esp + 0x24], 0x2d
sete al
mov edx, dword [esp + 0x54]
mov dword [edx + 4], 0
mov dword [edx], 0x14
shl eax, 0x1f
mov esi, dword [esp + 0x4c]
or esi, eax
mov eax, dword [esp + 0x3c]
mov dword [edx + 8], eax
mov dword [edx + 0xc], esi
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x34]
mov dword [esp], edi
mov edx, dword [esp + 4]
jmp 0x49ac47
lea eax, [esp + 0x64]
mov ecx, esp
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x58]
push dword [ebp + 0x10]
call dbg.read_number_raw
mov edx, dword [esp + 0x10]
add esp, 0xc
test al, al
mov ecx, dword [esp + 8]
jne 0x49ac47
jmp 0x48e675
mov ecx, dword [esp + 0x10]
mov eax, ecx
shr eax, 1
add eax, ecx
cmp eax, 0xffffffe
ja 0x48c3ea
mov edi, eax
mov eax, dword [esp + 0x10]
shl eax, 4
mov esi, edi
shl esi, 4
push esi
push eax
push dword [esp + 0x10]
push dword [esp + 0x84]
call dword [esp + 0xa4]
add esp, 0x10
test eax, eax
je 0x48c3ea
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x54]
sub edx, ecx
add edx, eax
mov dword [esp + 0x54], edx
sub ebx, ecx
add ebx, eax
mov dword [esp + 0x2c], ebx
lea ecx, [esi + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x74], ecx
mov esi, dword [esp]
mov dword [esp + 8], eax
jmp 0x4890db
cmp byte [esp + 0x10], 0x2d
jne 0x48ac6f
xor eax, eax
cmp byte [esp + 0x24], 0x2d
sete al
mov ecx, dword [esp + 0x54]
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 + 0x34]
jmp 0x4895e1
cmp cl, 0x4e
jne case.0x4889e0.74
movzx eax, byte [esi + 1]
or eax, 0x20
cmp eax, 0x61
jne case.0x4889e0.74
movzx eax, byte [esi + 2]
or eax, 0x20
cmp eax, 0x6e
jne case.0x4889e0.74
lea eax, [esi + 3]
mov dword [esp], eax
cmp dword [esp + 0x20], 0
je 0x48ac62
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
test ecx, ecx
je 0x48ac43
mov byte [ecx], 0
mov ecx, dword [esp + 0x20]
mov dword [ecx], eax
mov eax, dword [esp + 0x54]
mov dword [eax + 4], 0
mov dword [eax], 0x301
mov dword [eax + 8], esi
jmp 0x48ad03
movapd xmm0, xmmword [0x4fdea0]
jmp 0x48acfb
mov eax, dword [ebp + 0x10]
test al, al
js 0x48cb7f
test al, 0x10
je 0x48fabd
cmp byte [esp + 0x24], 0x2d
mov edx, dword [esp + 0x54]
mov dword [edx + 4], 0
mov eax, 0xfff00000
mov ecx, 0x7ff00000
cmove ecx, eax
mov dword [edx], 0x14
mov dword [edx + 0xc], ecx
mov dword [edx + 8], 0
mov eax, dword [esp + 0x34]
jmp 0x4895e1
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test eax, eax
je 0x48acc5
mov byte [eax], 0
mov edi, dword [esp + 0xc]
mov eax, edi
sub eax, esi
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
mov edx, dword [esp + 0x54]
mov dword [edx + 4], ecx
shl eax, 8
or eax, 1
mov dword [edx], eax
mov dword [edx + 8], esi
mov eax, dword [esp + 0x20]
mov dword [eax], edi
jmp 0x489ec2
movapd xmm0, xmmword [0x4fdeb0]
mov eax, dword [esp + 0x54]
movupd xmmword [eax], xmm0
mov ecx, dword [esp + 8]
mov edx, edi
jmp 0x49ac47
lea eax, [ebx + 0x472]
cmp ebx, 0xfffffb8f
mov ecx, 0
cmovb eax, ecx
mov ebx, 0x40
sub ebx, eax
lea ecx, [eax - 0x44]
cmp ecx, 0xffffffbf
ja 0x48d0f1
mov ecx, 4
sub ecx, eax
shrd edi, edx, cl
shr edx, cl
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x38]
shrd ebx, eax, cl
shr eax, cl
add dword [esp + 0x10], ecx
test cl, 0x20
cmovne edi, edx
mov ecx, 0
cmovne edx, ecx
cmovne ebx, eax
cmovne eax, ecx
add ebx, 9
mov dword [esp + 0x38], ebx
adc eax, 0
mov dword [esp + 0x18], eax
mov ecx, 0x3c
jmp 0x48a97d
mov dword [esp + 0x10], esi
mov eax, dword [ebp + 0x10]
test al, al
js 0x48cbf5
test al, 0x10
je 0x48fc2e
cmp byte [esp + 0x24], 0x2d
mov edx, dword [esp + 0x54]
mov dword [edx + 4], 0
mov dword [edx], 0x14
mov eax, 0xfff00000
mov ecx, 0x7ff00000
cmove ecx, eax
mov dword [edx + 0xc], ecx
mov dword [edx + 8], 0
jmp 0x48c0ba
mov dword [esp + 0x10], esi
xor eax, eax
mov ecx, 0xffffffff
add ecx, 1
adc eax, 0xfffff
mov ebx, dword [esp + 0x4c]
mov edi, ebx
and edi, 0xfffff
or edi, eax
mov edx, ebx
shr edx, 0x14
add edx, 0xfffffbcc
mov esi, dword [esp + 0x3c]
cmp esi, ecx
mov ecx, ebx
sbb ecx, eax
mov eax, 0xfffffbcd
cmovae eax, edx
mov dword [esp + 0x6c], eax
cmovb edi, ebx
shld edi, esi, 1
lea ebx, [esi*2 + 1]
lea eax, [esp + 0x9c]
lea ecx, [esp + 0xc0]
mov edx, dword [esp + 0x28]
push dword [esp + 0xc]
push dword [esp + 0x44]
push dword [esp + 0x1c]
push eax
push dword [esp + 0x58]
call dbg.bigint_set_buf
add esp, 0x14
lea eax, [esp + 0x2d0]
mov dword [esp + 0x70], eax
mov dword [esp + 0x2d0], ebx
mov dword [esp + 0x2d4], edi
mov eax, dword [esp + 0x9c]
test eax, eax
js 0x48b0de
cmp eax, 0x13
jb 0x48b277
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x28], ecx
jmp 0x48ae94
mov ecx, dword [esp + 0x44]
lea eax, [ecx - 0x13]
cmp ecx, 0x25
jle 0x48b26c
mov dword [esp + 0x44], eax
cmp dword [esp + 0x28], 0
je 0x48aeba
xor edi, edi
mov eax, dword [esp + edi*8 + 0xc8]
or eax, dword [esp + edi*8 + 0xcc]
jne 0x48aebc
inc edi
cmp dword [esp + 0x28], edi
jne 0x48aea1
jmp 0x48ae84
xor edi, edi
cmp edi, dword [esp + 0x28]
jae 0x48ae84
mov dword [esp + 0x18], 0
mov dword [esp + 0xc], 0
mov esi, dword [esp + edi*8 + 0xc8]
mov eax, esi
mov ecx, 0x89e80000
mul ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x38], edx
xor ecx, ecx
mov edx, 0x89e80000
add edx, 0xdf2304
mov dword [esp + 0x60], edx
setb cl
mov eax, esi
mul edx
mov ebx, eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + edi*8 + 0xcc]
mov dword [esp + 0x5c], eax
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x58], edx
imul esi, ecx
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x5c]
mov eax, esi
mul dword [esp + 0x60]
mov dword [esp + 0x60], eax
imul ecx, esi
add ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x48]
adc esi, dword [esp + 0x30]
add ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x58]
adc eax, 0
add esi, dword [esp + 0x60]
adc edx, ecx
add esi, eax
mov dword [esp + 0x48], esi
adc edx, 0
mov ecx, dword [esp + 0x14]
and ecx, 0xfff80000
mov esi, dword [esp + 0x18]
add ecx, esi
mov eax, dword [esp + 0xc]
adc ebx, eax
setb byte [esp + 0x14]
cmp ecx, esi
mov esi, ecx
mov ecx, ebx
sbb ecx, eax
mov dword [esp + edi*8 + 0xcc], ebx
setb cl
or cl, byte [esp + 0x14]
movzx eax, cl
add eax, dword [esp + 0x48]
mov dword [esp + 0x18], eax
mov dword [esp + edi*8 + 0xc8], esi
adc edx, 0
mov dword [esp + 0xc], edx
inc edi
cmp dword [esp + 0x28], edi
jne 0x48aed2
mov eax, dword [esp + 0x18]
or eax, dword [esp + 0xc]
je 0x48ae84
mov ecx, dword [esp + 0x28]
lea eax, [ecx + 1]
mov edx, dword [esp + 0x18]
mov dword [esp + ecx*8 + 0xc8], edx
mov edx, dword [esp + 0xc]
mov dword [esp + ecx*8 + 0xcc], edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x28], eax
jmp 0x48ae84
xor ecx, ecx
mov dword [esp + 0x4c], 0
cmp edx, 0xfffffb8f
jb 0x48aaaf
mov cl, 0xc3
sub cl, dl
shrd edi, eax, cl
shr eax, cl
xor ebx, ebx
test cl, 0x20
cmovne edi, eax
cmove ebx, eax
mov dword [esp + 0x4c], ebx
mov ecx, edi
jmp 0x48aaaf
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test eax, eax
je 0x48b02f
mov byte [eax], 0
mov edi, dword [esp + 0x18]
mov eax, edi
sub eax, esi
mov edx, eax
sar edx, 0x1f
shld edx, eax, 8
mov ecx, dword [esp + 0x54]
mov dword [ecx + 4], edx
shl eax, 8
or eax, 1
mov dword [ecx], eax
mov dword [ecx + 8], esi
jmp 0x48b07c
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
test ecx, ecx
je 0x48b061
mov byte [ecx], 0
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
mov edx, dword [esp + 0x54]
mov dword [edx + 4], ecx
shl eax, 8
or eax, 1
mov dword [edx], eax
mov dword [edx + 8], esi
mov eax, dword [esp + 0x20]
mov dword [eax], edi
mov dword [esp], edi
jmp 0x4895e4
mov ebx, edx
lea ecx, [esp + 0xb4]
call dbg.skip_spaces_and_comments
mov esi, dword [esp + 0xb4]
test al, al
je 0x48b3d0
mov edx, ebx
cmp esi, dword [esp + 0x84]
jb 0x489b1f
mov eax, dword [ebp + 0x18]
test eax, eax
cmovne edi, eax
mov dword [edi + 8], 0
mov dword [edi + 4], str.input_data_is_empty
mov eax, dword [esp + 0x90]
mov dword [eax], 3
jmp 0x48b3f6
neg eax
mov dword [esp + 0x50], 1
cmp eax, 0x13
jb 0x48b9c4
mov dword [esp + 0x50], 1
mov dword [esp + 0x28], 1
jmp 0x48b113
mov ecx, dword [esp + 0x44]
lea eax, [ecx - 0x13]
cmp ecx, 0x25
jle 0x48b9a9
mov dword [esp + 0x44], eax
cmp dword [esp + 0x28], 0
je 0x48b139
xor edi, edi
mov eax, dword [esp + edi*8 + 0x2d0]
or eax, dword [esp + edi*8 + 0x2d4]
jne 0x48b13b
inc edi
cmp dword [esp + 0x28], edi
jne 0x48b120
jmp 0x48b103
xor edi, edi
cmp edi, dword [esp + 0x28]
jae 0x48b103
mov dword [esp + 0x18], 0
mov dword [esp + 0xc], 0
mov esi, dword [esp + edi*8 + 0x2d0]
mov eax, esi
mov ecx, 0x89e80000
mul ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x38], edx
xor ecx, ecx
mov edx, 0x89e80000
add edx, 0xdf2304
mov dword [esp + 0x60], edx
setb cl
mov eax, esi
mul edx
mov ebx, eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + edi*8 + 0x2d4]
mov dword [esp + 0x5c], eax
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x58], edx
imul esi, ecx
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x5c]
mov eax, esi
mul dword [esp + 0x60]
mov dword [esp + 0x60], eax
imul ecx, esi
add ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x48]
adc esi, dword [esp + 0x30]
add ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x58]
adc eax, 0
add esi, dword [esp + 0x60]
adc edx, ecx
add esi, eax
mov dword [esp + 0x48], esi
adc edx, 0
mov ecx, dword [esp + 0x14]
and ecx, 0xfff80000
mov esi, dword [esp + 0x18]
add ecx, esi
mov eax, dword [esp + 0xc]
adc ebx, eax
setb byte [esp + 0x14]
cmp ecx, esi
mov esi, ecx
mov ecx, ebx
sbb ecx, eax
mov dword [esp + edi*8 + 0x2d4], ebx
setb cl
or cl, byte [esp + 0x14]
movzx eax, cl
add eax, dword [esp + 0x48]
mov dword [esp + 0x18], eax
mov dword [esp + edi*8 + 0x2d0], esi
adc edx, 0
mov dword [esp + 0xc], edx
inc edi
cmp dword [esp + 0x28], edi
jne 0x48b151
mov eax, dword [esp + 0x18]
or eax, dword [esp + 0xc]
je 0x48b103
mov ecx, dword [esp + 0x28]
lea eax, [ecx + 1]
mov edx, dword [esp + 0x18]
mov dword [esp + ecx*8 + 0x2d0], edx
mov edx, dword [esp + 0xc]
mov dword [esp + ecx*8 + 0x2d4], edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x28], eax
jmp 0x48b103
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x30], 1
test eax, eax
je 0x48bafa
mov ecx, dword [eax*8 + 0x500f9c]
mov dword [esp + 0x5c], ecx
mov eax, dword [eax*8 + 0x500f98]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xc0]
xor ecx, ecx
mov dword [esp + 0x18], eax
test eax, eax
je 0x48b2cc
xor ecx, ecx
mov eax, dword [esp + ecx*8 + 0xc8]
or eax, dword [esp + ecx*8 + 0xcc]
jne 0x48b2cc
inc ecx
cmp dword [esp + 0x18], ecx
jne 0x48b2b0
jmp 0x48bafa
cmp ecx, dword [esp + 0x18]
jae 0x48bafa
mov dword [esp + 0x28], 0
mov dword [esp + 0xc], 0
mov ebx, dword [esp + ecx*8 + 0xc8]
mov eax, ebx
mov esi, dword [esp + 0x44]
mul esi
mov dword [esp + 0x38], edx
mov dword [esp + 0x14], eax
mov eax, ebx
mov ebx, dword [esp + 0x5c]
mul ebx
mov edi, eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + ecx*8 + 0xcc]
mov dword [esp + 0x60], eax
mul esi
mov dword [esp + 0x58], edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x60]
mul ebx
add edi, dword [esp + 0x38]
mov esi, dword [esp + 0x48]
adc esi, 0
add edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x58]
adc ebx, 0
add esi, eax
adc edx, 0
add esi, ebx
mov dword [esp + 0x48], esi
adc edx, 0
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x14]
add ebx, esi
mov eax, dword [esp + 0xc]
adc edi, eax
setb byte [esp + 0x14]
cmp ebx, esi
mov esi, ebx
mov ebx, edi
sbb ebx, eax
mov dword [esp + ecx*8 + 0xcc], edi
setb ah
or ah, byte [esp + 0x14]
movzx eax, ah
add eax, dword [esp + 0x48]
mov dword [esp + 0x28], eax
mov dword [esp + ecx*8 + 0xc8], esi
adc edx, 0
mov dword [esp + 0xc], edx
inc ecx
cmp dword [esp + 0x18], ecx
jne 0x48b2e6
mov eax, dword [esp + 0x28]
or eax, dword [esp + 0xc]
je 0x48bafa
mov ecx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc]
mov dword [esp + ecx*8 + 0xcc], eax
mov eax, dword [esp + 0x28]
mov dword [esp + ecx*8 + 0xc8], eax
jmp 0x48bafa
sub esi, dword [esp + 0x88]
mov eax, dword [ebp + 0x18]
test eax, eax
cmovne edi, eax
mov dword [edi + 8], esi
mov dword [edi + 4], str.unclosed_multiline_comment
mov eax, dword [esp + 0x90]
mov dword [eax], 8
mov eax, dword [ebp + 0x10]
test al, 1
je 0x48b404
xor ebx, ebx
jmp 0x496a85
push dword [esp + 0x88]
push dword [esp + 0x7c]
call dword [esp + 0x94]
add esp, 8
xor ebx, ebx
jmp 0x496a85
mov edi, ebx
cmp dl, 0x5c
jne 0x48b87e
movzx eax, byte [ebx + 1]
add eax, 0xffffffde
cmp eax, 0x53
ja case.0x48f3b3.35
jmp dword [eax*4 + 0x501b88]
mov byte [edi], 0x22
jmp 0x48b500
mov byte [edi], 0xa
jmp 0x48b500
mov byte [edi], 0x2f
jmp 0x48b500
mov byte [edi], 8
jmp 0x48b500
movzx eax, byte [ebx + 2]
movzx edx, byte [eax + 0x4fe25d]
movzx eax, byte [ebx + 3]
movzx ecx, byte [eax + 0x4fe25d]
movzx eax, byte [ebx + 4]
movzx esi, byte [eax + 0x4fe25d]
movzx eax, byte [ebx + 5]
movzx eax, byte [eax + 0x4fe25d]
shl edx, 8
or edx, esi
shl ecx, 8
or ecx, eax
mov eax, ecx
or eax, edx
test eax, 0xf0f0
jne 0x48fee0
shl edx, 4
or ecx, edx
lea edx, [ebx + 6]
mov eax, ecx
and eax, 0xf800
cmp eax, 0xd800
je 0x48b8ae
movzx ebx, cx
cmp ebx, 0x800
jb 0x48b508
shr ebx, 0xc
or bl, 0xe0
mov byte [edi], bl
mov eax, ecx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [edi + 1], al
and cl, 0x3f
or cl, 0x80
mov byte [edi + 2], cl
add edi, 3
jmp 0x48b534
mov byte [edi], 0x5c
jmp 0x48b500
mov byte [edi], 0xd
jmp 0x48b500
mov byte [edi], 0xc
jmp 0x48b500
mov byte [edi], 9
inc edi
add ebx, 2
mov edx, ebx
jmp 0x48b534
cmp ebx, 0x80
jb 0x48b527
mov eax, ecx
shr eax, 6
or al, 0xc0
mov byte [edi], al
and cl, 0x3f
or cl, 0x80
mov byte [edi + 1], cl
add edi, 2
jmp 0x48b534
mov byte [edi], cl
inc edi
jmp 0x48b534
cmp ebx, edx
je 0x48b861
movzx eax, byte [edx]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48b77a
movzx eax, byte [edx + 1]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48b871
movzx eax, byte [edx + 2]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48b656
movzx eax, byte [edx + 3]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48b667
movzx eax, byte [edx + 4]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48b676
movzx eax, byte [edx + 5]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48b685
movzx eax, byte [edx + 6]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48b69c
movzx eax, byte [edx + 7]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48b6b3
movzx eax, byte [edx + 8]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48b6c6
movzx eax, byte [edx + 9]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48b6d9
movzx eax, byte [edx + 0xa]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48b6f4
movzx eax, byte [edx + 0xb]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48b70c
movzx eax, byte [edx + 0xc]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48b722
movzx eax, byte [edx + 0xd]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48b738
movzx eax, byte [edx + 0xe]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48b756
movzx eax, byte [edx + 0xf]
test byte [eax + 0x4fdfe6], 0xc
movupd xmm0, xmmword [edx]
movupd xmmword [edi], xmm0
jne 0x48b774
add edx, 0x10
add edi, 0x10
jmp 0x48b534
movzx eax, word [edx]
add edx, 2
mov word [edi], ax
add edi, 2
jmp 0x48b77a
mov eax, dword [edx]
add edx, 3
mov dword [edi], eax
add edi, 3
jmp 0x48b77a
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
jmp 0x48b77a
lea ebx, [edx + 5]
mov eax, dword [edx]
mov dword [edi], eax
movzx eax, word [edx + 4]
mov word [edi + 4], ax
add edi, 5
jmp 0x48b77c
lea ebx, [edx + 6]
mov eax, dword [edx]
mov dword [edi], eax
movzx eax, word [edx + 4]
mov word [edi + 4], ax
add edi, 6
jmp 0x48b77c
movsd xmm0, qword [edx]
add edx, 7
movsd qword [edi], xmm0
add edi, 7
jmp 0x48b77a
movsd xmm0, qword [edx]
add edx, 8
movsd qword [edi], xmm0
add edi, 8
jmp 0x48b77a
lea ebx, [edx + 9]
movsd xmm0, qword [edx]
movsd qword [edi], xmm0
movzx eax, word [edx + 8]
mov word [edi + 8], ax
add edi, 9
jmp 0x48b77c
lea ebx, [edx + 0xa]
movsd xmm0, qword [edx]
movsd qword [edi], xmm0
movzx eax, word [edx + 8]
mov word [edi + 8], ax
add edi, 0xa
jmp 0x48b77c
lea ebx, [edx + 0xb]
movsd xmm0, qword [edx]
movsd qword [edi], xmm0
mov eax, dword [edx + 8]
mov dword [edi + 8], eax
add edi, 0xb
jmp 0x48b77c
lea ebx, [edx + 0xc]
movsd xmm0, qword [edx]
movsd qword [edi], xmm0
mov eax, dword [edx + 8]
mov dword [edi + 8], eax
add edi, 0xc
jmp 0x48b77c
lea ebx, [edx + 0xd]
movsd xmm0, qword [edx]
movsd qword [edi], xmm0
mov eax, dword [edx + 8]
mov dword [edi + 8], eax
movzx eax, word [edx + 0xc]
mov word [edi + 0xc], ax
add edi, 0xd
jmp 0x48b77c
lea ebx, [edx + 0xe]
movsd xmm0, qword [edx]
movsd qword [edi], xmm0
mov eax, dword [edx + 8]
mov dword [edi + 8], eax
movzx eax, word [edx + 0xc]
mov word [edi + 0xc], ax
add edi, 0xe
jmp 0x48b77c
add edx, 0xf
add edi, 0xf
mov ebx, edx
movzx edx, byte [ebx]
test dl, dl
jns 0x48b422
mov eax, dword [ebx]
mov ecx, eax
and eax, 0xc0c0f0
mov edx, ebx
cmp eax, 0x8080e0
jne 0x48b7d6
mov dword [esp + 0x28], edi
mov edi, ecx
and ecx, 0x200f
je 0x48b7d0
cmp ecx, 0x200d
je 0x48b7d0
mov eax, dword [esp + 0x28]
mov dword [eax], edi
mov edi, eax
add edi, 3
mov ecx, dword [edx + 3]
add edx, 3
mov eax, ecx
and eax, 0xc0c0f0
cmp eax, 0x8080e0
je 0x48b799
jmp 0x48b7d6
mov ecx, edi
mov edi, dword [esp + 0x28]
test cl, cl
jns 0x48b534
mov dword [esp + 0x28], edi
mov eax, ecx
and eax, 0xc0e0
cmp eax, 0x80c0
jne 0x48b81e
mov eax, ecx
and eax, 0x1e
mov edi, dword [esp + 0x28]
je 0x48b82f
mov word [edi], cx
add edi, 2
mov ecx, dword [edx + 2]
add edx, 2
mov eax, ecx
and eax, 0xc0e0
cmp eax, 0x80c0
jne 0x48b82f
mov eax, ecx
and eax, 0x1e
jne 0x48b7fb
jmp 0x48b82f
mov edi, dword [esp + 0x28]
jmp 0x48b82f
mov dword [edi], ecx
add edi, 4
mov ecx, dword [edx + 4]
add edx, 4
mov eax, ecx
and eax, 0xc0c0c0f8
cmp eax, 0x808080f0
jne 0x48b52c
mov eax, ecx
and eax, 0x3007
je 0x48b52c
test cl, 4
je 0x48b824
mov eax, ecx
and eax, 0x3003
je 0x48b824
jmp 0x48b52c
cmp byte [esp + 0x98], 0
je 0x490bcc
mov edx, ebx
movzx eax, word [edx]
mov word [edi], ax
inc edx
inc edi
jmp 0x48b77a
movzx eax, dl
cmp eax, 0x22
je 0x48c371
cmp byte [esp + 0x98], 0
je 0x4911f0
cmp ebx, dword [esp + 0x84]
jae 0x491205
inc ebx
mov byte [edi], dl
inc edi
jmp 0x48b504
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49121a
movzx eax, word [edx]
cmp eax, 0x755c
jne 0x49122f
movzx eax, byte [ebx + 8]
movzx eax, byte [eax + 0x4fe25d]
mov dword [esp + 0x28], eax
movzx eax, byte [ebx + 9]
movzx esi, byte [eax + 0x4fe25d]
movzx eax, byte [ebx + 0xa]
movzx eax, byte [eax + 0x4fe25d]
mov dword [esp + 0xc], eax
movzx eax, byte [ebx + 0xb]
movzx eax, byte [eax + 0x4fe25d]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x28]
shl eax, 8
add eax, dword [esp + 0xc]
mov dword [esp + 0x28], eax
shl esi, 8
add esi, dword [esp + 0x24]
mov dword [esp + 0x24], esi
mov eax, esi
mov esi, dword [esp + 0x28]
or eax, dword [esp + 0x28]
test eax, 0xf0f0
jne 0x491241
shl esi, 4
movzx eax, si
mov esi, dword [esp + 0x24]
or esi, eax
mov dword [esp + 0x24], esi
mov eax, esi
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x491253
movzx edx, cx
shl edx, 0xa
add edx, 0xfca00000
mov ecx, dword [esp + 0x24]
lea esi, [ecx - 0xdc00]
or esi, edx
lea eax, [esi + 0x10000]
mov edx, eax
shr edx, 0x12
or dl, 0xf0
mov byte [edi], dl
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [edi + 1], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [edi + 2], al
and cl, 0x3f
or cl, 0x80
mov byte [edi + 3], cl
add edi, 4
add ebx, 0xc
jmp 0x48b504
test eax, eax
je 0x48baf2
mov dword [esp + 0x30], 0
cmp dword [esp + 0x50], 0
je 0x48bafa
mov ecx, dword [eax*8 + 0x500f9c]
mov dword [esp + 0x30], ecx
mov eax, dword [eax*8 + 0x500f98]
mov dword [esp + 0x60], eax
xor ecx, ecx
mov eax, dword [esp + ecx*8 + 0x2d0]
or eax, dword [esp + ecx*8 + 0x2d4]
jne 0x48b9f8
inc ecx
cmp dword [esp + 0x50], ecx
jne 0x48b9dc
jmp 0x48baf2
cmp ecx, dword [esp + 0x50]
jae 0x48baf2
mov dword [esp + 0x28], 0
mov dword [esp + 0xc], 0
mov ebx, dword [esp + ecx*8 + 0x2d0]
mov eax, ebx
mov esi, dword [esp + 0x60]
mul esi
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
mov eax, ebx
mov ebx, dword [esp + 0x30]
mul ebx
mov edi, eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + ecx*8 + 0x2d4]
mov dword [esp + 0x40], eax
mul esi
mov dword [esp + 0x38], edx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x40]
mul ebx
add edi, dword [esp + 0x14]
mov esi, dword [esp + 0x48]
adc esi, 0
add edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x38]
adc ebx, 0
add esi, eax
adc edx, 0
add esi, ebx
mov dword [esp + 0x48], esi
adc edx, 0
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x18]
add ebx, esi
mov eax, dword [esp + 0xc]
adc edi, eax
setb byte [esp + 0x18]
cmp ebx, esi
mov esi, ebx
mov ebx, edi
sbb ebx, eax
mov dword [esp + ecx*8 + 0x2d4], edi
setb ah
or ah, byte [esp + 0x18]
movzx eax, ah
add eax, dword [esp + 0x48]
mov dword [esp + 0x28], eax
mov dword [esp + ecx*8 + 0x2d0], esi
adc edx, 0
mov dword [esp + 0xc], edx
inc ecx
cmp dword [esp + 0x50], ecx
jne 0x48ba12
mov eax, dword [esp + 0x28]
or eax, dword [esp + 0xc]
je 0x48baf2
mov ecx, dword [esp + 0x50]
lea eax, [ecx + 1]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x28]
mov dword [esp + ecx*8 + 0x2d0], eax
mov eax, dword [esp + 0xc]
mov dword [esp + ecx*8 + 0x2d4], eax
jmp 0x48bafa
mov eax, dword [esp + 0x50]
mov dword [esp + 0x30], eax
cmp dword [esp + 0x6c], 0
jle 0x48bd6b
mov eax, dword [esp + 0x6c]
mov ecx, eax
shr ecx, 6
mov dword [esp + 0x5c], ecx
and eax, 0x3f
mov dword [esp + 0x48], eax
je 0x48cc3c
mov eax, dword [esp + 0x30]
mov dword [esp + eax*8 + 0x2d4], 0
mov dword [esp + eax*8 + 0x2d0], 0
test eax, eax
je 0x48bd06
mov eax, 0x40
sub eax, dword [esp + 0x48]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x30]
mov ebx, eax
cmp eax, 0x18
jae 0x48c0c3
mov esi, ebx
test bl, 1
je 0x48bbd4
mov eax, dword [esp + ebx*8 + 0x2d0]
mov esi, dword [esp + ebx*8 + 0x2d4]
mov ecx, dword [esp + 0x48]
shld esi, eax, cl
shl eax, cl
xor edx, edx
test cl, 0x20
cmovne esi, eax
mov dword [esp + 0x18], esi
cmovne eax, edx
mov edi, dword [esp + ebx*8 + 0x2cc]
mov dword [esp + 0xc], edi
mov ecx, dword [esp + 0x28]
shr edi, cl
mov edx, dword [esp + ebx*8 + 0x2c8]
mov esi, dword [esp + 0xc]
shrd edx, esi, cl
test cl, 0x20
cmovne edx, edi
mov ecx, 0
cmovne edi, ecx
or edi, dword [esp + 0x18]
or edx, eax
mov eax, dword [esp + 0x5c]
add eax, ebx
mov dword [esp + eax*8 + 0x2d0], edx
mov dword [esp + eax*8 + 0x2d4], edi
lea esi, [ebx - 1]
cmp ebx, 1
je 0x48bd06
mov eax, dword [esp + 0x5c]
lea eax, [esp + eax*8]
add eax, 0x2d0
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], esi
mov ebx, esi
mov eax, dword [esp + esi*8 + 0x2d0]
mov dword [esp + 0x38], eax
mov edi, eax
mov ecx, dword [esp + 0x48]
shl edi, cl
mov dword [esp + 0x14], edi
test cl, 0x20
mov eax, 0
cmovne edi, eax
mov dword [esp + 0x40], edi
mov esi, dword [esp + esi*8 + 0x2cc]
mov dword [esp + 0x58], esi
mov edx, dword [esp + 0x28]
mov ecx, edx
shr esi, cl
mov eax, dword [esp + ebx*8 + 0x2c8]
mov edi, dword [esp + 0x58]
shrd eax, edi, cl
test dl, 0x20
cmovne eax, esi
mov ecx, 0
cmovne esi, ecx
or eax, dword [esp + 0x40]
mov edi, dword [esp + 0xc]
mov dword [edi + ebx*8], eax
mov eax, dword [esp + ebx*8 + 0x2c8]
mov dword [esp + 0x40], eax
mov edx, eax
mov ecx, dword [esp + 0x48]
shl edx, cl
mov dword [esp + 0x60], edx
test cl, 0x20
mov eax, 0
cmovne edx, eax
mov dword [esp + 0x58], edx
mov edx, dword [esp + ebx*8 + 0x2d4]
mov eax, dword [esp + 0x38]
shld edx, eax, cl
test cl, 0x20
cmovne edx, dword [esp + 0x14]
or edx, esi
mov eax, dword [esp + ebx*8 + 0x2c0]
mov dword [edi + ebx*8 + 4], edx
mov edx, dword [esp + ebx*8 + 0x2cc]
mov esi, dword [esp + 0x40]
shld edx, esi, cl
test cl, 0x20
cmovne edx, dword [esp + 0x60]
mov dword [esp + 0x14], edx
mov edi, dword [esp + ebx*8 + 0x2c4]
mov dword [esp + 0x38], edi
mov ecx, dword [esp + 0x28]
shr edi, cl
test cl, 0x20
mov edx, edi
mov esi, 0
cmovne edx, esi
mov esi, dword [esp + 0x38]
shrd eax, esi, cl
test cl, 0x20
cmovne eax, edi
or edx, dword [esp + 0x14]
or eax, dword [esp + 0x58]
mov ecx, dword [esp + 0xc]
mov dword [ecx + ebx*8 - 8], eax
mov dword [ecx + ebx*8 - 4], edx
mov esi, dword [esp + 0x18]
add esi, 0xfffffffe
mov dword [esp + 0x18], esi
jne 0x48bbf1
mov edx, dword [esp + 0x2d0]
mov eax, dword [esp + 0x2d4]
mov edi, edx
mov ecx, dword [esp + 0x48]
shl edi, cl
shld eax, edx, cl
xor edx, edx
test cl, 0x20
cmovne eax, edi
cmove edx, edi
mov edi, dword [esp + 0x5c]
mov dword [esp + edi*8 + 0x2d0], edx
mov dword [esp + edi*8 + 0x2d4], eax
mov edx, dword [esp + 0x30]
add edx, edi
mov eax, dword [esp + edx*8 + 0x2d0]
xor ecx, ecx
or eax, dword [esp + edx*8 + 0x2d4]
setne cl
add edx, ecx
mov dword [esp + 0x30], edx
cmp dword [esp + 0x6c], 0x40
jae 0x48bffc
jmp 0x48c012
mov eax, dword [esp + 0x6c]
neg eax
mov ecx, eax
shr ecx, 6
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x6c], eax
mov ecx, eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x44], eax
and ecx, 0x3f
mov dword [esp + 0x28], ecx
je 0x48cc8c
lea eax, [esp + 0xc8]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x44]
mov dword [esp + eax*8 + 0xcc], 0
mov dword [esp + eax*8 + 0xc8], 0
test eax, eax
je 0x48bf9d
mov eax, 0x40
sub eax, dword [esp + 0x28]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x48], eax
cmp eax, 0x18
jae 0x48c21a
mov eax, dword [esp + 0x48]
mov edi, eax
test al, 1
je 0x48be61
mov esi, dword [esp + 0x48]
mov eax, dword [esp + esi*8 + 0xc8]
mov edx, dword [esp + esi*8 + 0xcc]
mov ecx, dword [esp + 0x28]
shld edx, eax, cl
shl eax, cl
xor edi, edi
test cl, 0x20
cmovne edx, eax
mov dword [esp + 0x14], edx
cmovne eax, edi
mov ebx, dword [esp + esi*8 + 0xc4]
mov dword [esp + 0x18], ebx
mov ecx, dword [esp + 0xc]
shr ebx, cl
mov edi, dword [esp + esi*8 + 0xc0]
mov edx, dword [esp + 0x18]
shrd edi, edx, cl
test cl, 0x20
cmovne edi, ebx
mov ecx, 0
cmovne ebx, ecx
or ebx, dword [esp + 0x14]
or edi, eax
mov eax, dword [esp + 0x5c]
add eax, esi
mov dword [esp + eax*8 + 0xc8], edi
mov dword [esp + eax*8 + 0xcc], ebx
lea edi, [esi - 1]
cmp dword [esp + 0x48], 1
je 0x48bf9d
mov eax, dword [esp + 0x5c]
lea eax, [esp + eax*8]
add eax, 0xc8
mov dword [esp + 0x48], eax
mov dword [esp + 0x18], edi
mov eax, dword [esp + edi*8 + 0xc8]
mov dword [esp + 0x38], eax
mov edx, eax
mov ecx, dword [esp + 0x28]
shl edx, cl
mov dword [esp + 0x14], edx
test cl, 0x20
mov eax, 0
cmovne edx, eax
mov dword [esp + 0x58], edx
mov esi, dword [esp + edi*8 + 0xc4]
mov dword [esp + 0x40], esi
mov edx, dword [esp + 0xc]
mov ecx, edx
shr esi, cl
mov eax, dword [esp + edi*8 + 0xc0]
mov ebx, dword [esp + 0x40]
shrd eax, ebx, cl
test dl, 0x20
cmovne eax, esi
mov ecx, 0
cmovne esi, ecx
or eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x48]
mov dword [ecx + edi*8], eax
mov eax, dword [esp + edi*8 + 0xc0]
mov dword [esp + 0x40], eax
mov ebx, dword [esp + 0x28]
mov ecx, ebx
shl eax, cl
mov dword [esp + 0x60], eax
test bl, 0x20
mov ecx, eax
mov eax, 0
cmovne ecx, eax
mov dword [esp + 0x58], ecx
mov edx, dword [esp + edi*8 + 0xcc]
mov ecx, ebx
mov eax, dword [esp + 0x38]
shld edx, eax, cl
test bl, 0x20
cmovne edx, dword [esp + 0x14]
or edx, esi
mov eax, dword [esp + edi*8 + 0xb8]
mov ecx, dword [esp + 0x48]
mov dword [ecx + edi*8 + 4], edx
mov edx, dword [esp + edi*8 + 0xc4]
mov ecx, ebx
mov esi, dword [esp + 0x40]
shld edx, esi, cl
test bl, 0x20
cmovne edx, dword [esp + 0x60]
mov dword [esp + 0x14], edx
mov ebx, dword [esp + edi*8 + 0xbc]
mov dword [esp + 0x38], ebx
mov ecx, dword [esp + 0xc]
shr ebx, cl
test cl, 0x20
mov edx, ebx
mov esi, 0
cmovne edx, esi
mov esi, dword [esp + 0x38]
shrd eax, esi, cl
test cl, 0x20
cmovne eax, ebx
or edx, dword [esp + 0x14]
or eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x48]
mov dword [ecx + edi*8 - 8], eax
mov dword [ecx + edi*8 - 4], edx
mov edi, dword [esp + 0x18]
add edi, 0xfffffffe
mov dword [esp + 0x18], edi
jne 0x48be80
mov eax, dword [esp + 0xc8]
mov edx, eax
mov ecx, dword [esp + 0x28]
shl edx, cl
mov edi, dword [esp + 0xcc]
shld edi, eax, cl
xor eax, eax
test cl, 0x20
cmovne edi, edx
cmove eax, edx
mov ecx, dword [esp + 0x5c]
mov dword [esp + ecx*8 + 0xc8], eax
mov dword [esp + ecx*8 + 0xcc], edi
mov edx, dword [esp + 0x44]
add edx, ecx
mov eax, dword [esp + edx*8 + 0xc8]
xor ecx, ecx
or eax, dword [esp + edx*8 + 0xcc]
setne cl
add ecx, edx
mov dword [esp + 0xc0], ecx
cmp dword [esp + 0x6c], 0x40
jb 0x48c012
mov eax, dword [esp + 0x5c]
shl eax, 3
push eax
push 0
push dword [esp + 0x78]
call sym._memset
add esp, 0xc
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0xc], 0
mov eax, 0
cmp ecx, dword [esp + 0x30]
jb 0x48c076
mov al, 1
ja 0x48c076
mov edx, ecx
sub edx, 1
jb 0x48c206
mov esi, dword [esp + ecx*8 + 0xc0]
mov ebx, dword [esp + ecx*8 + 0xc4]
mov edi, dword [esp + ecx*8 + 0x2c8]
mov eax, dword [esp + ecx*8 + 0x2cc]
mov dword [esp + 0x48], ebx
mov ecx, ebx
xor ecx, eax
mov dword [esp + 0x28], esi
xor esi, edi
or esi, ecx
mov ecx, edx
je 0x48c032
cmp dword [esp + 0x28], edi
sbb dword [esp + 0x48], eax
setae al
movzx ecx, al
add ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0xc]
adc eax, dword [esp + 0x4c]
mov esi, eax
xor eax, 0x7ff00000
or eax, ecx
je 0x48cbb3
xor eax, eax
cmp byte [esp + 0x24], 0x2d
sete al
mov edx, dword [esp + 0x54]
mov dword [edx + 4], 0
mov dword [edx], 0x14
shl eax, 0x1f
or esi, eax
mov dword [edx + 8], ecx
mov dword [edx + 0xc], esi
mov ecx, dword [esp + 8]
jmp 0x48ab11
mov ebx, dword [esp + 0x30]
lea eax, [ebx*8 - 8]
lea edx, [esp + ebx*8]
add edx, 0x2c8
mov ecx, edx
sub ecx, eax
cmp ecx, edx
ja 0x48bb5d
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x5c]
lea esi, [ebx + ecx]
lea ecx, [esp + esi*8]
add ecx, 0x2d0
mov edi, ecx
sub edi, eax
cmp edi, ecx
ja 0x48bb5d
mov ebx, dword [esp + 0x30]
lea ecx, [esp + ebx*8]
add ecx, 0x2d0
mov edi, ecx
sub edi, eax
cmp edi, ecx
ja 0x48bb5d
mov ebx, dword [esp + 0x30]
lea eax, [ebx - 1]
cmp eax, 0x1fffffff
ja 0x48bb5d
lea eax, [esp + esi*8]
add eax, 0x2c8
sub edx, eax
mov ebx, dword [esp + 0x30]
cmp edx, 0x20
jb 0x48bb5d
add edx, 0xfffffff8
mov ebx, dword [esp + 0x30]
cmp edx, 0x20
jb 0x48bb5d
shl esi, 3
mov ebx, dword [esp + 0x30]
lea eax, [ebx*8]
mov edi, ebx
and edi, 0xfffffffc
and ebx, 3
movd xmm0, dword [esp + 0x48]
movd xmm1, dword [esp + 0x28]
lea ecx, [esp + 0x2c8]
add eax, ecx
add eax, 0xffffffe8
mov dword [esp + 0xc], edi
neg edi
lea ecx, [esp + esi]
add ecx, 0x2c8
xor edx, edx
movdqu xmm2, xmmword [eax + edx*8 + 0x18]
pshufd xmm2, xmm2, 0x4e
movdqu xmm3, xmmword [eax + edx*8 + 8]
pshufd xmm3, xmm3, 0x4e
psllq xmm2, xmm0
psllq xmm3, xmm0
movdqu xmm4, xmmword [eax + edx*8]
movdqu xmm5, xmmword [eax + edx*8 + 0x10]
pshufd xmm5, xmm5, 0x4e
pshufd xmm4, xmm4, 0x4e
psrlq xmm5, xmm1
psrlq xmm4, xmm1
por xmm5, xmm2
por xmm4, xmm3
pshufd xmm2, xmm5, 0x4e
movdqu xmmword [ecx + edx*8], xmm2
pshufd xmm2, xmm4, 0x4e
movdqu xmmword [ecx + edx*8 - 0x10], xmm2
add edx, 0xfffffffc
cmp edi, edx
jne 0x48c194
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x30], eax
jne 0x48bb5d
jmp 0x48bd06
mov ecx, dword [esp + 0x3c]
and ecx, 1
mov dword [esp + 0xc], 0
jmp 0x48c079
mov edi, dword [esp + 0x44]
lea esi, [edi*8 - 8]
lea edx, [esp + edi*8]
add edx, 0xc0
mov ecx, edx
sub ecx, esi
mov dword [esp + 0x48], edi
cmp ecx, edx
ja 0x48bde3
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x44]
add ecx, eax
lea edi, [esp + ecx*8]
add edi, 0xc8
mov ebx, edi
sub ebx, esi
mov dword [esp + 0x48], eax
cmp ebx, edi
ja 0x48bde3
mov eax, dword [esp + 0x44]
lea edi, [esp + eax*8]
add edi, 0xc8
mov ebx, edi
sub ebx, esi
mov dword [esp + 0x48], eax
cmp ebx, edi
ja 0x48bde3
mov edi, dword [esp + 0x44]
lea eax, [edi - 1]
mov dword [esp + 0x48], edi
cmp eax, 0x1fffffff
ja 0x48bde3
lea eax, [esp + ecx*8]
add eax, 0xc0
sub edx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x48], eax
cmp edx, 0x20
jb 0x48bde3
add edx, 0xfffffff8
mov eax, dword [esp + 0x44]
mov dword [esp + 0x48], eax
cmp edx, 0x20
jb 0x48bde3
shl ecx, 3
mov edi, dword [esp + 0x44]
lea eax, [edi*8]
mov edx, edi
and edx, 0xfffffffc
and edi, 3
mov dword [esp + 0x48], edi
movd xmm0, dword [esp + 0x28]
movd xmm1, dword [esp + 0xc]
lea edi, [esp + 0xc0]
add eax, edi
add eax, 0xffffffe8
mov edi, edx
neg edi
add ecx, esp
add ecx, 0xc0
xor ebx, ebx
movdqu xmm2, xmmword [eax + ebx*8 + 0x18]
pshufd xmm2, xmm2, 0x4e
movdqu xmm3, xmmword [eax + ebx*8 + 8]
pshufd xmm3, xmm3, 0x4e
psllq xmm2, xmm0
psllq xmm3, xmm0
movdqu xmm4, xmmword [eax + ebx*8]
movdqu xmm5, xmmword [eax + ebx*8 + 0x10]
pshufd xmm5, xmm5, 0x4e
pshufd xmm4, xmm4, 0x4e
psrlq xmm5, xmm1
psrlq xmm4, xmm1
por xmm5, xmm2
por xmm4, xmm3
pshufd xmm2, xmm5, 0x4e
movdqu xmmword [ecx + ebx*8], xmm2
pshufd xmm2, xmm4, 0x4e
movdqu xmmword [ecx + ebx*8 - 0x10], xmm2
add ebx, 0xfffffffc
cmp edi, ebx
jne 0x48c303
cmp dword [esp + 0x44], edx
jne 0x48bde3
jmp 0x48bf9d
mov eax, 5
mov ecx, edi
mov esi, dword [esp + 0x10]
jmp 0x489323
mov ecx, dword [esp + 0x10]
mov eax, ecx
shr eax, 1
add eax, ecx
cmp eax, 0xffffffe
ja 0x48c3ea
mov edi, eax
mov eax, dword [esp + 0x10]
shl eax, 4
mov esi, edi
shl esi, 4
push esi
push eax
push dword [esp + 0x10]
push dword [esp + 0x84]
call dword [esp + 0xa4]
add esp, 0x10
test eax, eax
je 0x48c3ea
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x54]
sub edx, ecx
add edx, eax
mov dword [esp + 0x54], edx
sub ebx, ecx
add ebx, eax
lea ecx, [esi + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x74], ecx
mov ecx, dword [esp]
mov esi, ecx
movzx ecx, byte [ecx]
mov dword [esp + 8], eax
jmp 0x4889cd
mov eax, dword [esp + 8]
jmp 0x48ec2a
mov edi, eax
mov eax, dword [ebp + 0x10]
test al, 0x10
je case.0x4916db.74
xor ecx, ecx
cmp byte [esp + 0x24], 0x2d
sete al
lea edx, [edi - 0x49]
cmp edx, 0x25
ja case.0x4916db.74
mov cl, al
mov eax, dword [esp + 0x10]
sub eax, ecx
jmp dword [edx*4 + 0x501a90]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 1]
or ecx, 0x20
cmp ecx, 0x6e
jne 0x48cfc0
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 2]
or ecx, 0x20
cmp ecx, 0x66
jne 0x48cfc0
mov edx, dword [esp + 0x10]
lea ecx, [edx + 3]
movzx edx, byte [edx + 3]
or edx, 0x20
cmp edx, 0x69
jne 0x48c4a7
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 4]
or edx, 0x20
cmp edx, 0x6e
jne 0x48c4a7
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 5]
or edx, 0x20
cmp edx, 0x69
jne 0x48c4a7
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 6]
or edx, 0x20
cmp edx, 0x74
jne 0x48c4a7
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 7]
or edx, 0x20
cmp edx, 0x79
jne 0x48c4a7
mov ecx, dword [esp + 0x10]
add ecx, 8
cmp byte [esp + 0x80], 0
je 0x48d077
mov edx, dword [esp + 0x20]
mov edx, dword [edx]
test edx, edx
je 0x48c4c2
mov byte [edx], 0
mov edx, dword [esp + 0x20]
mov dword [edx], ecx
mov edx, ecx
sub edx, eax
mov esi, edx
sar esi, 0x1f
shld esi, edx, 8
mov edi, dword [esp + 0x54]
mov dword [edi + 4], esi
shl edx, 8
or edx, 1
mov dword [edi], edx
mov dword [edi + 8], eax
jmp 0x48d0a4
cmp al, 0x2e
jne 0x48cf7e
mov eax, dword [esp + 0x10]
movzx ecx, byte [eax + 2]
test byte [ecx + 0x4fe4d8], 3
je 0x49127e
lea eax, [edx + esi]
inc eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
movzx ecx, byte [eax + 1]
inc eax
mov dword [esp + 0x10], eax
cmp ecx, 0x30
je 0x48c511
mov eax, ecx
movzx ecx, byte [ecx + 0x4fe4d8]
test cl, 3
je 0x48cf7a
add eax, 0xffffffd0
mov dword [esp + 0x28], eax
sar eax, 0x1f
mov dword [esp + 0x48], eax
dec dword [esp + 0x10]
jmp 0x48c582
mov ecx, dword [esp + 0x28]
sar ecx, 0x1f
mov dword [esp + 0x48], ecx
mov dword [esp + 0x18], 0
mov ecx, 0
mov edi, dword [esp + 0x38]
mov dword [esp + 0xc], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov ebx, dword [esp + 0x2c]
jne 0x489669
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 2]
mov dword [esp + 0x40], ecx
movzx ecx, byte [eax + 2]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x48cb99
mov edx, 0xa
mov eax, dword [esp + 0x28]
mul edx
mov ebx, dword [esp + 0x48]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp + 0x28], eax
adc ebx, edx
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 3]
mov dword [esp + 0x40], ecx
movzx ecx, byte [eax + 3]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x48cb99
mov edx, 0xa
mov eax, dword [esp + 0x28]
mul edx
mov ebx, dword [esp + 0x48]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp + 0x28], eax
adc ebx, edx
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 4]
mov dword [esp + 0x40], ecx
movzx ecx, byte [eax + 4]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x48cb99
mov edx, 0xa
mov eax, dword [esp + 0x28]
mul edx
mov ebx, dword [esp + 0x48]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp + 0x28], eax
adc ebx, edx
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 5]
mov dword [esp + 0x40], ecx
movzx ecx, byte [eax + 5]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x48cb99
mov edx, 0xa
mov eax, dword [esp + 0x28]
mul edx
mov ebx, dword [esp + 0x48]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp + 0x28], eax
adc ebx, edx
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 6]
mov dword [esp + 0x40], ecx
movzx ecx, byte [eax + 6]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x48cb99
mov edx, 0xa
mov eax, dword [esp + 0x28]
mul edx
mov ebx, dword [esp + 0x48]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp + 0x28], eax
adc ebx, edx
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 7]
mov dword [esp + 0x40], ecx
movzx ecx, byte [eax + 7]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x48cb99
mov edx, 0xa
mov eax, dword [esp + 0x28]
mul edx
mov ebx, dword [esp + 0x48]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp + 0x28], eax
adc ebx, edx
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 8]
mov dword [esp + 0x40], ecx
movzx ecx, byte [eax + 8]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x48cb99
mov edx, 0xa
mov eax, dword [esp + 0x28]
mul edx
mov ebx, dword [esp + 0x48]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp + 0x28], eax
adc ebx, edx
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 9]
mov dword [esp + 0x40], ecx
movzx ecx, byte [eax + 9]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x48cb99
mov edx, 0xa
mov eax, dword [esp + 0x28]
mul edx
mov ebx, dword [esp + 0x48]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp + 0x28], eax
adc ebx, edx
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0xa]
mov dword [esp + 0x40], ecx
movzx ecx, byte [eax + 0xa]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x48cb99
mov edx, 0xa
mov eax, dword [esp + 0x28]
mul edx
mov ebx, dword [esp + 0x48]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp + 0x28], eax
adc ebx, edx
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0xb]
mov dword [esp + 0x40], ecx
movzx ecx, byte [eax + 0xb]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x48cb99
mov edx, 0xa
mov eax, dword [esp + 0x28]
mul edx
mov ebx, dword [esp + 0x48]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp + 0x28], eax
adc ebx, edx
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0xc]
mov dword [esp + 0x40], ecx
movzx ecx, byte [eax + 0xc]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x48cb99
mov edx, 0xa
mov eax, dword [esp + 0x28]
mul edx
mov ebx, dword [esp + 0x48]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp + 0x28], eax
adc ebx, edx
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0xd]
mov dword [esp + 0x40], ecx
movzx ecx, byte [eax + 0xd]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x48cb99
mov edx, 0xa
mov eax, dword [esp + 0x28]
mul edx
mov ebx, dword [esp + 0x48]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp + 0x28], eax
adc ebx, edx
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0xe]
mov dword [esp + 0x40], ecx
movzx ecx, byte [eax + 0xe]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x48cb99
mov edx, 0xa
mov eax, dword [esp + 0x28]
mul edx
mov ebx, dword [esp + 0x48]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp + 0x28], eax
adc ebx, edx
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0xf]
mov dword [esp + 0x40], ecx
movzx ecx, byte [eax + 0xf]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x48cb99
mov edx, 0xa
mov eax, dword [esp + 0x28]
mul edx
mov ebx, dword [esp + 0x48]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp + 0x28], eax
adc ebx, edx
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0x10]
mov dword [esp + 0x40], ecx
movzx ecx, byte [eax + 0x10]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x48cb99
mov edx, 0xa
mov eax, dword [esp + 0x28]
mul edx
mov ebx, dword [esp + 0x48]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp + 0x28], eax
adc ebx, edx
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0x11]
mov dword [esp + 0x40], ecx
movzx ecx, byte [eax + 0x11]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x48cb99
mov edx, 0xa
mov eax, dword [esp + 0x28]
mul edx
mov ebx, dword [esp + 0x48]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp + 0x28], eax
adc ebx, edx
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0x12]
mov dword [esp + 0x40], ecx
movzx ecx, byte [eax + 0x12]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x48cb99
mov edx, 0xa
mov eax, dword [esp + 0x28]
mul edx
mov ebx, dword [esp + 0x48]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp + 0x28], eax
adc ebx, edx
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0x13]
mov dword [esp + 0x40], ecx
movzx ecx, byte [eax + 0x13]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x48cb99
mov edx, 0xa
mov eax, dword [esp + 0x28]
mul edx
mov ebx, dword [esp + 0x48]
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp + 0x28], eax
adc ebx, edx
mov dword [esp + 0x48], ebx
mov ecx, dword [esp + 0x10]
movzx eax, byte [ecx + 0x14]
add ecx, 0x14
mov dword [esp + 0x34], eax
test byte [eax + 0x4fe4d8], 3
mov dword [esp + 0x40], ecx
mov dword [esp + 0xc], edi
jne 0x489512
mov eax, dword [esp + 0xc]
inc eax
cmp eax, dword [esp + 0x40]
je 0x48cba2
mov eax, dword [esp + 0x40]
sub eax, dword [esp + 0xc]
mov ecx, eax
sar ecx, 0x1f
mov dword [esp + 0x14], 0
mov edx, 1
sub edx, eax
mov dword [esp + 0x18], edx
mov edx, 0
sbb edx, ecx
movzx ecx, byte [esp + 0x34]
test byte [ecx + 0x4fe4d8], 0x20
jne 0x48cf3a
mov dword [esp + 0x14], 0
cmp eax, 0x159
jge 0x48cf49
mov eax, dword [esp + 0x40]
mov dword [esp + 0x34], eax
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 4]
mov edi, dword [esp + 0x18]
jmp 0x489751
mov dword [esp + 0x18], 0
mov ecx, 0
mov edi, dword [esp + 0x38]
mov dword [esp + 0xc], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov ebx, dword [esp + 0x2c]
je 0x48ca39
jmp 0x489669
mov edx, dword [esp + 0x10]
jmp 0x49accd
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test eax, eax
je 0x48cb5d
mov byte [eax], 0
mov edi, dword [esp + 0x34]
jmp 0x48acc9
movapd xmm0, xmmword [0x4fdea0]
mov eax, dword [esp + 0x54]
movupd xmmword [eax], xmm0
mov ecx, dword [esp + 8]
jmp 0x49ac47
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test eax, eax
je 0x48cb8c
mov byte [eax], 0
mov edi, dword [esp + 0x34]
mov eax, edi
sub eax, esi
jmp 0x48b061
mov dword [esp + 0xc], edi
jmp 0x48caa0
mov dword [esp + 0x64], str.no_digit_after_decimal_point
mov eax, dword [esp + 0x40]
jmp 0x48eca7
mov eax, dword [ebp + 0x10]
test al, al
js 0x48cbf5
test al, 0x10
je 0x48fc2e
mov eax, 0x7ff00000
xor ecx, ecx
cmp byte [esp + 0x24], 0x2d
mov esi, dword [esp + 0x54]
mov dword [esi + 4], 0
mov dword [esi], 0x14
mov edx, 0xfff00000
cmovne edx, eax
cmove ecx, ecx
mov dword [esi + 0xc], edx
mov dword [esi + 8], ecx
jmp 0x48c0ba
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test eax, eax
je 0x48cc02
mov byte [eax], 0
mov edi, dword [esp + 0x34]
mov eax, edi
mov esi, dword [esp + 0x10]
sub eax, esi
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
mov edx, dword [esp + 0x54]
mov dword [edx + 4], ecx
shl eax, 8
or eax, 1
mov dword [edx], eax
mov dword [edx + 8], esi
mov eax, dword [esp + 0x20]
mov dword [eax], edi
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x2c]
jmp 0x48ab19
cmp dword [esp + 0x30], 0
je 0x48cea1
mov ecx, dword [esp + 0x30]
mov eax, ecx
cmp ecx, 0x20
jae 0x48cd8c
lea edx, [eax - 1]
mov edi, eax
and edi, 3
je 0x48ce4a
mov ecx, dword [esp + 0x5c]
lea ebx, [esp + ecx*8]
add ebx, 0x2c8
lea ecx, [eax - 1]
movsd xmm0, qword [esp + eax*8 + 0x2c8]
movsd qword [ebx + eax*8], xmm0
mov eax, ecx
dec edi
jne 0x48cc71
jmp 0x48ce4c
cmp dword [esp + 0x44], 0
je 0x48cf10
mov ecx, dword [esp + 0x44]
mov eax, ecx
cmp ecx, 0x20
jb 0x48cd56
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0x44]
add eax, ebx
lea ecx, [esp + eax*8]
add ecx, 0xc0
lea edi, [ebx*8 - 8]
mov edx, ecx
sub edx, edi
mov eax, ebx
cmp edx, ecx
ja 0x48cd56
mov eax, dword [esp + 0x44]
lea edx, [esp + eax*8]
add edx, 0xc0
mov ebx, edx
sub ebx, edi
cmp ebx, edx
ja 0x48cd56
mov eax, dword [esp + 0x44]
lea edi, [eax - 1]
cmp edi, 0x1fffffff
ja 0x48cd56
sub edx, ecx
mov eax, dword [esp + 0x44]
cmp edx, 0x20
jb 0x48cd56
mov eax, dword [esp + 0x44]
lea ecx, [eax*8]
mov esi, eax
and esi, 0xfffffffc
and eax, 3
lea edx, [esp + 0xc0]
lea ebx, [ecx + edx]
add edx, ecx
add edx, 0xfffffff8
mov edi, esi
neg edi
mov ecx, dword [esp + 0x5c]
lea ebx, [ebx + ecx*8]
add ebx, 0xfffffff8
xor ecx, ecx
movupd xmm0, xmmword [edx + ecx*8 - 0x10]
movupd xmm1, xmmword [edx + ecx*8]
movupd xmmword [ebx + ecx*8], xmm1
movupd xmmword [ebx + ecx*8 - 0x10], xmm0
add ecx, 0xfffffffc
cmp edi, ecx
jne 0x48cd2f
cmp dword [esp + 0x44], esi
je 0x48cf10
lea edx, [eax - 1]
mov edi, eax
and edi, 3
je 0x48ceb9
mov ecx, dword [esp + 0x5c]
lea ebx, [esp + ecx*8]
add ebx, 0xc0
lea ecx, [eax - 1]
movsd xmm0, qword [esp + eax*8 + 0xc0]
movsd qword [ebx + eax*8], xmm0
mov eax, ecx
dec edi
jne 0x48cd71
jmp 0x48cebb
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x5c]
add eax, ebx
lea ecx, [esp + eax*8]
add ecx, 0x2c8
lea edi, [ebx*8 - 8]
mov edx, ecx
sub edx, edi
mov eax, ebx
cmp edx, ecx
ja 0x48cc56
mov eax, dword [esp + 0x30]
lea edx, [esp + eax*8]
add edx, 0x2c8
mov ebx, edx
sub ebx, edi
cmp ebx, edx
ja 0x48cc56
mov eax, dword [esp + 0x30]
lea edi, [eax - 1]
cmp edi, 0x1fffffff
ja 0x48cc56
sub edx, ecx
mov eax, dword [esp + 0x30]
cmp edx, 0x20
jb 0x48cc56
mov eax, dword [esp + 0x30]
lea ecx, [eax*8]
mov esi, eax
and esi, 0xfffffffc
and eax, 3
lea edx, [esp + 0x2c8]
lea ebx, [ecx + edx]
add edx, ecx
add edx, 0xfffffff8
mov edi, esi
neg edi
mov ecx, dword [esp + 0x5c]
lea ebx, [ebx + ecx*8]
add ebx, 0xfffffff8
xor ecx, ecx
movupd xmm0, xmmword [edx + ecx*8 - 0x10]
movupd xmm1, xmmword [edx + ecx*8]
movupd xmmword [ebx + ecx*8], xmm1
movupd xmmword [ebx + ecx*8 - 0x10], xmm0
add ecx, 0xfffffffc
cmp edi, ecx
jne 0x48ce21
cmp dword [esp + 0x30], esi
jne 0x48cc56
jmp 0x48cea1
mov ecx, eax
cmp edx, 3
jb 0x48cea1
mov eax, dword [esp + 0x5c]
lea eax, [esp + eax*8]
add eax, 0x2c8
mov edx, ecx
movsd xmm0, qword [esp + ecx*8 + 0x2c8]
movsd qword [eax + ecx*8], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x2c0]
movsd qword [eax + ecx*8 - 8], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x2b8]
movsd qword [eax + ecx*8 - 0x10], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x2b0]
movsd qword [eax + ecx*8 - 0x18], xmm0
add edx, 0xfffffffc
mov ecx, edx
jne 0x48ce5f
mov eax, dword [esp + 0x5c]
add dword [esp + 0x30], eax
cmp dword [esp + 0x6c], 0x40
jae 0x48bffc
jmp 0x48c012
mov ecx, eax
cmp edx, 3
jb 0x48cf10
mov eax, dword [esp + 0x5c]
lea eax, [esp + eax*8]
add eax, 0xc0
mov edx, ecx
movsd xmm0, qword [esp + ecx*8 + 0xc0]
movsd qword [eax + ecx*8], xmm0
movsd xmm0, qword [esp + ecx*8 + 0xb8]
movsd qword [eax + ecx*8 - 8], xmm0
movsd xmm0, qword [esp + ecx*8 + 0xb0]
movsd qword [eax + ecx*8 - 0x10], xmm0
movsd xmm0, qword [esp + ecx*8 + 0xa8]
movsd qword [eax + ecx*8 - 0x18], xmm0
add edx, 0xfffffffc
mov ecx, edx
jne 0x48cece
mov eax, dword [esp + 0x44]
add eax, dword [esp + 0x5c]
mov dword [esp + 0xc0], eax
cmp dword [esp + 0x6c], 0x40
jb 0x48c012
lea eax, [esp + 0xc8]
mov dword [esp + 0x70], eax
jmp 0x48bffc
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x2c]
mov ecx, edx
jmp 0x489669
xor eax, eax
cmp byte [esp + 0x24], 0x2d
sete al
mov ecx, dword [esp + 0x54]
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 + 0x40]
jmp 0x4895e1
mov edi, dword [esp + 0x10]
test cl, 3
jne 0x48cfb2
test cl, 0x20
jne 0x48d0ac
xor eax, eax
cmp byte [esp + 0x24], 0x2d
sete al
mov ecx, dword [esp + 0x54]
mov dword [ecx + 4], 0
mov dword [ecx], 0x14
shl eax, 0x1f
mov dword [ecx + 0xc], eax
jmp 0x489ebb
mov dword [esp + 0x64], str.number_with_leading_zero_is_not_allowed
dec edi
jmp 0x48d0e9
cmp edi, 0x4e
jne case.0x4916db.74
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 1]
or ecx, 0x20
cmp ecx, 0x61
jne case.0x4916db.74
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 2]
or ecx, 0x20
cmp ecx, 0x6e
jne case.0x4916db.74
add dword [esp + 0x10], 3
cmp byte [esp + 0x80], 0
je 0x48d041
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
test ecx, ecx
je 0x48d00d
mov byte [ecx], 0
cmp byte [esp + 0x24], 0x2d
mov ecx, 0x401
mov edx, 0x301
cmove edx, ecx
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x10]
mov dword [ecx], esi
mov ecx, dword [esp + 0x54]
mov dword [ecx], edx
mov dword [ecx + 4], 0
mov dword [ecx + 8], eax
mov dword [esp], esi
jmp 0x489a0f
cmp byte [esp + 0x24], 0x2d
mov edx, dword [esp + 0x54]
mov dword [edx + 4], 0
mov eax, 0xfff80000
mov ecx, 0x7ff80000
cmove ecx, eax
mov dword [edx], 0x14
mov dword [edx + 0xc], ecx
mov dword [edx + 8], 0
mov eax, dword [esp + 0x10]
jmp 0x489a0c
cmp byte [esp + 0x24], 0x2d
mov esi, dword [esp + 0x54]
mov dword [esi + 4], 0
mov eax, 0xfff00000
mov edx, 0x7ff00000
cmove edx, eax
mov dword [esi], 0x14
mov dword [esi + 0xc], edx
mov dword [esi + 8], 0
mov dword [esp], ecx
jmp 0x489a0f
movzx eax, byte [edi + 1]
movzx eax, byte [eax + 0x4fe4d8]
and al, 0xc
cmp al, 1
sbb edi, 0
movzx eax, byte [edi + 2]
add edi, 2
test byte [eax + 0x4fe4d8], 3
je 0x48d0e1
movzx eax, byte [edi + 1]
inc edi
test byte [eax + 0x4fe4d8], 3
jne 0x48d0ce
jmp 0x48cf8c
mov dword [esp + 0x64], str.no_digit_after_exponent_sign
mov dword [esp], edi
jmp 0x48e671
mov ecx, ebx
jmp 0x48a97d
mov edi, esp
mov esi, dword [esp]
movzx eax, byte [esi]
cmp eax, 0x22
mov dword [esp + 8], ecx
je 0x48d151
cmp eax, 0x7d
je 0x48e5de
test byte [eax + 0x4fdfe6], 1
jne 0x48d13a
mov eax, dword [ebp + 0x10]
test al, 8
je 0x4969f2
mov ecx, edi
call dbg.skip_spaces_and_comments
test al, al
mov ecx, dword [esp + 8]
jne 0x48d0fa
jmp 0x491933
inc esi
mov ecx, dword [esp + 8]
mov dword [esp], esi
movzx eax, byte [esi]
inc esi
test byte [eax + 0x4fdfe6], 1
jne 0x48d13f
jmp 0x48d0fa
mov eax, dword [esp + 0x54]
add eax, 0x10
cmp eax, dword [esp + 0x74]
jae 0x48e5fa
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
inc eax
mov dword [esp + 0x1c], eax
inc esi
mov dword [esp + 0x10], esi
movzx edx, byte [esi]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d3a2
add esi, 8
mov ebx, esi
nop word cs:[eax + eax]
movzx edx, byte [ebx - 7]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d29f
movzx edx, byte [ebx - 6]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d2a4
movzx edx, byte [ebx - 5]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d2a9
movzx edx, byte [ebx - 4]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d2ae
movzx edx, byte [ebx - 3]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d2b3
movzx edx, byte [ebx - 2]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d2b8
movzx edx, byte [ebx - 1]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d2bd
movzx edx, byte [ebx]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d2e0
movzx edx, byte [ebx + 1]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d2c0
movzx edx, byte [ebx + 2]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d2c3
movzx edx, byte [ebx + 3]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d2c8
movzx edx, byte [ebx + 4]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d2cd
movzx edx, byte [ebx + 5]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d2d2
movzx edx, byte [ebx + 6]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d2d7
movzx edx, byte [ebx + 7]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d2dc
movzx edx, byte [ebx + 8]
add ebx, 0x10
test byte [edx + 0x4fdfe6], 0xc
je 0x48d1a0
add ebx, 0xfffffff8
jmp 0x48d2e0
add ebx, 0xfffffff9
jmp 0x48d2e0
add ebx, 0xfffffffa
jmp 0x48d2e0
add ebx, 0xfffffffb
jmp 0x48d2e0
add ebx, 0xfffffffc
jmp 0x48d2e0
add ebx, 0xfffffffd
jmp 0x48d2e0
add ebx, 0xfffffffe
jmp 0x48d2e0
dec ebx
jmp 0x48d2e0
inc ebx
jmp 0x48d2e0
add ebx, 2
jmp 0x48d2e0
add ebx, 3
jmp 0x48d2e0
add ebx, 4
jmp 0x48d2e0
add ebx, 5
jmp 0x48d2e0
add ebx, 6
jmp 0x48d2e0
add ebx, 7
nop
mov eax, 0xd
cmp dl, 0x22
je 0x48d3a9
test dl, dl
jns 0x48e67e
mov ecx, dword [ebx]
mov eax, ecx
and eax, 0xc0c0f0
mov esi, ebx
cmp eax, 0x8080e0
jne 0x48d330
mov edx, ecx
and edx, 0x200f
je 0x48d330
cmp edx, 0x200d
je 0x48d330
mov ecx, dword [esi + 3]
add esi, 3
mov edx, ecx
and edx, 0xc0c0f0
cmp edx, 0x8080e0
je 0x48d308
test cl, cl
jns 0x48d180
mov edx, ecx
and edx, 0xc0e0
cmp edx, 0x80c0
jne 0x48d35d
mov edx, ecx
and edx, 0x1e
je 0x48d35d
mov ecx, dword [esi + 2]
add esi, 2
jmp 0x48d338
mov ecx, dword [esi + 4]
add esi, 4
mov edx, ecx
and edx, 0xc0c0c0f8
cmp edx, 0x808080f0
jne 0x48d384
mov edx, ecx
and edx, 0x3007
je 0x48d384
test cl, 4
je 0x48d357
and ecx, 0x3003
je 0x48d357
cmp ebx, esi
jne 0x48d180
cmp byte [esp + 0x98], 0
je 0x490bcc
inc ebx
mov esi, ebx
jmp 0x48d180
mov ebx, esi
jmp 0x48d2e0
mov dword [esp + 0x54], 0
mov esi, ebx
mov edx, esi
mov ecx, dword [esp + 0x10]
sub edx, ecx
mov edi, edx
sar edi, 0x1f
shld edi, edx, 8
or edi, dword [esp + 0x54]
shl edx, 8
or edx, eax
mov eax, dword [esp + 0x28]
mov dword [eax], edx
mov edx, eax
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
mov byte [esi], 0
lea esi, [ebx + 1]
mov dword [esp], esi
movzx eax, byte [ebx + 1]
cmp al, 0x3a
jne 0x48d651
mov ebx, dword [esp + 0x2c]
mov eax, esi
inc esi
mov dword [esp], esi
movzx eax, byte [eax + 1]
cmp al, 0x22
jne 0x48d6e7
lea eax, [edx + 0x10]
mov dword [esp + 0x54], eax
add dword [esp + 0x48], 2
inc esi
mov eax, esi
movzx edx, byte [eax]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d5cd
add eax, 8
mov ebx, eax
nop word [eax + eax]
movzx edx, byte [ebx - 7]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d52f
movzx edx, byte [ebx - 6]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d534
movzx edx, byte [ebx - 5]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d539
movzx edx, byte [ebx - 4]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d53e
movzx edx, byte [ebx - 3]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d543
movzx edx, byte [ebx - 2]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d548
movzx edx, byte [ebx - 1]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d54d
movzx edx, byte [ebx]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d56f
movzx edx, byte [ebx + 1]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d550
movzx edx, byte [ebx + 2]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d553
movzx edx, byte [ebx + 3]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d558
movzx edx, byte [ebx + 4]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d55d
movzx edx, byte [ebx + 5]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d562
movzx edx, byte [ebx + 6]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d567
movzx edx, byte [ebx + 7]
test byte [edx + 0x4fdfe6], 0xc
jne 0x48d56c
movzx edx, byte [ebx + 8]
add ebx, 0x10
test byte [edx + 0x4fdfe6], 0xc
je 0x48d430
add ebx, 0xfffffff8
jmp 0x48d56f
add ebx, 0xfffffff9
jmp 0x48d56f
add ebx, 0xfffffffa
jmp 0x48d56f
add ebx, 0xfffffffb
jmp 0x48d56f
add ebx, 0xfffffffc
jmp 0x48d56f
add ebx, 0xfffffffd
jmp 0x48d56f
add ebx, 0xfffffffe
jmp 0x48d56f
dec ebx
jmp 0x48d56f
inc ebx
jmp 0x48d56f
add ebx, 2
jmp 0x48d56f
add ebx, 3
jmp 0x48d56f
add ebx, 4
jmp 0x48d56f
add ebx, 5
jmp 0x48d56f
add ebx, 6
jmp 0x48d56f
add ebx, 7
mov dword [esp + 0x1c], 0
mov eax, 0xd
cmp dl, 0x22
je 0x48d6aa
mov dword [esp + 0x10], esi
test dl, dl
jns 0x48f398
mov ecx, dword [ebx]
mov eax, ecx
and eax, 0xc0c0f0
cmp eax, 0x8080e0
jne 0x48d5d1
mov eax, ebx
mov edx, ecx
and edx, 0x200f
je 0x48d5d3
cmp edx, 0x200d
je 0x48d5d3
mov ecx, dword [eax + 3]
add eax, 3
mov edx, ecx
and edx, 0xc0c0f0
cmp edx, 0x8080e0
je 0x48d5a3
jmp 0x48d5d3
mov ebx, eax
jmp 0x48d56f
mov eax, ebx
test cl, cl
mov esi, dword [esp + 0x10]
jns 0x48d415
mov edx, ecx
and edx, 0xc0e0
cmp edx, 0x80c0
jne 0x48d604
mov edx, ecx
and edx, 0x1e
je 0x48d604
mov ecx, dword [eax + 2]
add eax, 2
jmp 0x48d5df
mov ecx, dword [eax + 4]
add eax, 4
mov edx, ecx
and edx, 0xc0c0c0f8
cmp edx, 0x808080f0
jne 0x48d62b
mov edx, ecx
and edx, 0x3007
je 0x48d62b
test cl, 4
je 0x48d5fe
and ecx, 0x3003
je 0x48d5fe
cmp ebx, eax
mov esi, dword [esp + 0x10]
jne 0x48d415
cmp byte [esp + 0x98], 0
je 0x490bcc
inc ebx
mov eax, ebx
mov esi, dword [esp + 0x10]
jmp 0x48d415
mov edi, esp
mov ebx, dword [esp + 0x2c]
movzx eax, al
test byte [eax + 0x4fdfe6], 1
jne 0x48d689
mov eax, dword [ebp + 0x10]
test al, 8
je 0x4969f2
mov ecx, edi
call dbg.skip_spaces_and_comments
mov esi, dword [esp]
test al, al
je 0x491936
movzx eax, byte [esi]
mov edx, dword [esp + 0x28]
jmp 0x48d6a1
inc esi
nop word [eax + eax]
mov dword [esp], esi
movzx eax, byte [esi]
inc esi
test byte [eax + 0x4fdfe6], 1
jne 0x48d690
dec esi
cmp al, 0x3a
jne 0x48d657
jmp 0x48d3f4
mov ecx, ebx
mov edx, ecx
sub edx, esi
mov edi, edx
sar edi, 0x1f
shld edi, edx, 8
or edi, dword [esp + 0x1c]
shl edx, 8
or edx, eax
mov eax, dword [esp + 0x28]
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], edi
mov dword [eax + 0x18], esi
mov byte [ecx], 0
inc ebx
mov dword [esp], ebx
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 4]
jmp 0x49ad14
mov edi, esp
mov dword [esp + 0x24], eax
movzx eax, al
movzx ecx, byte [eax + 0x4fdfe6]
test cl, 2
jne 0x48d7b5
lea edx, [eax - 0x5b]
cmp edx, 0x20
ja case.0x48d708.92
jmp dword [edx*4 + 0x5018bc]
test cl, 1
jne 0x48d740
mov ecx, dword [ebp + 0x10]
test cl, 0x10
jne 0x48d76e
test cl, 8
je 0x4969f0
mov ecx, edi
call dbg.skip_spaces_and_comments
mov esi, dword [esp]
test al, al
je 0x491936
movzx eax, byte [esi]
mov ebx, dword [esp + 0x2c]
jmp 0x48d761
inc esi
nop word cs:[eax + eax]
mov dword [esp], esi
movzx eax, byte [esi]
inc esi
test byte [eax + 0x4fdfe6], 1
jne 0x48d750
dec esi
mov edx, dword [esp + 0x28]
cmp al, 0x22
jne 0x48d6e9
jmp 0x48d406
cmp byte [esp + 0x24], 0x49
je 0x48d77f
cmp eax, 0x69
je 0x48d77f
cmp eax, 0x4e
jne 0x48d71c
mov ecx, dword [esp + 0x28]
add ecx, 0x10
mov dword [esp + 0x54], ecx
add dword [esp + 0x48], 2
cmp byte [esp + 0x24], 0x49
je 0x48f2ee
cmp eax, 0x69
je 0x48f2ee
cmp eax, 0x4e
jne case.0x4889e0.74
movzx eax, byte [esi + 1]
jmp 0x48fa11
add dword [esp + 0x48], 2
mov eax, dword [ebp + 0x10]
test al, al
sets al
mov ecx, dword [esp + 0x80]
xor cl, 1
or cl, al
lea edi, [edx + 0x10]
mov dword [esp + 0x9c], 0
mov dword [esp + 0x54], edi
je 0x48f9da
xor edx, edx
cmp byte [esp + 0x24], 0x2d
sete dl
lea ecx, [esi + edx]
movzx eax, byte [esi + edx]
test byte [eax + 0x4fe4d8], 2
mov dword [esp + 0x10], ecx
je 0x48ecaf
add eax, 0xffffffd0
movzx ecx, byte [ecx + 1]
lea edi, [ecx - 0x30]
cmp edi, 9
ja 0x48ed05
mov ecx, 0xa
imul ecx
mov ecx, edx
add eax, edi
adc ecx, 0
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 2]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48ed60
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 3]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48edaf
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 4]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48edfe
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 5]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48ee4d
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 6]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48ee9c
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 7]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48eeeb
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 8]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48ef3a
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 9]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48ef89
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 0xa]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48efd8
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 0xb]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48f027
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 0xc]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48f076
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 0xd]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48f0c5
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 0xe]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48f114
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 0xf]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48f163
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 0x10]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48f1b2
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 0x11]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48f201
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 0x12]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x48f24c
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
mov dword [esp + 0xc], eax
adc ecx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
lea eax, [ecx + 0x13]
mov dword [esp + 0x18], eax
movzx eax, byte [ecx + 0x13]
movzx edi, al
movzx edx, byte [edi + 0x4fe4d8]
test dl, 0x33
je 0x48dbc3
mov dword [esp + 0x34], eax
test dl, 3
je 0x48dad5
mov eax, ecx
movzx ecx, byte [ecx + 0x14]
test byte [ecx + 0x4fe4d8], 0x33
mov ecx, eax
je 0x48dcb2
xor edi, edi
test dl, 0x20
jne 0x48dc4f
xor edi, edi
cmp byte [esp + 0x34], 0x2e
mov dword [esp + 0x2c], ebx
jne 0x48dd84
movzx eax, byte [ecx + 0x14]
add ecx, 0x14
test byte [eax + 0x4fe4d8], 3
je 0x48e666
mov dword [esp + 0x34], eax
mov edi, dword [esp + 0x18]
jmp 0x48dd88
mov eax, dword [esp + 0x28]
lea ecx, [eax + 0x10]
add dword [esp + 0x48], 2
mov eax, dword [esi]
cmp eax, 0x6c6c756e
mov dword [esp + 0x54], ecx
jne 0x48f2ad
mov dword [ecx + 4], 0
mov dword [ecx], 2
jmp 0x48db68
cmp dword [esi], 0x65757274
jne 0x4919fd
add dword [esp + 0x48], 2
mov ecx, dword [esp + 0x28]
lea eax, [ecx + 0x10]
mov dword [esp + 0x54], eax
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0xb
add esi, 4
mov dword [esp], esi
jmp 0x48e25c
mov edx, dword [esp + 4]
mov edi, dword [esp + 0x28]
jmp 0x488c05
mov edx, dword [esp + 4]
mov edi, dword [esp + 0x28]
jmp 0x488ba6
cmp dword [esi + 1], 0x65736c61
jne 0x4919fd
add dword [esp + 0x48], 2
mov ecx, dword [esp + 0x28]
lea eax, [ecx + 0x10]
mov dword [esp + 0x54], eax
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 3
add esi, 5
mov dword [esp], esi
jmp 0x48e25c
cmp byte [esp + 0x24], 0x2d
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
jne 0x48dc74
mov eax, 0x80000000
mov ecx, edx
neg ecx
sbb eax, edi
jae 0x48dc74
mov eax, dword [ebp + 0x10]
test al, al
mov edx, dword [esp + 4]
js 0x48fb62
mov eax, dword [esp + 0x28]
mov dword [eax + 0x14], 0
movd xmm0, dword [esp + 0xc]
movd xmm1, edi
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x4fde70]
subpd xmm0, xmmword [0x4fde80]
mov dword [eax + 0x10], 0x14
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
xorpd xmm1, xmmword [0x4fde90]
movlpd qword [eax + 0x18], xmm1
mov eax, dword [esp + 0x18]
mov dword [esp], eax
mov ecx, dword [esp + 8]
jmp 0x49ad14
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x4c], 0
mov ecx, dword [esp + 0x1c]
jmp 0x48deb4
xor eax, eax
mov ecx, edx
neg ecx
sbb eax, edi
xor edx, edx
cmp byte [esp + 0x24], 0x2d
sete dl
lea edx, [edx*8 + 4]
mov esi, dword [esp + 0x28]
mov dword [esi + 0x10], edx
cmovne eax, edi
cmovne ecx, dword [esp + 0xc]
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x18]
jmp 0x48e259
add edi, 0xffffffd0
cmp dword [esp + 0xc], 0x99999999
mov ecx, dword [esp + 0x1c]
sbb ecx, 0x19999999
mov ecx, eax
lea ecx, [eax + 0x14]
mov dword [esp + 0x38], ecx
jb 0x48dd04
mov dword [esp + 0x14], 0x99999999
mov ecx, dword [esp + 0x14]
xor ecx, dword [esp + 0xc]
mov dword [esp + 0x14], ecx
mov ecx, 0x19999999
xor ecx, dword [esp + 0x1c]
or ecx, dword [esp + 0x14]
mov ecx, eax
jne 0x48dad5
cmp edi, 5
ja 0x48dad5
mov ecx, 0xa
mov eax, dword [esp + 0xc]
mul ecx
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx + ecx*4]
lea edx, [edx + ecx*2]
mov ecx, edi
sar ecx, 0x1f
add eax, edi
adc edx, ecx
cmp byte [esp + 0x24], 0x2d
jne 0x48de18
mov ecx, dword [ebp + 0x10]
test cl, cl
js 0x48fe92
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x14], 0
movd xmm0, eax
movd xmm1, edx
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x4fde70]
subpd xmm0, xmmword [0x4fde80]
mov dword [ecx + 0x10], 0x14
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
xorpd xmm1, xmmword [0x4fde90]
movlpd qword [ecx + 0x18], xmm1
jmp 0x48e255
mov ecx, dword [esp + 0x18]
mov eax, ecx
inc ecx
mov dword [esp + 0x10], eax
sub eax, esi
movzx edx, byte [ecx]
movzx ebx, byte [edx + 0x4fe4d8]
inc ecx
inc eax
test bl, 3
jne 0x48dd91
mov byte [esp + 0x3c], bl
xor ebx, ebx
cmp byte [esp + 0x34], 0x35
setae bl
add dword [esp + 0xc], ebx
adc dword [esp + 0x1c], 0
lea ebx, [ecx - 1]
test edi, edi
je 0x48ddcc
mov ecx, ebx
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0x2c]
jmp 0x48de3f
mov edi, ebx
mov ebx, dword [ebp + 0x10]
test bl, bl
jns 0x48dde3
movzx ebx, byte [esp + 0x3c]
and bl, 0x30
je 0x48fed1
cmp dl, 0x2e
jne 0x48de35
movzx eax, byte [ecx]
test byte [eax + 0x4fe4d8], 3
je 0x48e666
mov ecx, edi
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 4]
movzx eax, byte [ecx + 1]
inc ecx
movzx eax, byte [eax + 0x4fe4d8]
test al, 3
jne 0x48de02
mov byte [esp + 0x3c], al
jmp 0x48de3f
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 4
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], edx
jmp 0x48e255
mov ecx, edi
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 4]
mov dword [esp + 0x38], ecx
lea eax, [ecx - 1]
jmp 0x48de49
dec eax
movzx ecx, byte [eax]
cmp ecx, 0x30
je 0x48de48
cmp ecx, 0x2e
je 0x48de48
mov ecx, edi
mov dword [esp + 0x18], edi
sub ecx, dword [esp + 0x10]
sar ecx, 0x1f
mov edi, dword [esp + 0x18]
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x10]
sub dword [esp + 0x34], edi
adc dword [esp + 0x34], 0
adc ecx, 0
mov dword [esp + 0x14], ecx
cmp eax, edi
mov ecx, dword [esp + 0x38]
mov eax, 0
cmovb ecx, eax
mov dword [esp + 0x30], ecx
mov ecx, 0
cmovb edi, ecx
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
test byte [esp + 0x3c], 0x20
mov ecx, dword [esp + 0x1c]
je 0x48df72
mov ebx, ecx
mov dword [esp + 0x34], edi
movzx ecx, byte [eax + 1]
mov edi, eax
xor eax, eax
mov dword [esp + 0x10], ecx
test byte [ecx + 0x4fe4d8], 0xc
setne al
movzx ecx, byte [edi + eax + 1]
test byte [ecx + 0x4fe4d8], 3
je 0x48ec9c
add edi, eax
mov ecx, edi
movzx edx, byte [ecx + 1]
inc ecx
inc edi
cmp edx, 0x30
je 0x48dee6
mov dword [esp + 0x3c], edi
mov dword [esp + 0x1c], ebx
xor eax, eax
test byte [edx + 0x4fe4d8], 3
je 0x48df32
xor eax, eax
xor edi, edi
add dl, 0xd0
movzx ebx, dl
mov edx, 0xa
mul edx
add edi, edi
add eax, ebx
lea ebx, [ecx + 1]
lea edi, [edi + edi*4]
adc edi, edx
movzx edx, byte [ecx + 1]
test byte [edx + 0x4fe4d8], 3
mov ecx, ebx
jne 0x48df08
jmp 0x48df36
mov ebx, ecx
xor edi, edi
mov dword [esp + 0x38], ebx
mov ecx, ebx
sub ecx, dword [esp + 0x3c]
cmp ecx, 0x13
jge 0x48fa6e
xor ecx, ecx
mov edx, eax
neg edx
sbb ecx, edi
cmp byte [esp + 0x10], 0x2d
cmovne ecx, edi
cmovne edx, eax
mov edi, dword [esp + 0x34]
add edi, edx
adc dword [esp + 0x14], ecx
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
mov eax, 0xfffffea8
cmp eax, edi
mov eax, 0xffffffff
sbb eax, dword [esp + 0x14]
jge 0x48f9a1
cmp edi, 0x135
sbb dword [esp + 0x14], 0
jge 0x48faaa
mov dword [esp + 0x9c], edi
test ecx, 0xffe00000
jne 0x48dff6
cmp edi, 0xffffffea
jl 0x48dff6
cmp edi, 0x16
jg 0x48dff6
movd xmm1, dword [esp + 0xc]
movd xmm0, ecx
punpckldq xmm1, xmm0
punpckldq xmm1, xmmword [0x4fde70]
subpd xmm1, xmmword [0x4fde80]
movapd xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm0, xmm1
test edi, edi
mov ecx, dword [esp + 8]
js 0x48e265
mulsd xmm0, qword [edi*8 + 0x4fe420]
jmp 0x48e273
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x4c], 0
sete cl
cmp edi, 0xfffffece
setge dl
cmp edi, 0x120
setl al
test cl, dl
je 0x48f9d3
test al, al
mov ecx, dword [esp + 0xc]
je 0x48fae1
mov eax, edi
shl eax, 4
mov dword [esp + 0x40], eax
mov dword [esp + 0x34], edi
imul eax, edi, 0x3526a
add eax, 0xffc10000
sar eax, 0x10
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x1c]
bsr eax, edx
xor eax, 0x1f
mov edi, ecx
bsr ecx, ecx
xor ecx, 0x1f
add ecx, 0x20
test edx, edx
cmovne ecx, eax
shld edx, edi, cl
shl edi, cl
xor eax, eax
mov dword [esp + 0x3c], ecx
test cl, 0x20
cmovne edx, edi
mov dword [esp + 0x58], edx
mov dword [esp + 0x14], 0
cmovne edi, eax
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + 0x4ffb48]
mov dword [esp + 0x60], eax
mul edi
mov dword [esp + 0x7c], eax
mov dword [esp + 0x50], edx
mov eax, dword [ecx + 0x4ffb4c]
mov dword [esp + 0x40], eax
mov dword [esp + 0x5c], edi
mul edi
mov edi, dword [esp + 0x58]
mov dword [esp + 0x6c], edx
mov ecx, eax
mov eax, dword [esp + 0x60]
mul edi
mov dword [esp + 0x44], edx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x40]
mul edi
add ecx, dword [esp + 0x50]
adc eax, dword [esp + 0x6c]
adc edx, 0
add ecx, dword [esp + 0x70]
mov dword [esp + 0x50], ecx
adc eax, dword [esp + 0x44]
adc edx, 0
mov dword [esp + 0x44], eax
and eax, 0x1ff
add eax, 0xffffffff
mov ecx, 0
adc ecx, 0xffffffff
cmp eax, 0x1fe
sbb ecx, 0
jae 0x48e108
mov esi, dword [esp + 0x44]
jmp 0x48e1d6
mov dword [esp + 0xb8], edx
mov eax, dword [esp + 0x34]
add eax, eax
mov ebx, dword [eax*8 + 0x4ffb54]
mov dword [esp + 0x6c], ebx
mov eax, dword [eax*8 + 0x4ffb50]
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x5c]
mul ecx
mov dword [esp + 0x34], edx
mov eax, ebx
mul ecx
mov ebx, edx
mov ecx, eax
mov eax, dword [esp + 0x70]
mul edi
mov dword [esp + 0x70], edx
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x6c]
mul edi
add ecx, dword [esp + 0x34]
adc ebx, 0
add ecx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x70]
adc ecx, 0
add ebx, eax
adc edx, 0
add ebx, ecx
adc edx, 0
mov dword [esp + 0x34], ebx
add ebx, dword [esp + 0x7c]
mov dword [esp + 0x70], edx
mov eax, edx
mov edx, ebx
adc eax, dword [esp + 0x50]
mov edi, ebx
add edi, 0xffffffff
mov ebx, eax
adc ebx, 0xffffffff
mov ecx, 0xfffffffd
cmp ecx, edi
mov ecx, 0xffffffff
sbb ecx, ebx
jb 0x48e2aa
cmp edx, dword [esp + 0x7c]
mov ecx, eax
sbb ecx, dword [esp + 0x50]
setb cl
cmp edx, dword [esp + 0x34]
sbb eax, dword [esp + 0x70]
setb al
or al, cl
movzx eax, al
mov esi, dword [esp + 0x44]
add esi, eax
mov edx, dword [esp + 0xb8]
adc edx, 0
mov ebx, dword [esp + 0x2c]
xor eax, eax
cmp byte [esp + 0x24], 0x2d
sete al
mov dword [esp + 0x1c], eax
xor eax, eax
test edx, edx
setns al
mov ecx, eax
shld edx, esi, cl
shl esi, cl
mov ecx, edx
mov edx, esi
and edx, 0x400
add edx, esi
adc ecx, 0
mov edi, dword [esp + 0x10]
sub edi, dword [esp + 0x3c]
sub edi, eax
mov eax, ecx
shld eax, edx, 0x15
mov esi, ecx
shr esi, 0xb
cmp edx, 0x400
sbb ecx, 0
adc edi, 0
shl edi, 0x14
and esi, 0xfffff
lea edx, [edi + esi]
add edx, 0x47e00000
mov ecx, dword [esp + 0x1c]
shl ecx, 0x1f
or ecx, edx
mov edx, dword [esp + 0x28]
mov dword [edx + 0x14], 0
mov dword [edx + 0x10], 0x14
mov dword [edx + 0x1c], ecx
mov dword [edx + 0x18], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
mov ecx, dword [esp + 8]
jmp 0x48d6de
shl edi, 3
mov eax, 0x4fe420
sub eax, edi
divsd xmm0, qword [eax]
mov eax, dword [esp + 0x28]
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0x14
movapd xmm1, xmmword [0x4fde90]
xorpd xmm1, xmm0
cmp byte [esp + 0x24], 0x2d
je 0x48e29c
movapd xmm1, xmm0
mov eax, dword [esp + 0x28]
movsd qword [eax + 0x18], xmm1
jmp 0x48e5d2
mov ebx, dword [esp + 0x2c]
xor edx, edx
cmp dword [esp + 0x4c], 0
setne dl
shl edx, 2
xor eax, eax
mov ecx, dword [esp + 0x3c]
shld eax, edx, cl
shl edx, cl
mov edi, edx
xor edx, edx
test cl, 0x20
cmovne eax, edi
mov dword [esp + 0x34], eax
cmovne edi, edx
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x6c]
shr edi, 0x1f
add edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x40]
adc ecx, 0
mov eax, edi
mul dword [esp + 0x5c]
mov dword [esp + 0x60], edx
mov eax, edi
imul eax, dword [esp + 0x14]
add dword [esp + 0x60], eax
mov eax, ecx
mul dword [esp + 0x5c]
mov dword [esp + 0x40], eax
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x14]
imul eax, ecx
mov dword [esp + 0x6c], eax
mov eax, edi
mul dword [esp + 0x58]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x5c], edx
imul edi, dword [esp + 0x14]
mov dword [esp + 0x70], edi
mov eax, ecx
mul dword [esp + 0x58]
mov dword [esp + 0x58], eax
mov edi, edx
mov eax, dword [esp + 0x14]
imul eax, ecx
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x40]
add ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x50]
adc edx, dword [esp + 0x6c]
add ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x70]
adc dword [esp + 0x5c], eax
add edx, dword [esp + 0x58]
adc edi, dword [esp + 0x14]
add edx, dword [esp + 0x5c]
adc edi, 0
shr ecx, 0x1f
add ecx, edx
mov dword [esp + 0x40], ecx
adc edi, 0
xor edx, edx
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x34]
or eax, ecx
sete dl
xor edx, 9
add edx, dword [esp + 0x44]
adc ecx, 0
mov dword [esp + 0x34], ecx
bsr eax, edi
xor eax, 0x1f
bsr ecx, dword [esp + 0x40]
xor ecx, 0x1f
add ecx, 0x20
test edi, edi
cmovne ecx, eax
mov eax, dword [esp + 0x40]
shld edi, eax, cl
mov eax, ecx
add eax, dword [esp + 0x3c]
sub dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
shl eax, cl
shld dword [esp + 0x34], edx, cl
shl edx, cl
add dword [esp + 0x10], 0x40
test cl, 0x20
cmovne edi, eax
mov dword [esp + 0x14], edi
mov edi, 0
cmovne eax, edi
mov ecx, dword [esp + 0x34]
cmovne ecx, edx
mov dword [esp + 0x34], ecx
mov ecx, 0
cmovne edx, edi
mov dword [esp + 0x3c], edx
mov edi, dword [esp + 0x10]
cmp edi, 0xfffffbc2
jle 0x48fb9c
mov edi, 0xb
mov edx, dword [esp + 0x14]
mov ecx, edi
shr edx, cl
mov dword [esp + 0x58], edx
test cl, 0x20
mov edi, edx
mov edx, 0
cmovne edi, edx
mov dword [esp + 0x60], edi
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0x14]
shrd eax, edx, cl
test cl, 0x20
cmovne eax, dword [esp + 0x58]
mov dword [esp + 0x5c], eax
mov edx, 0xffffffff
shl edx, cl
test cl, 0x20
mov eax, 0xffffffff
mov edi, edx
cmove edx, eax
mov eax, 0
cmovne edi, eax
not edi
and edi, dword [esp + 0x40]
not edx
and edx, dword [esp + 0x14]
shld edx, edi, 3
mov dword [esp + 0x70], ecx
dec cl
mov eax, 8
mov dword [esp + 0x14], 0
shld dword [esp + 0x14], eax, cl
shl eax, cl
shl edi, 3
test cl, 0x20
mov ecx, dword [esp + 0x14]
cmovne ecx, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x58], 0
mov ecx, 0
cmovne eax, ecx
mov dword [esp + 0x6c], eax
add eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
adc ecx, dword [esp + 0x34]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x50], edi
mov dword [esp + 0x7c], eax
cmp edi, eax
mov edi, dword [esp + 0x60]
mov dword [esp + 0x44], edx
mov ecx, edx
sbb ecx, dword [esp + 0x40]
setae cl
movzx edx, cl
add edx, dword [esp + 0x5c]
adc edi, 0
mov ecx, edx
or ecx, edi
mov ecx, 0
mov eax, dword [esp + 0x10]
je 0x48e56b
add eax, dword [esp + 0x70]
mov dword [esp + 0x10], eax
bsr eax, edi
xor eax, 0x1f
bsr ecx, edx
xor ecx, 0x1f
add ecx, 0x20
test edi, edi
cmovne ecx, eax
shld edi, edx, cl
shl edx, cl
xor eax, eax
test cl, 0x20
cmovne edi, edx
cmove eax, edx
mov edx, eax
mov eax, dword [esp + 0x10]
sub eax, ecx
cmp eax, 0x3c0
jg 0x48fc17
shrd edx, edi, 0xb
shr edi, 0xb
cmp eax, 0xfffffbc2
jle 0x48fe5c
shl eax, 0x14
and edi, 0xfffff
add eax, edi
add eax, 0x43e00000
mov dword [esp + 0x58], eax
xor eax, 0x7ff00000
or eax, edx
mov ecx, edx
je 0x48fc17
mov dword [esp + 0x60], ecx
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
sbb ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x50]
cmp eax, edx
mov eax, dword [esp + 0x44]
sbb ecx, eax
mov ecx, dword [esp + 8]
jae 0x48e59f
cmp edx, dword [esp + 0x7c]
sbb eax, dword [esp + 0x40]
jb 0x48fc3f
xor eax, eax
cmp byte [esp + 0x24], 0x2d
sete al
mov edx, dword [esp + 0x28]
mov dword [edx + 0x14], 0
mov dword [edx + 0x10], 0x14
shl eax, 0x1f
mov esi, dword [esp + 0x58]
or esi, eax
mov eax, dword [esp + 0x60]
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], esi
mov edx, dword [esp + 4]
mov eax, dword [esp + 0x38]
mov dword [esp], eax
jmp 0x49ad14
lea edi, [esi + 1]
mov dword [esp], edi
cmp dword [esp + 0x48], 0
jne 0x48fef5
xor esi, esi
mov edx, dword [esp + 0x10]
jmp 0x49ae05
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x10]
mov esi, eax
shr esi, 1
add esi, eax
cmp esi, 0xffffffe
ja 0x48ec24
shl eax, 4
mov dword [esp + 4], esi
shl esi, 4
push esi
push eax
push ecx
push dword [esp + 0x84]
mov edi, ecx
call dword [esp + 0xa4]
add esp, 0x10
test eax, eax
je 0x48ec28
mov edx, dword [esp + 0x54]
sub edx, edi
add edx, eax
sub ebx, edi
add ebx, eax
mov dword [esp + 0x2c], ebx
lea ecx, [esi + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x74], ecx
mov esi, dword [esp]
mov dword [esp + 0x28], edx
mov dword [esp + 8], eax
jmp 0x48d172
mov dword [esp + 0x64], str.no_digit_after_decimal_point
mov dword [esp], ecx
mov ecx, dword [esp + 8]
mov dword [esp + 8], ecx
jmp 0x495e4c
mov dword [esp + 0x54], 0
mov esi, ebx
cmp dl, 0x5c
jne 0x48eaf9
movzx eax, byte [ebx + 1]
add eax, 0xffffffde
cmp eax, 0x53
ja case.0x48f3b3.35
jmp dword [eax*4 + 0x5016d4]
mov byte [esi], 0x22
jmp 0x48e766
mov byte [esi], 0xa
jmp 0x48e766
mov byte [esi], 0x2f
jmp 0x48e766
mov byte [esi], 8
jmp 0x48e766
movzx eax, byte [ebx + 2]
movzx edx, byte [eax + 0x4fe25d]
movzx eax, byte [ebx + 3]
movzx ecx, byte [eax + 0x4fe25d]
movzx eax, byte [ebx + 4]
movzx edi, byte [eax + 0x4fe25d]
movzx eax, byte [ebx + 5]
movzx eax, byte [eax + 0x4fe25d]
shl edx, 8
or edx, edi
shl ecx, 8
or ecx, eax
mov eax, ecx
or eax, edx
test eax, 0xf0f0
jne 0x48fee0
shl edx, 4
or ecx, edx
lea edx, [ebx + 6]
mov eax, ecx
and eax, 0xf800
cmp eax, 0xd800
je 0x48eb29
movzx ebx, cx
cmp ebx, 0x800
jb 0x48e76e
shr ebx, 0xc
or bl, 0xe0
mov byte [esi], bl
mov eax, ecx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [esi + 1], al
and cl, 0x3f
or cl, 0x80
mov byte [esi + 2], cl
add esi, 3
jmp 0x48e7a0
mov byte [esi], 0x5c
jmp 0x48e766
mov byte [esi], 0xd
jmp 0x48e766
mov byte [esi], 0xc
jmp 0x48e766
mov byte [esi], 9
inc esi
add ebx, 2
mov edx, ebx
jmp 0x48e7a0
cmp ebx, 0x80
jb 0x48e78d
mov eax, ecx
shr eax, 6
or al, 0xc0
mov byte [esi], al
and cl, 0x3f
or cl, 0x80
mov byte [esi + 1], cl
add esi, 2
jmp 0x48e7a0
mov byte [esi], cl
inc esi
jmp 0x48e7a0
cmp ebx, edx
je 0x48eadc
nop word [eax + eax]
movzx eax, byte [edx]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48e9e6
movzx eax, byte [edx + 1]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48eaec
movzx eax, byte [edx + 2]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48e8c2
movzx eax, byte [edx + 3]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48e8d3
movzx eax, byte [edx + 4]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48e8e2
movzx eax, byte [edx + 5]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48e8f1
movzx eax, byte [edx + 6]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48e908
movzx eax, byte [edx + 7]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48e91f
movzx eax, byte [edx + 8]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48e932
movzx eax, byte [edx + 9]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48e945
movzx eax, byte [edx + 0xa]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48e960
movzx eax, byte [edx + 0xb]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48e978
movzx eax, byte [edx + 0xc]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48e98e
movzx eax, byte [edx + 0xd]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48e9a4
movzx eax, byte [edx + 0xe]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48e9c2
movzx eax, byte [edx + 0xf]
test byte [eax + 0x4fdfe6], 0xc
movupd xmm0, xmmword [edx]
movupd xmmword [esi], xmm0
jne 0x48e9e0
add edx, 0x10
add esi, 0x10
jmp 0x48e7a0
movzx eax, word [edx]
add edx, 2
mov word [esi], ax
add esi, 2
jmp 0x48e9e6
mov eax, dword [edx]
add edx, 3
mov dword [esi], eax
add esi, 3
jmp 0x48e9e6
mov eax, dword [edx]
add edx, 4
mov dword [esi], eax
add esi, 4
jmp 0x48e9e6
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 0x48e9e8
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 0x48e9e8
movsd xmm0, qword [edx]
add edx, 7
movsd qword [esi], xmm0
add esi, 7
jmp 0x48e9e6
movsd xmm0, qword [edx]
add edx, 8
movsd qword [esi], xmm0
add esi, 8
jmp 0x48e9e6
lea ebx, [edx + 9]
movsd xmm0, qword [edx]
movsd qword [esi], xmm0
movzx eax, word [edx + 8]
mov word [esi + 8], ax
add esi, 9
jmp 0x48e9e8
lea ebx, [edx + 0xa]
movsd xmm0, qword [edx]
movsd qword [esi], xmm0
movzx eax, word [edx + 8]
mov word [esi + 8], ax
add esi, 0xa
jmp 0x48e9e8
lea ebx, [edx + 0xb]
movsd xmm0, qword [edx]
movsd qword [esi], xmm0
mov eax, dword [edx + 8]
mov dword [esi + 8], eax
add esi, 0xb
jmp 0x48e9e8
lea ebx, [edx + 0xc]
movsd xmm0, qword [edx]
movsd qword [esi], xmm0
mov eax, dword [edx + 8]
mov dword [esi + 8], eax
add esi, 0xc
jmp 0x48e9e8
lea ebx, [edx + 0xd]
movsd xmm0, qword [edx]
movsd qword [esi], xmm0
mov eax, dword [edx + 8]
mov dword [esi + 8], eax
movzx eax, word [edx + 0xc]
mov word [esi + 0xc], ax
add esi, 0xd
jmp 0x48e9e8
lea ebx, [edx + 0xe]
movsd xmm0, qword [edx]
movsd qword [esi], xmm0
mov eax, dword [edx + 8]
mov dword [esi + 8], eax
movzx eax, word [edx + 0xc]
mov word [esi + 0xc], ax
add esi, 0xe
jmp 0x48e9e8
add edx, 0xf
add esi, 0xf
mov ebx, edx
movzx edx, byte [ebx]
test dl, dl
jns 0x48e688
mov eax, dword [ebx]
mov ecx, eax
and eax, 0xc0c0f0
mov edx, ebx
cmp eax, 0x8080e0
jne 0x48ea3f
nop word cs:[eax + eax]
mov edi, ecx
and ecx, 0x200f
je 0x48ea3d
cmp ecx, 0x200d
je 0x48ea3d
mov dword [esi], edi
add esi, 3
mov ecx, dword [edx + 3]
add edx, 3
mov eax, ecx
and eax, 0xc0c0f0
cmp eax, 0x8080e0
je 0x48ea10
jmp 0x48ea3f
mov ecx, edi
test cl, cl
jns 0x48e7a0
mov eax, ecx
and eax, 0xc0e0
cmp eax, 0x80c0
jne 0x48ea83
mov eax, ecx
and eax, 0x1e
mov edi, ecx
je 0x48ea85
nop
mov word [esi], di
add esi, 2
mov edi, dword [edx + 2]
add edx, 2
mov eax, edi
and eax, 0xc0e0
cmp eax, 0x80c0
jne 0x48ea85
mov eax, edi
and eax, 0x1e
jne 0x48ea60
jmp 0x48ea85
mov edi, ecx
mov eax, edi
and eax, 0xc0c0c0f8
cmp eax, 0x808080f0
jne 0x48e792
mov ecx, edi
jmp 0x48eab8
mov dword [esi], eax
add esi, 4
mov ecx, dword [edx + 4]
add edx, 4
mov eax, ecx
and eax, 0xc0c0c0f8
cmp eax, 0x808080f0
jne 0x48e792
mov eax, ecx
and eax, 0x3007
je 0x48e792
test cl, 4
mov eax, ecx
je 0x48ea9b
mov ecx, eax
and eax, 0x3003
mov eax, ecx
je 0x48ea9b
jmp 0x48e792
cmp byte [esp + 0x98], 0
je 0x490bcc
mov edx, ebx
movzx eax, word [edx]
mov word [esi], ax
inc edx
inc esi
jmp 0x48e9e6
movzx eax, dl
cmp eax, 0x22
je 0x48fad7
cmp byte [esp + 0x98], 0
je 0x4911f0
cmp ebx, dword [esp + 0x84]
jae 0x491205
inc ebx
mov byte [esi], dl
inc esi
jmp 0x48e76a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49121a
movzx eax, word [edx]
cmp eax, 0x755c
jne 0x49122f
movzx eax, byte [ebx + 8]
movzx eax, byte [eax + 0x4fe25d]
mov dword [esp + 0x24], eax
movzx eax, byte [ebx + 9]
movzx edi, byte [eax + 0x4fe25d]
movzx eax, byte [ebx + 0xa]
movzx eax, byte [eax + 0x4fe25d]
mov dword [esp + 0x18], eax
movzx eax, byte [ebx + 0xb]
movzx eax, byte [eax + 0x4fe25d]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x24]
shl eax, 8
add eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
shl edi, 8
add edi, dword [esp + 0xc]
mov dword [esp + 0xc], edi
mov eax, edi
mov edi, dword [esp + 0x24]
or eax, dword [esp + 0x24]
test eax, 0xf0f0
jne 0x491241
shl edi, 4
movzx eax, di
mov edi, dword [esp + 0xc]
or edi, eax
mov dword [esp + 0xc], edi
mov eax, edi
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x491253
movzx edx, cx
shl edx, 0xa
add edx, 0xfca00000
mov ecx, dword [esp + 0xc]
lea edi, [ecx - 0xdc00]
or edi, edx
lea eax, [edi + 0x10000]
mov edx, eax
shr edx, 0x12
or dl, 0xf0
mov byte [esi], dl
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [esi + 1], al
mov eax, edi
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 0x48e76a
mov eax, ecx
jmp 0x48ec2a
mov eax, edi
mov dword [esp + 0x68], eax
mov esi, dword [esp]
mov edi, dword [esp + 0x88]
mov ecx, edi
mov edx, esi
push dword [ebp + 0x10]
push 2
mov ebx, dword [esp + 0x8c]
push ebx
call dbg.is_truncated_end
add esp, 0xc
test al, al
cmovne esi, ebx
mov ecx, 0x4fe0e6
mov edx, str.memory_allocation_failed
cmovne edx, ecx
sub esi, edi
mov ecx, dword [ebp + 0x18]
test ecx, ecx
lea edi, [esp + 0xa4]
cmove ecx, edi
mov dword [ecx + 8], esi
movzx eax, al
lea eax, [eax + eax*2 + 2]
mov esi, dword [esp + 0x90]
mov dword [esi], eax
mov eax, dword [esp + 0x68]
mov dword [ecx + 4], edx
test eax, eax
je 0x489caf
push eax
jmp 0x496a50
add eax, edi
inc eax
mov dword [esp + 0x64], str.no_digit_after_exponent_sign
mov dword [esp], eax
jmp 0x48e671
cmp eax, 0x30
jne 0x490be1
mov eax, dword [esp + 0x10]
lea ebx, [eax + 1]
movzx eax, byte [eax + 1]
movzx ecx, byte [eax + 0x4fe4d8]
test cl, 0x33
jne 0x490bfb
xor eax, eax
cmp byte [esp + 0x24], 0x2d
sete al
lea eax, [eax*8 + 4]
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x18], 0
jmp 0x48d6d3
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x3c], eax
test byte [ecx + 0x4fe4d8], 0x30
jne 0x490c58
mov ebx, dword [esp + 0xc]
mov esi, ebx
sar esi, 0x1f
xor eax, eax
mov edx, ebx
neg edx
sbb eax, esi
xor ecx, ecx
cmp byte [esp + 0x24], 0x2d
sete cl
lea ecx, [ecx*8 + 4]
mov edi, dword [esp + 0x28]
mov dword [edi + 0x10], ecx
cmovne eax, esi
cmovne edx, ebx
mov dword [edi + 0x14], 0
mov dword [edi + 0x18], edx
mov dword [edi + 0x1c], eax
jmp 0x48f2a1
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 2
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48f26a
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov ecx, edi
mov edi, 0
je 0x490cc9
jmp 0x48deb4
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 3
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48f26a
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov ecx, edi
mov edi, 0
je 0x490d08
jmp 0x48deb4
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 4
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48f26a
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov ecx, edi
mov edi, 0
je 0x490d47
jmp 0x48deb4
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 5
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48f26a
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov ecx, edi
mov edi, 0
je 0x490d86
jmp 0x48deb4
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 6
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48f26a
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov ecx, edi
mov edi, 0
je 0x490dc5
jmp 0x48deb4
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 7
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48f26a
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov ecx, edi
mov edi, 0
je 0x490e04
jmp 0x48deb4
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 8
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48f26a
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov ecx, edi
mov edi, 0
je 0x490e43
jmp 0x48deb4
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 9
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48f26a
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov ecx, edi
mov edi, 0
je 0x490e82
jmp 0x48deb4
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 0xa
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48f26a
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov ecx, edi
mov edi, 0
je 0x490ec1
jmp 0x48deb4
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 0xb
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48f26a
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov ecx, edi
mov edi, 0
je 0x490f00
jmp 0x48deb4
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 0xc
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48f26a
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov ecx, edi
mov edi, 0
je 0x490f3f
jmp 0x48deb4
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 0xd
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48f26a
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov ecx, edi
mov edi, 0
je 0x490f7e
jmp 0x48deb4
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 0xe
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48f26a
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov ecx, edi
mov edi, 0
je 0x490fbd
jmp 0x48deb4
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 0xf
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48f26a
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov ecx, edi
mov edi, 0
je 0x490ffc
jmp 0x48deb4
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 0x10
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48f26a
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov ecx, edi
mov edi, 0
je 0x49103b
jmp 0x48deb4
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 0x11
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x48f26a
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov ecx, edi
mov edi, 0
je 0x49107a
jmp 0x48deb4
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 0x12
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe4d8], 0x30
jne 0x49118c
xor eax, eax
mov ebx, dword [esp + 0xc]
mov ecx, ebx
neg ecx
sbb eax, edi
xor edx, edx
cmp byte [esp + 0x24], 0x2d
sete dl
lea edx, [edx*8 + 4]
mov esi, dword [esp + 0x28]
mov dword [esi + 0x10], edx
cmovne eax, edi
cmovne ecx, ebx
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
jmp 0x48d6d6
mov ecx, dword [ebp + 0x10]
test cl, 0x10
je 0x4919fd
movzx ecx, al
or ecx, 0x20
cmp ecx, 0x6e
jne 0x4919fd
movzx ecx, ah
or ecx, 0x20
cmp ecx, 0x61
jne 0x4919fd
shr eax, 0x10
movzx eax, al
or eax, 0x20
cmp eax, 0x6e
je 0x48fa30
jmp 0x4919fd
movzx eax, byte [esi + 1]
mov ecx, eax
or ecx, 0x20
cmp ecx, 0x6e
jne 0x48fa06
movzx ecx, byte [esi + 2]
or ecx, 0x20
cmp ecx, 0x66
jne 0x48fa06
mov ecx, esi
lea eax, [esi + 3]
movzx ecx, byte [esi + 3]
or ecx, 0x20
cmp ecx, 0x69
jne 0x48f354
movzx ecx, byte [esi + 4]
or ecx, 0x20
cmp ecx, 0x6e
jne 0x48f354
movzx ecx, byte [esi + 5]
or ecx, 0x20
cmp ecx, 0x69
jne 0x48f354
movzx ecx, byte [esi + 6]
or ecx, 0x20
cmp ecx, 0x74
jne 0x48f354
movzx ecx, byte [esi + 7]
or ecx, 0x20
cmp ecx, 0x79
jne 0x48f354
lea eax, [esi + 8]
mov dword [esp], eax
cmp dword [esp + 0x20], 0
je 0x48fb78
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
test ecx, ecx
je 0x48f36f
mov byte [ecx], 0
mov ecx, dword [esp + 0x20]
mov dword [ecx], eax
sub eax, esi
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
shl eax, 8
or eax, 1
mov edx, dword [esp + 0x28]
mov dword [edx + 0x14], ecx
mov dword [edx + 0x10], eax
mov dword [edx + 0x18], esi
jmp 0x48d6d6
mov esi, ebx
cmp dl, 0x5c
jne 0x48f811
movzx eax, byte [ebx + 1]
add eax, 0xffffffde
cmp eax, 0x53
ja case.0x48f3b3.35
jmp dword [eax*4 + 0x501940]
mov byte [esi], 0x22
jmp 0x48f478
mov byte [esi], 0xa
jmp 0x48f478
mov byte [esi], 0x2f
jmp 0x48f478
mov byte [esi], 8
jmp 0x48f478
movzx eax, byte [ebx + 2]
movzx edx, byte [eax + 0x4fe25d]
movzx eax, byte [ebx + 3]
movzx ecx, byte [eax + 0x4fe25d]
movzx eax, byte [ebx + 4]
movzx edi, byte [eax + 0x4fe25d]
movzx eax, byte [ebx + 5]
movzx eax, byte [eax + 0x4fe25d]
shl edx, 8
or edx, edi
shl ecx, 8
or ecx, eax
mov eax, ecx
or eax, edx
test eax, 0xf0f0
jne 0x48fee0
shl edx, 4
or ecx, edx
lea edx, [ebx + 6]
mov eax, ecx
and eax, 0xf800
cmp eax, 0xd800
je 0x48f845
movzx ebx, cx
cmp ebx, 0x800
jb 0x48f480
shr ebx, 0xc
or bl, 0xe0
mov byte [esi], bl
mov eax, ecx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [esi + 1], al
and cl, 0x3f
or cl, 0x80
mov byte [esi + 2], cl
add esi, 3
jmp 0x48f4b0
mov byte [esi], 0x5c
jmp 0x48f478
mov byte [esi], 0xd
jmp 0x48f478
mov byte [esi], 0xc
jmp 0x48f478
mov byte [esi], 9
inc esi
add ebx, 2
mov edx, ebx
jmp 0x48f4b0
cmp ebx, 0x80
jb 0x48f49f
mov eax, ecx
shr eax, 6
or al, 0xc0
mov byte [esi], al
and cl, 0x3f
or cl, 0x80
mov byte [esi + 1], cl
add esi, 2
jmp 0x48f4b0
mov byte [esi], cl
inc esi
jmp 0x48f4b0
mov esi, edi
cmp ebx, edx
je 0x48f7f4
nop
movzx eax, byte [edx]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48f6f6
movzx eax, byte [edx + 1]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48f804
movzx eax, byte [edx + 2]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48f5d2
movzx eax, byte [edx + 3]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48f5e3
movzx eax, byte [edx + 4]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48f5f2
movzx eax, byte [edx + 5]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48f601
movzx eax, byte [edx + 6]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48f618
movzx eax, byte [edx + 7]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48f62f
movzx eax, byte [edx + 8]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48f642
movzx eax, byte [edx + 9]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48f655
movzx eax, byte [edx + 0xa]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48f670
movzx eax, byte [edx + 0xb]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48f688
movzx eax, byte [edx + 0xc]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48f69e
movzx eax, byte [edx + 0xd]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48f6b4
movzx eax, byte [edx + 0xe]
test byte [eax + 0x4fdfe6], 0xc
jne 0x48f6d2
movzx eax, byte [edx + 0xf]
test byte [eax + 0x4fdfe6], 0xc
movupd xmm0, xmmword [edx]
movupd xmmword [esi], xmm0
jne 0x48f6f0
add edx, 0x10
add esi, 0x10
jmp 0x48f4b0
movzx eax, word [edx]
add edx, 2
mov word [esi], ax
add esi, 2
jmp 0x48f6f6
mov eax, dword [edx]
add edx, 3
mov dword [esi], eax
add esi, 3
jmp 0x48f6f6
mov eax, dword [edx]
add edx, 4
mov dword [esi], eax
add esi, 4
jmp 0x48f6f6
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 0x48f6f8
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 0x48f6f8
movsd xmm0, qword [edx]
add edx, 7
movsd qword [esi], xmm0
add esi, 7
jmp 0x48f6f6
movsd xmm0, qword [edx]
add edx, 8
movsd qword [esi], xmm0
add esi, 8
jmp 0x48f6f6
lea ebx, [edx + 9]
movsd xmm0, qword [edx]
movsd qword [esi], xmm0
movzx eax, word [edx + 8]
mov word [esi + 8], ax
add esi, 9
jmp 0x48f6f8
lea ebx, [edx + 0xa]
movsd xmm0, qword [edx]
movsd qword [esi], xmm0
movzx eax, word [edx + 8]
mov word [esi + 8], ax
add esi, 0xa
jmp 0x48f6f8
lea ebx, [edx + 0xb]
movsd xmm0, qword [edx]
movsd qword [esi], xmm0
mov eax, dword [edx + 8]
mov dword [esi + 8], eax
add esi, 0xb
jmp 0x48f6f8
lea ebx, [edx + 0xc]
movsd xmm0, qword [edx]
movsd qword [esi], xmm0
mov eax, dword [edx + 8]
mov dword [esi + 8], eax
add esi, 0xc
jmp 0x48f6f8
lea ebx, [edx + 0xd]
movsd xmm0, qword [edx]
movsd qword [esi], xmm0
mov eax, dword [edx + 8]
mov dword [esi + 8], eax
movzx eax, word [edx + 0xc]
mov word [esi + 0xc], ax
add esi, 0xd
jmp 0x48f6f8
lea ebx, [edx + 0xe]
movsd xmm0, qword [edx]
movsd qword [esi], xmm0
mov eax, dword [edx + 8]
mov dword [esi + 8], eax
movzx eax, word [edx + 0xc]
mov word [esi + 0xc], ax
add esi, 0xe
jmp 0x48f6f8
add edx, 0xf
add esi, 0xf
mov ebx, edx
movzx edx, byte [ebx]
test dl, dl
jns 0x48f39a
mov eax, dword [ebx]
mov ecx, eax
and eax, 0xc0c0f0
mov edx, ebx
cmp eax, 0x8080e0
jne 0x48f74a
mov edi, esi
mov esi, ecx
and ecx, 0x200f
je 0x48f746
cmp ecx, 0x200d
je 0x48f746
mov dword [edi], esi
mov esi, edi
add esi, 3
mov ecx, dword [edx + 3]
add edx, 3
mov eax, ecx
and eax, 0xc0c0f0
cmp eax, 0x8080e0
je 0x48f715
jmp 0x48f74a
mov ecx, esi
mov esi, edi
test cl, cl
jns 0x48f4b0
mov edi, esi
mov eax, ecx
and eax, 0xc0e0
cmp eax, 0x80c0
jne 0x48f78e
mov eax, ecx
and eax, 0x1e
mov esi, ecx
je 0x48f790
mov word [edi], si
add edi, 2
mov esi, dword [edx + 2]
add edx, 2
mov eax, esi
and eax, 0xc0e0
cmp eax, 0x80c0
jne 0x48f790
mov eax, esi
and eax, 0x1e
jne 0x48f76b
jmp 0x48f790
mov esi, ecx
mov eax, esi
and eax, 0xc0c0c0f8
cmp eax, 0x808080f0
jne 0x48f4a4
mov ecx, esi
mov eax, esi
and eax, 0x3007
mov esi, edi
je 0x48f4a6
test cl, 4
mov eax, ecx
je 0x48f7c9
mov ecx, eax
and eax, 0x3003
mov eax, ecx
jne 0x48f4a6
mov dword [esi], eax
add esi, 4
mov ecx, dword [edx + 4]
add edx, 4
mov eax, ecx
and eax, 0xc0c0c0f8
cmp eax, 0x808080f0
jne 0x48f4a6
mov eax, ecx
and eax, 0x3007
jne 0x48f7b3
jmp 0x48f4a6
cmp byte [esp + 0x98], 0
je 0x490bcc
mov edx, ebx
movzx eax, word [edx]
mov word [esi], ax
inc edx
inc esi
jmp 0x48f6f6
mov ecx, esi
movzx eax, dl
cmp eax, 0x22
je 0x48fb8e
cmp byte [esp + 0x98], 0
je 0x4911f0
cmp ebx, dword [esp + 0x84]
jae 0x491205
inc ebx
mov esi, ecx
mov byte [ecx], dl
inc esi
jmp 0x48f47c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49121a
movzx eax, word [edx]
cmp eax, 0x755c
jne 0x49122f
movzx eax, byte [ebx + 8]
movzx eax, byte [eax + 0x4fe25d]
mov dword [esp + 0x24], eax
movzx eax, byte [ebx + 9]
movzx edi, byte [eax + 0x4fe25d]
movzx eax, byte [ebx + 0xa]
movzx eax, byte [eax + 0x4fe25d]
mov dword [esp + 0x18], eax
movzx eax, byte [ebx + 0xb]
movzx eax, byte [eax + 0x4fe25d]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x24]
shl eax, 8
add eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
shl edi, 8
add edi, dword [esp + 0xc]
mov dword [esp + 0xc], edi
mov eax, edi
mov edi, dword [esp + 0x24]
or eax, dword [esp + 0x24]
test eax, 0xf0f0
jne 0x491241
shl edi, 4
movzx eax, di
mov edi, dword [esp + 0xc]
or edi, eax
mov dword [esp + 0xc], edi
mov eax, edi
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x491253
movzx edx, cx
shl edx, 0xa
add edx, 0xfca00000
mov ecx, dword [esp + 0xc]
lea edi, [ecx - 0xdc00]
or edi, edx
lea eax, [edi + 0x10000]
mov edx, eax
shr edx, 0x12
or dl, 0xf0
mov byte [esi], dl
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [esi + 1], al
mov eax, edi
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 0x48f47c
inc ebx
mov dword [esp + 0x64], str.invalid_escaped_character_in_string
mov dword [esp + 0x68], str.invalid_escaped_character_in_string
mov dword [esp], ebx
mov edi, dword [esp + 0x88]
mov ecx, edi
mov edx, ebx
push dword [ebp + 0x10]
push 0xa
mov esi, dword [esp + 0x8c]
push esi
call dbg.is_truncated_end
add esp, 0xc
mov ecx, eax
xor cl, 1
test al, al
cmovne ebx, esi
mov eax, 0x4fe0e6
cmove eax, dword [esp + 0x68]
sub ebx, edi
mov edx, dword [ebp + 0x18]
test edx, edx
lea edi, [esp + 0xa4]
cmove edx, edi
mov dword [edx + 8], ebx
jmp 0x498ba7
xor eax, eax
cmp byte [esp + 0x24], 0x2d
sete al
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0x14
shl eax, 0x1f
mov dword [ecx + 0x1c], eax
mov dword [ecx + 0x18], 0
mov eax, dword [esp + 0x38]
jmp 0x48dc43
xor eax, eax
jmp 0x48e01c
lea eax, [esp + 0x64]
mov ecx, esp
mov edx, dword [esp + 0x20]
push eax
push edi
push dword [ebp + 0x10]
call dbg.read_number_raw
add esp, 0xc
test al, al
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
jne 0x49ad14
jmp 0x48e675
cmp byte [esp + 0x24], 0x4e
jne case.0x4889e0.74
movzx eax, al
or eax, 0x20
cmp eax, 0x61
jne case.0x4889e0.74
movzx eax, byte [esi + 2]
or eax, 0x20
cmp eax, 0x6e
jne case.0x4889e0.74
lea eax, [esi + 3]
mov dword [esp], eax
cmp dword [esp + 0x20], 0
je 0x48faca
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
test ecx, ecx
je 0x48fa4e
mov byte [ecx], 0
mov ecx, dword [esp + 0x20]
mov dword [ecx], eax
mov eax, dword [esp + 0x28]
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0x301
mov dword [eax + 0x18], esi
jmp 0x48d6d6
cmp byte [esp + 0x10], 0x2d
jne 0x48faaa
xor eax, eax
cmp byte [esp + 0x24], 0x2d
sete al
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0x14
shl eax, 0x1f
mov dword [ecx + 0x1c], eax
mov dword [ecx + 0x18], 0
mov eax, dword [esp + 0x38]
mov dword [esp], eax
jmp 0x48d6d6
mov eax, dword [ebp + 0x10]
test al, al
js 0x48fe92
test al, 0x10
jne 0x4911bd
mov dword [esp + 0x64], str.number_is_infinity_when_parsed_as_double
jmp 0x48e671
movapd xmm0, xmmword [0x4fdea0]
jmp 0x48fb80
mov eax, 5
jmp 0x48d3b3
mov eax, dword [esp + 0x1c]
bsr edx, eax
xor edx, 0x1f
mov dword [esp + 0xc], ecx
bsr ecx, ecx
xor ecx, 0x1f
add ecx, 0x20
test eax, eax
cmovne ecx, edx
mov edx, eax
mov eax, dword [esp + 0xc]
shld edx, eax, cl
shl eax, cl
mov dword [esp + 0x3c], ecx
test cl, 0x20
cmovne edx, eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x14], 0
mov ecx, 0
cmovne eax, ecx
mov dword [esp + 0x5c], eax
imul eax, edi, 0x3526a
shl edi, 4
add eax, 0xffc10000
sar eax, 0x10
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x4ffb4c]
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0x4ffb48]
mov dword [esp + 0x60], eax
mov eax, dword [edi + 0x4ffb54]
mov dword [esp + 0x6c], eax
jmp 0x48e2ae
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test eax, eax
je 0x48fb6f
mov byte [eax], 0
mov edi, dword [esp + 0x18]
jmp 0x48fea3
movapd xmm0, xmmword [0x4fdeb0]
mov eax, dword [esp + 0x28]
movupd xmmword [eax + 0x10], xmm0
jmp 0x48d6d6
mov eax, 5
mov esi, dword [esp + 0x10]
jmp 0x48d6ac
mov edx, eax
lea eax, [edi + 0x472]
cmp edi, 0xfffffb8f
cmovb eax, ecx
mov edi, 0x40
sub edi, eax
lea ecx, [eax - 0x44]
cmp ecx, 0xffffffbf
ja 0x491928
mov ecx, 4
sub ecx, eax
mov eax, edx
mov edi, dword [esp + 0x14]
shrd eax, edi, cl
shr edi, cl
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x3c]
shrd ebx, edx, cl
shr edx, cl
add dword [esp + 0x10], ecx
test cl, 0x20
cmovne eax, edi
mov ecx, 0
cmovne edi, ecx
mov dword [esp + 0x14], edi
cmovne ebx, edx
cmovne edx, ecx
add ebx, 9
mov dword [esp + 0x3c], ebx
adc edx, 0
mov dword [esp + 0x34], edx
mov edi, 0x3c
mov ebx, dword [esp + 0x2c]
jmp 0x48e414
mov dword [esp + 0x10], esi
mov eax, dword [ebp + 0x10]
test al, al
js 0x4912e2
test al, 0x10
jne 0x491322
mov dword [esp + 0x64], str.number_is_infinity_when_parsed_as_double
mov eax, dword [esp + 0x10]
jmp 0x48eca7
mov dword [esp + 0x10], esi
xor eax, eax
mov ecx, 0xffffffff
add ecx, 1
adc eax, 0xfffff
mov ebx, dword [esp + 0x58]
mov edi, ebx
and edi, 0xfffff
or edi, eax
mov edx, ebx
shr edx, 0x14
add edx, 0xfffffbcc
mov esi, dword [esp + 0x60]
cmp esi, ecx
mov ecx, ebx
sbb ecx, eax
mov eax, 0xfffffbcd
cmovae eax, edx
mov dword [esp + 0x6c], eax
cmovb edi, ebx
shld edi, esi, 1
lea esi, [esi*2 + 1]
lea eax, [esp + 0x9c]
lea ecx, [esp + 0xc0]
mov edx, dword [esp + 0xc]
push dword [esp + 0x18]
push dword [esp + 0x34]
push dword [esp + 0x54]
push eax
push dword [esp + 0x2c]
call dbg.bigint_set_buf
add esp, 0x14
lea eax, [esp + 0x2d0]
mov dword [esp + 0x70], eax
mov dword [esp + 0x2d0], esi
mov dword [esp + 0x2d4], edi
mov eax, dword [esp + 0x9c]
test eax, eax
js 0x48ff19
cmp eax, 0x13
jb 0x4900a9
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x18], ecx
jmp 0x48fd0c
mov ecx, dword [esp + 0x44]
lea eax, [ecx - 0x13]
cmp ecx, 0x25
jle 0x49009e
mov dword [esp + 0x44], eax
cmp dword [esp + 0x18], 0
je 0x48fd32
xor edi, edi
mov eax, dword [esp + edi*8 + 0xc8]
or eax, dword [esp + edi*8 + 0xcc]
jne 0x48fd34
inc edi
cmp dword [esp + 0x18], edi
jne 0x48fd19
jmp 0x48fcfc
xor edi, edi
cmp edi, dword [esp + 0x18]
jae 0x48fcfc
mov dword [esp + 0x14], 0
mov dword [esp + 0x34], 0
mov ebx, dword [esp + edi*8 + 0xc8]
mov eax, ebx
mov ecx, 0x89e80000
mul ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x3c], edx
xor eax, eax
add ecx, 0xdf2304
mov dword [esp + 0x5c], ecx
setb al
mov esi, eax
mov eax, ebx
mul ecx
mov ecx, eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + edi*8 + 0xcc]
mov dword [esp + 0xc], eax
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x40], edx
imul ebx, esi
mov eax, dword [esp + 0xc]
mul dword [esp + 0x5c]
imul esi, dword [esp + 0xc]
mov dword [esp + 0xc], esi
add ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x1c]
adc esi, ebx
add ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x40]
adc ebx, 0
add esi, eax
adc edx, dword [esp + 0xc]
add esi, ebx
mov dword [esp + 0x1c], esi
adc edx, 0
mov ebx, dword [esp + 0x4c]
and ebx, 0xfff80000
mov esi, dword [esp + 0x14]
add ebx, esi
mov eax, dword [esp + 0x34]
adc ecx, eax
setb byte [esp + 0xc]
cmp ebx, esi
mov esi, ebx
mov ebx, ecx
sbb ebx, eax
mov dword [esp + edi*8 + 0xcc], ecx
setb cl
or cl, byte [esp + 0xc]
movzx eax, cl
add eax, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
mov dword [esp + edi*8 + 0xc8], esi
adc edx, 0
mov dword [esp + 0x34], edx
inc edi
cmp dword [esp + 0x18], edi
jne 0x48fd4a
mov eax, dword [esp + 0x14]
or eax, dword [esp + 0x34]
je 0x48fcfc
mov ecx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov edx, dword [esp + 0x14]
mov dword [esp + ecx*8 + 0xc8], edx
mov edx, dword [esp + 0x34]
mov dword [esp + ecx*8 + 0xcc], edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x18], eax
jmp 0x48fcfc
xor ecx, ecx
mov dword [esp + 0x58], 0
cmp eax, 0xfffffb8f
jb 0x48e56b
mov cl, 0xc3
sub cl, al
shrd edx, edi, cl
shr edi, cl
mov eax, edx
xor edx, edx
test cl, 0x20
cmovne eax, edi
cmove edx, edi
mov dword [esp + 0x58], edx
mov ecx, eax
jmp 0x48e56b
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test eax, eax
je 0x48fe9f
mov byte [eax], 0
mov edi, dword [esp + 0x38]
mov eax, edi
sub eax, esi
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
mov edx, dword [esp + 0x28]
mov dword [edx + 0x14], ecx
shl eax, 8
or eax, 1
mov dword [edx + 0x10], eax
mov dword [edx + 0x18], esi
mov eax, dword [esp + 0x20]
mov dword [eax], edi
mov dword [esp], edi
jmp 0x48d6d6
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
test ecx, ecx
je 0x48fea7
mov byte [ecx], 0
jmp 0x48fea7
mov dword [esp + 0x64], str.invalid_escaped_sequence_in_string
mov dword [esp + 0x68], str.invalid_escaped_sequence_in_string
jmp 0x48f951
mov eax, dword [ebp + 0x10]
test al, 4
jne 0x4913a5
cmp byte [edi], 0x2c
je 0x4919a1
mov dword [esp], esi
cmp byte [esi], 0x2c
lea esi, [esi - 1]
jne 0x48ff09
jmp 0x49199e
neg eax
mov dword [esp + 0x50], 1
cmp eax, 0x13
jb 0x49021d
mov dword [esp + 0x50], 1
mov dword [esp + 0x18], 1
jmp 0x48ff4e
mov ecx, dword [esp + 0x44]
lea eax, [ecx - 0x13]
cmp ecx, 0x25
jle 0x490202
mov dword [esp + 0x44], eax
cmp dword [esp + 0x18], 0
je 0x48ff74
xor edi, edi
mov eax, dword [esp + edi*8 + 0x2d0]
or eax, dword [esp + edi*8 + 0x2d4]
jne 0x48ff76
inc edi
cmp dword [esp + 0x18], edi
jne 0x48ff5b
jmp 0x48ff3e
xor edi, edi
cmp edi, dword [esp + 0x18]
jae 0x48ff3e
mov dword [esp + 0x14], 0
mov dword [esp + 0x34], 0
mov ebx, dword [esp + edi*8 + 0x2d0]
mov eax, ebx
mov ecx, 0x89e80000
mul ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x3c], edx
xor eax, eax
add ecx, 0xdf2304
mov dword [esp + 0x5c], ecx
setb al
mov esi, eax
mov eax, ebx
mul ecx
mov ecx, eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + edi*8 + 0x2d4]
mov dword [esp + 0xc], eax
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x40], edx
imul ebx, esi
mov eax, dword [esp + 0xc]
mul dword [esp + 0x5c]
imul esi, dword [esp + 0xc]
mov dword [esp + 0xc], esi
add ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x1c]
adc esi, ebx
add ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x40]
adc ebx, 0
add esi, eax
adc edx, dword [esp + 0xc]
add esi, ebx
mov dword [esp + 0x1c], esi
adc edx, 0
mov ebx, dword [esp + 0x4c]
and ebx, 0xfff80000
mov esi, dword [esp + 0x14]
add ebx, esi
mov eax, dword [esp + 0x34]
adc ecx, eax
setb byte [esp + 0xc]
cmp ebx, esi
mov esi, ebx
mov ebx, ecx
sbb ebx, eax
mov dword [esp + edi*8 + 0x2d4], ecx
setb cl
or cl, byte [esp + 0xc]
movzx eax, cl
add eax, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
mov dword [esp + edi*8 + 0x2d0], esi
adc edx, 0
mov dword [esp + 0x34], edx
inc edi
cmp dword [esp + 0x18], edi
jne 0x48ff8c
mov eax, dword [esp + 0x14]
or eax, dword [esp + 0x34]
je 0x48ff3e
mov ecx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov edx, dword [esp + 0x14]
mov dword [esp + ecx*8 + 0x2d0], edx
mov edx, dword [esp + 0x34]
mov dword [esp + ecx*8 + 0x2d4], edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x18], eax
jmp 0x48ff3e
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x44], 1
test eax, eax
je 0x49034d
mov ecx, dword [eax*8 + 0x500f9c]
mov dword [esp + 0x5c], ecx
mov eax, dword [eax*8 + 0x500f98]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xc0]
xor edi, edi
mov dword [esp + 0x34], eax
test eax, eax
je 0x4900fe
xor edi, edi
mov eax, dword [esp + edi*8 + 0xc8]
or eax, dword [esp + edi*8 + 0xcc]
jne 0x4900fe
inc edi
cmp dword [esp + 0x34], edi
jne 0x4900e2
jmp 0x49034d
cmp edi, dword [esp + 0x34]
jae 0x49034d
mov dword [esp + 0xc], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + edi*8 + 0xc8]
mov eax, ecx
mov esi, dword [esp + 0x50]
mul esi
mov dword [esp + 0x4c], edx
mov dword [esp + 0x14], eax
mov eax, ecx
mov ebx, dword [esp + 0x5c]
mul ebx
mov ecx, eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + edi*8 + 0xcc]
mov dword [esp + 0x30], eax
mul esi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
mul ebx
add ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x1c]
adc esi, 0
add ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x3c]
adc ebx, 0
add esi, eax
adc edx, 0
add esi, ebx
mov dword [esp + 0x1c], esi
adc edx, 0
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x14]
add ebx, esi
mov eax, dword [esp + 0x18]
adc ecx, eax
setb byte [esp + 0x14]
cmp ebx, esi
mov esi, ebx
mov ebx, ecx
sbb ebx, eax
mov dword [esp + edi*8 + 0xcc], ecx
setb cl
or cl, byte [esp + 0x14]
movzx eax, cl
add eax, dword [esp + 0x1c]
mov dword [esp + 0xc], eax
mov dword [esp + edi*8 + 0xc8], esi
adc edx, 0
mov dword [esp + 0x18], edx
inc edi
cmp dword [esp + 0x34], edi
jne 0x490118
mov eax, dword [esp + 0xc]
or eax, dword [esp + 0x18]
je 0x49034d
mov ecx, dword [esp + 0x34]
lea eax, [ecx + 1]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x18]
mov dword [esp + ecx*8 + 0xcc], eax
mov eax, dword [esp + 0xc]
mov dword [esp + ecx*8 + 0xc8], eax
jmp 0x49034d
test eax, eax
je 0x490345
mov dword [esp + 0x44], 0
cmp dword [esp + 0x50], 0
je 0x49034d
mov ecx, dword [eax*8 + 0x500f9c]
mov dword [esp + 0x30], ecx
mov eax, dword [eax*8 + 0x500f98]
mov dword [esp + 0x40], eax
xor edi, edi
mov eax, dword [esp + edi*8 + 0x2d0]
or eax, dword [esp + edi*8 + 0x2d4]
jne 0x490251
inc edi
cmp dword [esp + 0x50], edi
jne 0x490235
jmp 0x490345
cmp edi, dword [esp + 0x50]
jae 0x490345
mov dword [esp + 0xc], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + edi*8 + 0x2d0]
mov eax, ecx
mov ebx, dword [esp + 0x40]
mul ebx
mov dword [esp + 0x14], edx
mov dword [esp + 0x34], eax
mov eax, ecx
mov esi, dword [esp + 0x30]
mul esi
mov ecx, eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + edi*8 + 0x2d4]
mov dword [esp + 0x3c], eax
mul ebx
mov ebx, edx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x3c]
mul esi
add ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
adc esi, 0
add ecx, dword [esp + 0x4c]
adc ebx, 0
add esi, eax
adc edx, 0
add esi, ebx
mov dword [esp + 0x1c], esi
adc edx, 0
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x34]
add ebx, esi
mov eax, dword [esp + 0x18]
adc ecx, eax
setb byte [esp + 0x34]
cmp ebx, esi
mov esi, ebx
mov ebx, ecx
sbb ebx, eax
mov dword [esp + edi*8 + 0x2d4], ecx
setb cl
or cl, byte [esp + 0x34]
movzx eax, cl
add eax, dword [esp + 0x1c]
mov dword [esp + 0xc], eax
mov dword [esp + edi*8 + 0x2d0], esi
adc edx, 0
mov dword [esp + 0x18], edx
inc edi
cmp dword [esp + 0x50], edi
jne 0x49026b
mov eax, dword [esp + 0xc]
or eax, dword [esp + 0x18]
je 0x490345
mov ecx, dword [esp + 0x50]
lea eax, [ecx + 1]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xc]
mov dword [esp + ecx*8 + 0x2d0], eax
mov eax, dword [esp + 0x18]
mov dword [esp + ecx*8 + 0x2d4], eax
jmp 0x49034d
mov eax, dword [esp + 0x50]
mov dword [esp + 0x44], eax
cmp dword [esp + 0x6c], 0
jle 0x4905bd
mov eax, dword [esp + 0x6c]
mov ecx, eax
shr ecx, 6
mov dword [esp + 0x50], ecx
and eax, 0x3f
mov dword [esp + 0xc], eax
je 0x491355
mov eax, dword [esp + 0x44]
mov dword [esp + eax*8 + 0x2d4], 0
mov dword [esp + eax*8 + 0x2d0], 0
test eax, eax
je 0x490558
mov eax, 0x40
sub eax, dword [esp + 0xc]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x18], eax
cmp eax, 0x18
jae 0x490906
mov eax, dword [esp + 0x18]
mov esi, eax
test al, 1
je 0x490428
mov esi, dword [esp + 0x18]
mov eax, dword [esp + esi*8 + 0x2d0]
mov edx, dword [esp + esi*8 + 0x2d4]
mov ecx, dword [esp + 0xc]
shld edx, eax, cl
shl eax, cl
xor edi, edi
test cl, 0x20
cmovne edx, eax
mov dword [esp + 0x34], edx
cmovne eax, edi
mov ebx, dword [esp + esi*8 + 0x2cc]
mov edi, ebx
mov ecx, dword [esp + 0x1c]
shr edi, cl
mov edx, dword [esp + esi*8 + 0x2c8]
shrd edx, ebx, cl
test cl, 0x20
cmovne edx, edi
mov ecx, 0
cmovne edi, ecx
or edi, dword [esp + 0x34]
or edx, eax
mov eax, dword [esp + 0x50]
add eax, esi
mov dword [esp + eax*8 + 0x2d0], edx
mov dword [esp + eax*8 + 0x2d4], edi
dec esi
cmp dword [esp + 0x18], 1
je 0x490558
mov eax, dword [esp + 0x50]
lea eax, [esp + eax*8]
add eax, 0x2d0
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], esi
mov eax, dword [esp + esi*8 + 0x2d0]
mov dword [esp + 0x4c], eax
mov edx, eax
mov ecx, dword [esp + 0xc]
shl edx, cl
mov dword [esp + 0x14], edx
test cl, 0x20
mov eax, 0
cmovne edx, eax
mov dword [esp + 0x40], edx
mov edi, dword [esp + esi*8 + 0x2cc]
mov dword [esp + 0x3c], edi
mov eax, dword [esp + 0x1c]
mov ecx, eax
shr edi, cl
mov ebx, dword [esp + esi*8 + 0x2c8]
mov edx, dword [esp + 0x3c]
shrd ebx, edx, cl
test al, 0x20
cmovne ebx, edi
mov eax, 0
cmovne edi, eax
or ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0x18]
mov dword [ecx + esi*8], ebx
mov ebx, ecx
mov edx, dword [esp + esi*8 + 0x2c8]
mov dword [esp + 0x40], edx
mov ecx, dword [esp + 0xc]
shl edx, cl
mov dword [esp + 0x5c], edx
test cl, 0x20
cmovne edx, eax
mov dword [esp + 0x3c], edx
mov edx, dword [esp + esi*8 + 0x2d4]
mov eax, dword [esp + 0x4c]
shld edx, eax, cl
test cl, 0x20
cmovne edx, dword [esp + 0x14]
or edx, edi
mov dword [esp + 0x30], esi
mov eax, dword [esp + esi*8 + 0x2c0]
mov dword [ebx + esi*8 + 4], edx
mov edx, dword [esp + esi*8 + 0x2cc]
mov edi, dword [esp + 0x40]
shld edx, edi, cl
test cl, 0x20
cmovne edx, dword [esp + 0x5c]
mov ebx, dword [esp + esi*8 + 0x2c4]
mov dword [esp + 0x14], ebx
mov ecx, dword [esp + 0x1c]
shr ebx, cl
test cl, 0x20
mov edi, ebx
mov esi, 0
cmovne edi, esi
mov esi, dword [esp + 0x14]
shrd eax, esi, cl
test byte [esp + 0x1c], 0x20
cmovne eax, ebx
or edi, edx
or eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x30]
mov dword [ecx + edx*8 - 8], eax
mov dword [ecx + edx*8 - 4], edi
mov esi, dword [esp + 0x34]
add esi, 0xfffffffe
mov dword [esp + 0x34], esi
jne 0x490447
mov edx, dword [esp + 0x2d0]
mov eax, dword [esp + 0x2d4]
mov edi, edx
mov ecx, dword [esp + 0xc]
shl edi, cl
shld eax, edx, cl
xor edx, edx
test cl, 0x20
cmovne eax, edi
cmove edx, edi
mov edi, dword [esp + 0x50]
mov dword [esp + edi*8 + 0x2d0], edx
mov dword [esp + edi*8 + 0x2d4], eax
mov edx, dword [esp + 0x44]
add edx, edi
mov eax, dword [esp + edx*8 + 0x2d0]
xor ecx, ecx
or eax, dword [esp + edx*8 + 0x2d4]
setne cl
add edx, ecx
mov dword [esp + 0x44], edx
cmp dword [esp + 0x6c], 0x40
jae 0x49083a
jmp 0x490850
mov eax, dword [esp + 0x6c]
neg eax
mov ecx, eax
shr ecx, 6
mov dword [esp + 0x50], ecx
mov dword [esp + 0x6c], eax
mov ecx, eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x7c], eax
and ecx, 0x3f
mov dword [esp + 0xc], ecx
je 0x4913ae
lea eax, [esp + 0xc8]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + eax*8 + 0xcc], 0
mov dword [esp + eax*8 + 0xc8], 0
test eax, eax
je 0x4907db
mov eax, 0x40
sub eax, dword [esp + 0xc]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x18], eax
cmp eax, 0x18
jae 0x490a74
mov eax, dword [esp + 0x18]
mov esi, eax
test al, 1
je 0x4906ab
mov esi, dword [esp + 0x18]
mov eax, dword [esp + esi*8 + 0xc8]
mov edx, dword [esp + esi*8 + 0xcc]
mov ecx, dword [esp + 0xc]
shld edx, eax, cl
shl eax, cl
xor edi, edi
test cl, 0x20
cmovne edx, eax
mov dword [esp + 0x34], edx
cmovne eax, edi
mov ebx, dword [esp + esi*8 + 0xc4]
mov edi, ebx
mov ecx, dword [esp + 0x1c]
shr edi, cl
mov edx, dword [esp + esi*8 + 0xc0]
shrd edx, ebx, cl
test cl, 0x20
cmovne edx, edi
mov ecx, 0
cmovne edi, ecx
or edi, dword [esp + 0x34]
or edx, eax
mov eax, dword [esp + 0x50]
add eax, esi
mov dword [esp + eax*8 + 0xc8], edx
mov dword [esp + eax*8 + 0xcc], edi
dec esi
cmp dword [esp + 0x18], 1
je 0x4907db
mov eax, dword [esp + 0x50]
lea eax, [esp + eax*8]
add eax, 0xc8
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], esi
mov eax, dword [esp + esi*8 + 0xc8]
mov dword [esp + 0x4c], eax
mov edx, eax
mov ecx, dword [esp + 0xc]
shl edx, cl
mov dword [esp + 0x14], edx
test cl, 0x20
mov eax, 0
cmovne edx, eax
mov dword [esp + 0x40], edx
mov edi, dword [esp + esi*8 + 0xc4]
mov dword [esp + 0x3c], edi
mov eax, dword [esp + 0x1c]
mov ecx, eax
shr edi, cl
mov ebx, dword [esp + esi*8 + 0xc0]
mov edx, dword [esp + 0x3c]
shrd ebx, edx, cl
test al, 0x20
cmovne ebx, edi
mov eax, 0
cmovne edi, eax
or ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0x18]
mov dword [ecx + esi*8], ebx
mov ebx, ecx
mov edx, dword [esp + esi*8 + 0xc0]
mov dword [esp + 0x40], edx
mov ecx, dword [esp + 0xc]
shl edx, cl
mov dword [esp + 0x5c], edx
test cl, 0x20
cmovne edx, eax
mov dword [esp + 0x3c], edx
mov edx, dword [esp + esi*8 + 0xcc]
mov eax, dword [esp + 0x4c]
shld edx, eax, cl
test cl, 0x20
cmovne edx, dword [esp + 0x14]
or edx, edi
mov dword [esp + 0x30], esi
mov eax, dword [esp + esi*8 + 0xb8]
mov dword [ebx + esi*8 + 4], edx
mov edx, dword [esp + esi*8 + 0xc4]
mov edi, dword [esp + 0x40]
shld edx, edi, cl
test cl, 0x20
cmovne edx, dword [esp + 0x5c]
mov ebx, dword [esp + esi*8 + 0xbc]
mov dword [esp + 0x14], ebx
mov ecx, dword [esp + 0x1c]
shr ebx, cl
test cl, 0x20
mov edi, ebx
mov esi, 0
cmovne edi, esi
mov esi, dword [esp + 0x14]
shrd eax, esi, cl
test byte [esp + 0x1c], 0x20
cmovne eax, ebx
or edi, edx
or eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x30]
mov dword [ecx + edx*8 - 8], eax
mov dword [ecx + edx*8 - 4], edi
mov esi, dword [esp + 0x34]
add esi, 0xfffffffe
mov dword [esp + 0x34], esi
jne 0x4906ca
mov eax, dword [esp + 0xc8]
mov edx, eax
mov ecx, dword [esp + 0xc]
shl edx, cl
mov edi, dword [esp + 0xcc]
shld edi, eax, cl
xor eax, eax
test cl, 0x20
cmovne edi, edx
cmove eax, edx
mov ecx, dword [esp + 0x50]
mov dword [esp + ecx*8 + 0xc8], eax
mov dword [esp + ecx*8 + 0xcc], edi
mov edx, dword [esp + 0x7c]
add edx, ecx
mov eax, dword [esp + edx*8 + 0xc8]
xor ecx, ecx
or eax, dword [esp + edx*8 + 0xcc]
setne cl
add ecx, edx
mov dword [esp + 0xc0], ecx
cmp dword [esp + 0x6c], 0x40
jb 0x490850
mov eax, dword [esp + 0x50]
shl eax, 3
push eax
push 0
push dword [esp + 0x78]
call sym._memset
add esp, 0xc
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x18], 0
mov eax, 0
cmp ecx, dword [esp + 0x44]
jb 0x4908b4
mov al, 1
ja 0x4908b4
mov edx, ecx
sub edx, 1
jb 0x490a60
mov esi, dword [esp + ecx*8 + 0xc0]
mov ebx, dword [esp + ecx*8 + 0xc4]
mov eax, dword [esp + ecx*8 + 0x2c8]
mov edi, dword [esp + ecx*8 + 0x2cc]
mov dword [esp + 0x1c], ebx
mov ecx, ebx
xor ecx, edi
mov dword [esp + 0xc], esi
xor esi, eax
or esi, ecx
mov ecx, edx
je 0x490870
cmp dword [esp + 0xc], eax
sbb dword [esp + 0x1c], edi
setae al
movzx ecx, al
add ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x18]
adc eax, dword [esp + 0x58]
mov esi, eax
xor eax, 0x7ff00000
or eax, ecx
je 0x49129f
xor eax, eax
cmp byte [esp + 0x24], 0x2d
sete al
mov edx, dword [esp + 0x28]
mov dword [edx + 0x14], 0
mov dword [edx + 0x10], 0x14
shl eax, 0x1f
or esi, eax
mov dword [edx + 0x18], ecx
mov dword [edx + 0x1c], esi
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x2c]
jmp 0x48e5ce
mov edi, dword [esp + 0x44]
lea edx, [edi*8 - 8]
lea ecx, [esp + edi*8]
add ecx, 0x2c8
mov eax, ecx
sub eax, edx
mov dword [esp + 0x18], edi
cmp eax, ecx
ja 0x4903b2
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x50]
lea esi, [eax + edi]
lea edi, [esp + esi*8]
add edi, 0x2d0
mov ebx, edi
sub ebx, edx
mov dword [esp + 0x18], eax
cmp ebx, edi
ja 0x4903b2
mov eax, dword [esp + 0x44]
lea edi, [esp + eax*8]
add edi, 0x2d0
mov ebx, edi
sub ebx, edx
mov dword [esp + 0x18], eax
cmp ebx, edi
ja 0x4903b2
mov eax, dword [esp + 0x44]
lea edx, [eax - 1]
mov dword [esp + 0x18], eax
cmp edx, 0x1fffffff
ja 0x4903b2
lea edx, [esp + esi*8]
add edx, 0x2c8
sub ecx, edx
mov eax, dword [esp + 0x44]
mov dword [esp + 0x18], eax
cmp ecx, 0x20
jb 0x4903b2
add ecx, 0xfffffff8
mov eax, dword [esp + 0x44]
mov dword [esp + 0x18], eax
cmp ecx, 0x20
jb 0x4903b2
shl esi, 3
mov eax, dword [esp + 0x44]
lea ecx, [eax*8]
mov ebx, eax
and ebx, 0xfffffffc
and eax, 3
mov dword [esp + 0x18], eax
movd xmm0, dword [esp + 0xc]
movd xmm1, dword [esp + 0x1c]
lea edx, [esp + 0x2c8]
add edx, ecx
add edx, 0xffffffe8
mov edi, ebx
neg edi
lea eax, [esp + esi]
add eax, 0x2c8
xor ecx, ecx
movdqu xmm2, xmmword [edx + ecx*8 + 0x18]
pshufd xmm2, xmm2, 0x4e
movdqu xmm3, xmmword [edx + ecx*8 + 8]
pshufd xmm3, xmm3, 0x4e
psllq xmm2, xmm0
psllq xmm3, xmm0
movdqu xmm4, xmmword [edx + ecx*8]
movdqu xmm5, xmmword [edx + ecx*8 + 0x10]
pshufd xmm5, xmm5, 0x4e
pshufd xmm4, xmm4, 0x4e
psrlq xmm5, xmm1
psrlq xmm4, xmm1
por xmm5, xmm2
por xmm4, xmm3
pshufd xmm2, xmm5, 0x4e
movdqu xmmword [eax + ecx*8], xmm2
pshufd xmm2, xmm4, 0x4e
movdqu xmmword [eax + ecx*8 - 0x10], xmm2
add ecx, 0xfffffffc
cmp edi, ecx
jne 0x4909f2
cmp dword [esp + 0x44], ebx
jne 0x4903b2
jmp 0x490558
mov ecx, dword [esp + 0x60]
and ecx, 1
mov dword [esp + 0x18], 0
jmp 0x4908b7
mov edi, dword [esp + 0x7c]
lea esi, [edi*8 - 8]
lea ecx, [esp + edi*8]
add ecx, 0xc0
mov eax, ecx
sub eax, esi
mov dword [esp + 0x18], edi
cmp eax, ecx
ja 0x490635
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x7c]
add eax, edx
lea edi, [esp + eax*8]
add edi, 0xc8
mov ebx, edi
sub ebx, esi
mov dword [esp + 0x18], edx
cmp ebx, edi
ja 0x490635
mov edx, dword [esp + 0x7c]
lea edi, [esp + edx*8]
add edi, 0xc8
mov ebx, edi
sub ebx, esi
mov dword [esp + 0x18], edx
cmp ebx, edi
ja 0x490635
mov edi, dword [esp + 0x7c]
lea edx, [edi - 1]
mov dword [esp + 0x18], edi
cmp edx, 0x1fffffff
ja 0x490635
lea edx, [esp + eax*8]
add edx, 0xc0
sub ecx, edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x18], edx
cmp ecx, 0x20
jb 0x490635
add ecx, 0xfffffff8
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x18], edx
cmp ecx, 0x20
jb 0x490635
shl eax, 3
mov edx, dword [esp + 0x7c]
lea ecx, [edx*8]
mov esi, edx
and esi, 0xfffffffc
and edx, 3
mov dword [esp + 0x18], edx
movd xmm0, dword [esp + 0xc]
movd xmm1, dword [esp + 0x1c]
lea edx, [esp + 0xc0]
add edx, ecx
add edx, 0xffffffe8
mov edi, esi
neg edi
add eax, esp
add eax, 0xc0
xor ecx, ecx
movdqu xmm2, xmmword [edx + ecx*8 + 0x18]
pshufd xmm2, xmm2, 0x4e
movdqu xmm3, xmmword [edx + ecx*8 + 8]
pshufd xmm3, xmm3, 0x4e
psllq xmm2, xmm0
psllq xmm3, xmm0
movdqu xmm4, xmmword [edx + ecx*8]
movdqu xmm5, xmmword [edx + ecx*8 + 0x10]
pshufd xmm5, xmm5, 0x4e
pshufd xmm4, xmm4, 0x4e
psrlq xmm5, xmm1
psrlq xmm4, xmm1
por xmm5, xmm2
por xmm4, xmm3
pshufd xmm2, xmm5, 0x4e
movdqu xmmword [eax + ecx*8], xmm2
pshufd xmm2, xmm4, 0x4e
movdqu xmmword [eax + ecx*8 - 0x10], xmm2
add ecx, 0xfffffffc
cmp edi, ecx
jne 0x490b5e
cmp dword [esp + 0x7c], esi
jne 0x490635
jmp 0x4907db
mov dword [esp + 0x64], str.invalid_UTF_8_encoding_in_string
mov dword [esp + 0x68], str.invalid_UTF_8_encoding_in_string
jmp 0x48f951
mov edi, eax
mov eax, dword [ebp + 0x10]
test al, 0x10
jne 0x4916bd
mov dword [esp + 0x64], str.no_digit_after_minus_sign
jmp 0x48fc36
cmp al, 0x2e
jne 0x4917ae
mov eax, dword [esp + 0x10]
movzx ecx, byte [eax + 2]
test byte [ecx + 0x4fe4d8], 3
je 0x49127e
lea eax, [edx + esi]
inc eax
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x10]
movzx eax, byte [ecx + 1]
inc ecx
mov dword [esp + 0x10], ecx
cmp eax, 0x30
je 0x490c20
mov edi, eax
movzx ecx, byte [eax + 0x4fe4d8]
test cl, 3
je 0x4917aa
add edi, 0xffffffd0
mov dword [esp + 0xc], edi
mov ecx, edi
sar ecx, 0x1f
dec dword [esp + 0x10]
mov eax, ebx
jmp 0x490c8a
mov eax, dword [esp + 0xc]
sar eax, 0x1f
xor edi, edi
mov dword [esp + 0x14], 0
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x4c], 0
cmp ecx, 0x2e
mov ecx, eax
mov eax, edx
jne 0x48deb4
mov ebx, eax
mov edi, ecx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 2]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 2]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x491292
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov ecx, edi
mov dword [esp + 0xc], eax
adc ecx, edx
mov eax, ebx
mov ebx, eax
mov edi, ecx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 3]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 3]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x491292
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov ecx, edi
mov dword [esp + 0xc], eax
adc ecx, edx
mov eax, ebx
mov ebx, eax
mov edi, ecx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 4]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 4]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x491292
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov ecx, edi
mov dword [esp + 0xc], eax
adc ecx, edx
mov eax, ebx
mov ebx, eax
mov edi, ecx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 5]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 5]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x491292
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov ecx, edi
mov dword [esp + 0xc], eax
adc ecx, edx
mov eax, ebx
mov ebx, eax
mov edi, ecx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 6]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 6]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x491292
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov ecx, edi
mov dword [esp + 0xc], eax
adc ecx, edx
mov eax, ebx
mov ebx, eax
mov edi, ecx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 7]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 7]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x491292
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov ecx, edi
mov dword [esp + 0xc], eax
adc ecx, edx
mov eax, ebx
mov ebx, eax
mov edi, ecx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 8]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 8]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x491292
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov ecx, edi
mov dword [esp + 0xc], eax
adc ecx, edx
mov eax, ebx
mov ebx, eax
mov edi, ecx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 9]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 9]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x491292
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov ecx, edi
mov dword [esp + 0xc], eax
adc ecx, edx
mov eax, ebx
mov ebx, eax
mov edi, ecx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0xa]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 0xa]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x491292
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov ecx, edi
mov dword [esp + 0xc], eax
adc ecx, edx
mov eax, ebx
mov ebx, eax
mov edi, ecx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0xb]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 0xb]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x491292
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov ecx, edi
mov dword [esp + 0xc], eax
adc ecx, edx
mov eax, ebx
mov ebx, eax
mov edi, ecx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0xc]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 0xc]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x491292
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov ecx, edi
mov dword [esp + 0xc], eax
adc ecx, edx
mov eax, ebx
mov ebx, eax
mov edi, ecx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0xd]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 0xd]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x491292
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov ecx, edi
mov dword [esp + 0xc], eax
adc ecx, edx
mov eax, ebx
mov ebx, eax
mov edi, ecx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0xe]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 0xe]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x491292
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov ecx, edi
mov dword [esp + 0xc], eax
adc ecx, edx
mov eax, ebx
mov ebx, eax
mov edi, ecx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0xf]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 0xf]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x491292
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov ecx, edi
mov dword [esp + 0xc], eax
adc ecx, edx
mov eax, ebx
mov ebx, eax
mov edi, ecx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0x10]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 0x10]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x491292
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov ecx, edi
mov dword [esp + 0xc], eax
adc ecx, edx
mov eax, ebx
mov ebx, eax
mov edi, ecx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0x11]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 0x11]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x491292
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov ecx, edi
mov dword [esp + 0xc], eax
adc ecx, edx
mov eax, ebx
mov ebx, eax
mov edi, ecx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0x12]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 0x12]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x491292
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov ecx, edi
mov dword [esp + 0xc], eax
adc ecx, edx
mov eax, ebx
mov edi, eax
mov ebx, ecx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0x13]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 0x13]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x4914bc
mov edx, 0xa
mov eax, dword [esp + 0xc]
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp + 0xc], eax
adc ebx, edx
mov dword [esp + 0x1c], ebx
mov ecx, dword [esp + 0x10]
movzx eax, byte [ecx + 0x14]
add ecx, 0x14
mov dword [esp + 0x34], eax
test byte [eax + 0x4fe4d8], 3
mov dword [esp + 0x30], ecx
mov dword [esp + 0x18], edi
jne 0x48dd88
mov eax, dword [esp + 0x18]
inc eax
cmp eax, dword [esp + 0x30]
je 0x49126d
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x18]
mov ecx, eax
sar ecx, 0x1f
mov dword [esp + 0x4c], 0
mov edi, 1
sub edi, eax
mov edx, 0
sbb edx, ecx
movzx ecx, byte [esp + 0x34]
test byte [ecx + 0x4fe4d8], 0x20
jne 0x491677
mov dword [esp + 0x4c], 0
cmp eax, 0x159
jge 0x491688
mov eax, dword [esp + 0x30]
mov dword [esp + 0x38], eax
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
jmp 0x48df99
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov ecx, edi
mov edi, 0
je 0x4910b9
jmp 0x48deb4
cmp byte [esp + 0x24], 0x2d
mov edx, dword [esp + 0x28]
mov dword [edx + 0x14], 0
mov eax, 0xfff00000
mov ecx, 0x7ff00000
cmove ecx, eax
mov dword [edx + 0x10], 0x14
mov dword [edx + 0x1c], ecx
mov dword [edx + 0x18], 0
jmp 0x48fa9e
mov dword [esp + 0x64], str.unexpected_control_character_in_string
mov dword [esp + 0x68], str.unexpected_control_character_in_string
jmp 0x48f951
mov dword [esp + 0x64], str.unclosed_string
mov dword [esp + 0x68], str.unclosed_string
jmp 0x48f951
mov dword [esp + 0x64], str.invalid_high_surrogate_in_string
mov dword [esp + 0x68], str.invalid_high_surrogate_in_string
jmp 0x48f951
mov dword [esp + 0x64], str.no_low_surrogate_in_string
mov dword [esp + 0x68], str.no_low_surrogate_in_string
jmp 0x491263
mov dword [esp + 0x64], str.invalid_escaped_sequence_in_string
mov dword [esp + 0x68], str.invalid_escaped_sequence_in_string
jmp 0x491263
mov dword [esp + 0x64], str.invalid_low_surrogate_in_string
mov dword [esp + 0x68], str.invalid_low_surrogate_in_string
mov dword [esp], edx
mov ebx, edx
jmp 0x48f954
mov dword [esp + 0x64], str.no_digit_after_decimal_point
mov eax, dword [esp + 0x30]
jmp 0x48eca7
mov eax, dword [esp + 0x10]
add eax, 2
mov dword [esp + 0x64], str.no_digit_after_decimal_point
jmp 0x48eca7
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], edi
jmp 0x49111c
mov eax, dword [ebp + 0x10]
test al, al
js 0x4912e2
test al, 0x10
je 0x48fc2e
mov eax, 0x7ff00000
xor ecx, ecx
cmp byte [esp + 0x24], 0x2d
mov esi, dword [esp + 0x28]
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0x14
mov edx, 0xfff00000
cmovne edx, eax
cmove ecx, ecx
mov dword [esi + 0x1c], edx
mov dword [esi + 0x18], ecx
jmp 0x4908f9
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test eax, eax
je 0x4912ef
mov byte [eax], 0
mov edi, dword [esp + 0x38]
mov eax, edi
mov esi, dword [esp + 0x10]
sub eax, esi
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
mov edx, dword [esp + 0x28]
mov dword [edx + 0x14], ecx
shl eax, 8
or eax, 1
mov dword [edx + 0x10], eax
mov dword [edx + 0x18], esi
mov eax, dword [esp + 0x20]
mov dword [eax], edi
jmp 0x4908f9
cmp byte [esp + 0x24], 0x2d
mov edx, dword [esp + 0x28]
mov dword [edx + 0x14], 0
mov dword [edx + 0x10], 0x14
mov eax, 0xfff00000
mov ecx, 0x7ff00000
cmove ecx, eax
mov dword [edx + 0x1c], ecx
mov dword [edx + 0x18], 0
jmp 0x4908f9
cmp dword [esp + 0x44], 0
je 0x491520
mov ecx, dword [esp + 0x44]
mov eax, ecx
cmp ecx, 0x20
jae 0x4913fe
lea esi, [eax - 1]
mov edi, eax
and edi, 3
je 0x4914c9
mov ecx, dword [esp + 0x50]
lea edx, [esp + ecx*8]
add edx, 0x2c8
lea ecx, [eax - 1]
movq xmm0, qword [esp + eax*8 + 0x2c8]
movq qword [edx + eax*8], xmm0
mov eax, ecx
dec edi
jne 0x49138a
jmp 0x4914cb
mov edx, dword [esp + 0x10]
jmp 0x49ae01
cmp dword [esp + 0x7c], 0
je 0x49164d
mov ecx, dword [esp + 0x7c]
mov eax, ecx
cmp ecx, 0x20
jae 0x491538
lea esi, [eax - 1]
mov edi, eax
and edi, 3
je 0x4915f6
mov ecx, dword [esp + 0x50]
lea edx, [esp + ecx*8]
add edx, 0xc0
lea ecx, [eax - 1]
movq xmm0, qword [esp + eax*8 + 0xc0]
movq qword [edx + eax*8], xmm0
mov eax, ecx
dec edi
jne 0x4913e3
jmp 0x4915f8
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x50]
add eax, ebx
lea ecx, [esp + eax*8]
add ecx, 0x2c8
lea edi, [ebx*8 - 8]
mov edx, ecx
sub edx, edi
mov eax, ebx
cmp edx, ecx
ja 0x49136f
mov eax, dword [esp + 0x44]
lea edx, [esp + eax*8]
add edx, 0x2c8
mov ebx, edx
sub ebx, edi
cmp ebx, edx
ja 0x49136f
mov eax, dword [esp + 0x44]
lea edi, [eax - 1]
cmp edi, 0x1fffffff
ja 0x49136f
sub edx, ecx
mov eax, dword [esp + 0x44]
cmp edx, 0x20
jb 0x49136f
mov eax, dword [esp + 0x44]
lea ecx, [eax*8]
mov esi, eax
and esi, 0xfffffffc
and eax, 3
lea edx, [esp + 0x2c8]
lea edi, [ecx + edx]
add edx, ecx
add edx, 0xfffffff8
mov ebx, esi
neg ebx
mov ecx, dword [esp + 0x50]
lea ecx, [edi + ecx*8]
add ecx, 0xfffffff8
xor edi, edi
movdqu xmm0, xmmword [edx + edi*8 - 0x10]
movdqu xmm1, xmmword [edx + edi*8]
movdqu xmmword [ecx + edi*8], xmm1
movdqu xmmword [ecx + edi*8 - 0x10], xmm0
add edi, 0xfffffffc
cmp ebx, edi
jne 0x491493
cmp dword [esp + 0x44], esi
jne 0x49136f
jmp 0x491520
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], ebx
jmp 0x49111c
mov ecx, eax
cmp esi, 3
jb 0x491520
mov eax, dword [esp + 0x50]
lea eax, [esp + eax*8]
add eax, 0x2c8
mov edx, ecx
movsd xmm0, qword [esp + ecx*8 + 0x2c8]
movsd qword [eax + ecx*8], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x2c0]
movsd qword [eax + ecx*8 - 8], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x2b8]
movsd qword [eax + ecx*8 - 0x10], xmm0
movq xmm0, qword [esp + ecx*8 + 0x2b0]
movq qword [eax + ecx*8 - 0x18], xmm0
add edx, 0xfffffffc
mov ecx, edx
jne 0x4914de
mov eax, dword [esp + 0x50]
add dword [esp + 0x44], eax
cmp dword [esp + 0x6c], 0x40
jae 0x49083a
jmp 0x490850
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x7c]
add eax, ebx
lea ecx, [esp + eax*8]
add ecx, 0xc0
lea edi, [ebx*8 - 8]
mov edx, ecx
sub edx, edi
mov eax, ebx
cmp edx, ecx
ja 0x4913c8
mov eax, dword [esp + 0x7c]
lea edx, [esp + eax*8]
add edx, 0xc0
mov ebx, edx
sub ebx, edi
cmp ebx, edx
ja 0x4913c8
mov eax, dword [esp + 0x7c]
lea edi, [eax - 1]
cmp edi, 0x1fffffff
ja 0x4913c8
sub edx, ecx
mov eax, dword [esp + 0x7c]
cmp edx, 0x20
jb 0x4913c8
mov eax, dword [esp + 0x7c]
lea ecx, [eax*8]
mov esi, eax
and esi, 0xfffffffc
and eax, 3
lea edx, [esp + 0xc0]
lea edi, [ecx + edx]
add edx, ecx
add edx, 0xfffffff8
mov ebx, esi
neg ebx
mov ecx, dword [esp + 0x50]
lea ecx, [edi + ecx*8]
add ecx, 0xfffffff8
xor edi, edi
movdqu xmm0, xmmword [edx + edi*8 - 0x10]
movdqu xmm1, xmmword [edx + edi*8]
movdqu xmmword [ecx + edi*8], xmm1
movdqu xmmword [ecx + edi*8 - 0x10], xmm0
add edi, 0xfffffffc
cmp ebx, edi
jne 0x4915cd
cmp dword [esp + 0x7c], esi
jne 0x4913c8
jmp 0x49164d
mov ecx, eax
cmp esi, 3
jb 0x49164d
mov eax, dword [esp + 0x50]
lea eax, [esp + eax*8]
add eax, 0xc0
mov edx, ecx
movsd xmm0, qword [esp + ecx*8 + 0xc0]
movsd qword [eax + ecx*8], xmm0
movsd xmm0, qword [esp + ecx*8 + 0xb8]
movsd qword [eax + ecx*8 - 8], xmm0
movsd xmm0, qword [esp + ecx*8 + 0xb0]
movsd qword [eax + ecx*8 - 0x10], xmm0
movq xmm0, qword [esp + ecx*8 + 0xa8]
movq qword [eax + ecx*8 - 0x18], xmm0
add edx, 0xfffffffc
mov ecx, edx
jne 0x49160b
mov eax, dword [esp + 0x7c]
add eax, dword [esp + 0x50]
mov dword [esp + 0xc0], eax
cmp dword [esp + 0x6c], 0x40
jb 0x490850
lea eax, [esp + 0xc8]
mov dword [esp + 0x70], eax
jmp 0x49083a
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x14], edx
jmp 0x48deb4
xor eax, eax
cmp byte [esp + 0x24], 0x2d
sete al
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0x14
shl eax, 0x1f
mov dword [ecx + 0x1c], eax
mov dword [ecx + 0x18], 0
mov eax, dword [esp + 0x30]
mov dword [esp], eax
jmp 0x48d6d6
xor ecx, ecx
cmp byte [esp + 0x24], 0x2d
sete al
lea edx, [edi - 0x49]
cmp edx, 0x25
ja case.0x4916db.74
mov cl, al
mov eax, dword [esp + 0x10]
sub eax, ecx
jmp dword [edx*4 + 0x501824]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 1]
or ecx, 0x20
cmp ecx, 0x6e
jne 0x4917f1
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 2]
or ecx, 0x20
cmp ecx, 0x66
jne 0x4917f1
mov edx, dword [esp + 0x10]
lea ecx, [edx + 3]
movzx edx, byte [edx + 3]
or edx, 0x20
cmp edx, 0x69
jne 0x491764
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 4]
or edx, 0x20
cmp edx, 0x6e
jne 0x491764
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 5]
or edx, 0x20
cmp edx, 0x69
jne 0x491764
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 6]
or edx, 0x20
cmp edx, 0x74
jne 0x491764
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 7]
or edx, 0x20
cmp edx, 0x79
jne 0x491764
mov ecx, dword [esp + 0x10]
add ecx, 8
cmp byte [esp + 0x80], 0
je 0x4918ad
mov edx, dword [esp + 0x20]
mov edx, dword [edx]
test edx, edx
je 0x49177f
mov byte [edx], 0
mov edx, dword [esp + 0x20]
mov dword [edx], ecx
mov edx, ecx
sub edx, eax
mov esi, edx
sar esi, 0x1f
shld esi, edx, 8
mov edi, dword [esp + 0x28]
mov dword [edi + 0x14], esi
shl edx, 8
or edx, 1
mov dword [edi + 0x10], edx
mov dword [edi + 0x18], eax
jmp 0x4918db
mov ebx, dword [esp + 0x10]
test cl, 3
jne 0x4917e3
test cl, 0x20
jne 0x4918e3
xor eax, eax
cmp byte [esp + 0x24], 0x2d
sete al
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0x14
shl eax, 0x1f
mov dword [ecx + 0x1c], eax
jmp 0x48ecf9
mov dword [esp + 0x64], str.number_with_leading_zero_is_not_allowed
dec ebx
jmp 0x491920
cmp edi, 0x4e
jne case.0x4916db.74
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 1]
or ecx, 0x20
cmp ecx, 0x61
jne case.0x4916db.74
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 2]
or ecx, 0x20
cmp ecx, 0x6e
jne case.0x4916db.74
add dword [esp + 0x10], 3
cmp byte [esp + 0x80], 0
je 0x491873
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
test ecx, ecx
je 0x49183e
mov byte [ecx], 0
cmp byte [esp + 0x24], 0x2d
mov ecx, 0x401
mov edx, 0x301
cmove edx, ecx
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x10]
mov dword [ecx], esi
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x10], edx
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x18], eax
mov dword [esp], esi
jmp 0x48d6d6
cmp byte [esp + 0x24], 0x2d
mov edx, dword [esp + 0x28]
mov dword [edx + 0x14], 0
mov eax, 0xfff80000
mov ecx, 0x7ff80000
cmove ecx, eax
mov dword [edx + 0x10], 0x14
mov dword [edx + 0x1c], ecx
mov dword [edx + 0x18], 0
mov eax, dword [esp + 0x10]
mov dword [esp], eax
jmp 0x48d6d6
cmp byte [esp + 0x24], 0x2d
mov esi, dword [esp + 0x28]
mov dword [esi + 0x14], 0
mov eax, 0xfff00000
mov edx, 0x7ff00000
cmove edx, eax
mov dword [esi + 0x10], 0x14
mov dword [esi + 0x1c], edx
mov dword [esi + 0x18], 0
mov dword [esp], ecx
jmp 0x48d6d6
movzx eax, byte [ebx + 1]
movzx eax, byte [eax + 0x4fe4d8]
and al, 0xc
cmp al, 1
sbb ebx, 0
movzx eax, byte [ebx + 2]
add ebx, 2
test byte [eax + 0x4fe4d8], 3
je 0x491918
movzx eax, byte [ebx + 1]
inc ebx
test byte [eax + 0x4fe4d8], 3
jne 0x491905
jmp 0x4917bc
mov dword [esp + 0x64], str.no_digit_after_exponent_sign
mov dword [esp], ebx
jmp 0x48e671
mov ebx, dword [esp + 0x2c]
mov eax, edx
jmp 0x48e414
mov esi, dword [esp]
movzx eax, word [esi]
cmp eax, 0x2a2f
mov eax, dword [ebp + 0x10]
jne 0x4969f2
mov edi, dword [esp + 0x88]
mov ecx, edi
mov edx, esi
push eax
push 8
mov ebx, dword [esp + 0x8c]
push ebx
call dbg.is_truncated_end
add esp, 0xc
mov ecx, eax
xor cl, 1
test al, al
cmovne esi, ebx
mov eax, 0x4fe0e6
mov edx, str.unclosed_multiline_comment
cmovne edx, eax
sub esi, edi
mov eax, dword [ebp + 0x18]
test eax, eax
lea edi, [esp + 0xa4]
cmove eax, edi
mov dword [eax + 8], esi
movzx ecx, cl
lea ecx, [ecx + ecx*2]
add ecx, 5
jmp 0x496a40
inc esi
mov edi, esi
mov esi, dword [esp + 0x88]
mov ecx, esi
mov edx, edi
push dword [ebp + 0x10]
push 7
mov ebx, dword [esp + 0x8c]
push ebx
call dbg.is_truncated_end
add esp, 0xc
mov ecx, eax
xor cl, 1
test al, al
cmovne edi, ebx
mov eax, 0x4fe0e6
mov edx, str.trailing_comma_is_not_allowed
cmovne edx, eax
sub edi, esi
mov eax, dword [ebp + 0x18]
test eax, eax
lea esi, [esp + 0xa4]
cmove eax, esi
mov dword [eax + 8], edi
mov edi, esi
movzx ecx, cl
lea ecx, [ecx*2 + 5]
jmp 0x496a40
mov edi, dword [esp + 0x88]
mov ecx, edi
mov edx, esi
push dword [ebp + 0x10]
push 0xb
mov ebx, dword [esp + 0x8c]
push ebx
call dbg.is_truncated_end
add esp, 0xc
test al, al
cmovne esi, ebx
mov ecx, 5
mov eax, 0xb
cmovne eax, ecx
mov ecx, 0x4fe0e6
mov edx, str.invalid_literal
cmovne edx, ecx
sub esi, edi
mov ecx, dword [ebp + 0x18]
test ecx, ecx
lea edi, [esp + 0xa4]
cmove ecx, edi
mov dword [ecx + 8], esi
mov esi, dword [esp + 0x90]
mov dword [esi], eax
mov dword [ecx + 4], edx
jmp 0x496a4c
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x1c]
inc esi
mov dword [esp], esi
mov eax, edi
shl edi, 8
mov ebx, dword [esp + 0x74]
movzx ecx, byte [ebx]
or ecx, edi
shr eax, 0x18
add ecx, 0x100
adc eax, 0
mov dword [ebx], ecx
mov dword [ebx + 4], eax
mov ecx, ebx
mov ebx, dword [esp + 0x20]
add ebx, 0x10
cmp ebx, dword [esp + 0x80]
jae 0x491ad3
mov edi, dword [esp + 0x2c]
mov dword [ebx + 4], 0
mov dword [ebx], 6
mov eax, ebx
sub eax, ecx
mov dword [ebx + 8], eax
mov eax, ebx
mov dword [esp + 0x54], 0
cmp byte [esi], 0xa
jne 0x491ac9
inc esi
mov dword [esp], esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], edi
jmp 0x491b48
mov dword [esp + 8], edx
mov eax, dword [esp + 0x2c]
mov edi, eax
shr edi, 1
add edi, eax
cmp edi, 0xffffffe
ja 0x489c49
mov eax, dword [esp + 0x2c]
shl eax, 4
mov ecx, edi
shl ecx, 4
mov dword [esp + 0x10], ecx
push ecx
push eax
push dword [esp + 0x10]
push dword [esp + 0x84]
call dword [esp + 0xa4]
add esp, 0x10
mov esi, dword [esp]
test eax, eax
je 0x489c49
mov ecx, dword [esp + 8]
sub ebx, ecx
add ebx, eax
mov edx, dword [esp + 0x74]
sub edx, ecx
add edx, eax
mov ecx, dword [esp + 0x10]
add ecx, eax
add ecx, 0xffffffe0
mov dword [esp + 0x80], ecx
mov ecx, edx
mov edx, eax
jmp 0x491aa2
mov edi, esp
mov dword [esp + 8], edx
mov dword [esp + 0x74], eax
movzx ecx, word [esi]
cmp ecx, 0x2020
jne 0x491cc2
add esi, 0x10
nop word cs:[eax + eax]
lea eax, [esi - 0xe]
mov dword [esp], eax
movzx ecx, word [esi - 0xe]
cmp ecx, 0x2020
jne 0x491cc0
lea eax, [esi - 0xc]
mov dword [esp], eax
movzx ecx, word [esi - 0xc]
cmp ecx, 0x2020
jne 0x491cc0
lea eax, [esi - 0xa]
mov dword [esp], eax
movzx ecx, word [esi - 0xa]
cmp ecx, 0x2020
jne 0x491cc0
lea eax, [esi - 8]
mov dword [esp], eax
movzx ecx, word [esi - 8]
cmp ecx, 0x2020
jne 0x491cc0
lea eax, [esi - 6]
mov dword [esp], eax
movzx ecx, word [esi - 6]
cmp ecx, 0x2020
jne 0x491cc0
lea eax, [esi - 4]
mov dword [esp], eax
movzx ecx, word [esi - 4]
cmp ecx, 0x2020
jne 0x491cc0
lea eax, [esi - 2]
mov dword [esp], eax
movzx ecx, word [esi - 2]
cmp ecx, 0x2020
jne 0x491cc0
mov dword [esp], esi
movzx ecx, word [esi]
cmp ecx, 0x2020
jne 0x491cc2
lea eax, [esi + 2]
mov dword [esp], eax
movzx ecx, word [esi + 2]
cmp ecx, 0x2020
jne 0x491cc0
lea eax, [esi + 4]
mov dword [esp], eax
movzx ecx, word [esi + 4]
cmp ecx, 0x2020
jne 0x491cc0
lea eax, [esi + 6]
mov dword [esp], eax
movzx ecx, word [esi + 6]
cmp ecx, 0x2020
jne 0x491cc0
lea eax, [esi + 8]
mov dword [esp], eax
movzx ecx, word [esi + 8]
cmp ecx, 0x2020
jne 0x491cc0
lea eax, [esi + 0xa]
mov dword [esp], eax
movzx ecx, word [esi + 0xa]
cmp ecx, 0x2020
jne 0x491cc0
lea eax, [esi + 0xc]
mov dword [esp], eax
movzx ecx, word [esi + 0xc]
cmp ecx, 0x2020
jne 0x491cc0
lea eax, [esi + 0xe]
mov dword [esp], eax
movzx ecx, word [esi + 0xe]
cmp ecx, 0x2020
jne 0x491cc0
lea eax, [esi + 0x10]
mov dword [esp], eax
movzx ecx, word [esi + 0x10]
add esi, 0x20
cmp ecx, 0x2020
je 0x491b70
add esi, 0xfffffff0
jmp 0x491cc2
mov esi, eax
cmp cl, 0x5b
je 0x491e47
movzx eax, cl
cmp eax, 0x7b
je 0x491e58
movzx eax, cl
movzx edx, byte [eax + 0x4fdfe6]
test dl, 2
jne 0x491ed5
movzx eax, cl
lea ebx, [eax - 0x5d]
cmp ebx, 0x17
ja case.default.0x491cf5
jmp dword [ebx*4 + 0x50148c]
cmp eax, 0x22
je 0x49230e
test dl, 1
jne 0x491d36
mov edx, dword [ebp + 0x10]
test dl, 0x10
jne 0x491d5a
test dl, 8
je 0x491e40
mov ecx, edi
call dbg.skip_spaces_and_comments
mov esi, dword [esp]
test al, al
mov edx, dword [esp + 8]
jne 0x491b52
jmp 0x491936
inc esi
nop word [eax + eax]
mov dword [esp], esi
movzx eax, byte [esi]
inc esi
test byte [eax + 0x4fdfe6], 1
jne 0x491d40
dec esi
mov edx, dword [esp + 8]
jmp 0x491b52
cmp cl, 0x49
je 0x491d69
cmp eax, 0x69
je 0x491d69
cmp eax, 0x4e
jne 0x491d12
mov eax, dword [esp + 0x10]
add eax, 0x10
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x80]
jae 0x495120
movzx eax, cl
add eax, 0xffffffb7
cmp eax, 0x25
ja case.0x4889e0.74
inc dword [esp + 0x54]
jmp dword [eax*4 + 0x50163c]
movzx eax, byte [esi + 1]
or eax, 0x20
cmp eax, 0x6e
jne 0x493642
movzx eax, byte [esi + 2]
or eax, 0x20
cmp eax, 0x66
jne 0x493642
lea eax, [esi + 3]
movzx ecx, byte [esi + 3]
or ecx, 0x20
cmp ecx, 0x69
jne 0x491dfd
movzx ecx, byte [esi + 4]
or ecx, 0x20
cmp ecx, 0x6e
jne 0x491dfd
movzx ecx, byte [esi + 5]
or ecx, 0x20
cmp ecx, 0x69
jne 0x491dfd
movzx ecx, byte [esi + 6]
or ecx, 0x20
cmp ecx, 0x74
jne 0x491dfd
movzx ecx, byte [esi + 7]
or ecx, 0x20
cmp ecx, 0x79
jne 0x491dfd
lea eax, [esi + 8]
mov dword [esp], eax
cmp dword [esp + 0x28], 0
je 0x493a85
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
test ecx, ecx
je 0x491e18
mov byte [ecx], 0
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
sub eax, esi
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
shl eax, 8
or eax, 1
mov edx, dword [esp + 0x10]
mov dword [edx + 4], ecx
mov dword [edx], eax
mov dword [edx + 8], esi
jmp 0x492bdf
mov eax, edx
jmp 0x4969f2
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], eax
mov edi, dword [esp + 0x54]
jmp 0x491a69
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], eax
mov edi, dword [esp + 0x54]
inc esi
mov dword [esp], esi
mov eax, edi
shl edi, 8
mov ebx, dword [esp + 0x74]
movzx ecx, byte [ebx]
or ecx, edi
shr eax, 0x18
add ecx, 0x100
adc eax, 0
mov dword [ebx], ecx
mov dword [ebx + 4], eax
mov ecx, ebx
mov ebx, dword [esp + 0x20]
add ebx, 0x10
cmp ebx, dword [esp + 0x80]
jae 0x492c2b
mov edi, dword [esp + 0x2c]
mov dword [ebx + 4], 0
mov dword [ebx], 7
mov eax, ebx
sub eax, ecx
mov dword [ebx + 8], eax
mov eax, ebx
mov dword [esp + 0x54], 0
cmp byte [esi], 0xa
jne 0x491ec8
inc esi
mov dword [esp], esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], edi
jmp 0x496181
mov eax, dword [esp + 0x10]
add eax, 0x10
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x80]
jae 0x492ca0
mov eax, dword [ebp + 0x10]
inc dword [esp + 0x54]
mov dword [esp + 0x9c], 0
test al, al
sets al
mov ecx, dword [esp + 0x48]
xor cl, 1
or cl, al
je 0x493558
movzx eax, byte [esi]
xor ebx, ebx
mov byte [esp + 0x24], al
cmp al, 0x2d
sete bl
lea edx, [esi + ebx]
movzx eax, byte [esi + ebx]
test byte [eax + 0x4fe4d8], 2
mov dword [esp + 0x20], edx
je 0x492d27
add eax, 0xffffffd0
movzx ecx, byte [edx + 1]
lea edi, [ecx - 0x30]
cmp edi, 9
ja 0x492d80
mov ecx, 0xa
imul ecx
mov ebx, edx
add eax, edi
adc ebx, 0
mov edx, dword [esp + 0x20]
movzx edx, byte [edx + 2]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x492dda
mul ecx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, edi
adc ebx, edx
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ecx + 3]
lea edi, [ecx - 0x30]
cmp edi, 9
ja 0x492e26
mov ecx, 0xa
mul ecx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, edi
adc ebx, edx
mov edx, dword [esp + 0x20]
movzx edx, byte [edx + 4]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x492e72
mul ecx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, edi
adc ebx, edx
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ecx + 5]
lea edi, [ecx - 0x30]
cmp edi, 9
ja 0x492ebe
mov ecx, 0xa
mul ecx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, edi
adc ebx, edx
mov edx, dword [esp + 0x20]
movzx edx, byte [edx + 6]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x492f0a
mul ecx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, edi
adc ebx, edx
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ecx + 7]
lea edi, [ecx - 0x30]
cmp edi, 9
ja 0x492f56
mov ecx, 0xa
mul ecx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, edi
adc ebx, edx
mov edx, dword [esp + 0x20]
movzx edx, byte [edx + 8]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x492fa2
mul ecx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, edi
adc ebx, edx
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ecx + 9]
lea edi, [ecx - 0x30]
cmp edi, 9
ja 0x492fee
mov ecx, 0xa
mul ecx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, edi
adc ebx, edx
mov edx, dword [esp + 0x20]
movzx edx, byte [edx + 0xa]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x49303a
mul ecx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, edi
adc ebx, edx
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ecx + 0xb]
lea edi, [ecx - 0x30]
cmp edi, 9
ja 0x493086
mov ecx, 0xa
mul ecx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, edi
adc ebx, edx
mov edx, dword [esp + 0x20]
movzx edx, byte [edx + 0xc]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x4930d2
mul ecx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, edi
adc ebx, edx
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ecx + 0xd]
lea edi, [ecx - 0x30]
cmp edi, 9
ja 0x49311e
mov ecx, 0xa
mul ecx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, edi
adc ebx, edx
mov edx, dword [esp + 0x20]
movzx edx, byte [edx + 0xe]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x49316a
mul ecx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, edi
adc ebx, edx
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ecx + 0xf]
lea edi, [ecx - 0x30]
cmp edi, 9
ja 0x4931b6
mov ecx, 0xa
mul ecx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, edi
adc ebx, edx
mov edx, dword [esp + 0x20]
movzx edx, byte [edx + 0x10]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x493202
mul ecx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, edi
adc ebx, edx
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ecx + 0x11]
lea edi, [ecx - 0x30]
cmp edi, 9
ja 0x49324e
mov ecx, 0xa
mul ecx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, edi
adc ebx, edx
mov edx, dword [esp + 0x20]
movzx edx, byte [edx + 0x12]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x493296
mul ecx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, edi
mov dword [esp + 0x1c], eax
adc ebx, edx
mov edx, dword [esp + 0x20]
lea eax, [edx + 0x13]
mov dword [esp + 4], eax
movzx ecx, byte [edx + 0x13]
movzx edi, cl
movzx eax, byte [edi + 0x4fe4d8]
test al, 0x33
je 0x49258c
mov dword [esp + 0x34], ecx
test al, 3
je 0x4921cf
movzx ecx, byte [edx + 0x14]
test byte [ecx + 0x4fe4d8], 0x33
je 0x492654
xor edi, edi
test al, 0x20
jne 0x4925f7
mov dword [esp + 0x18], 0
cmp byte [esp + 0x34], 0x2e
jne 0x492717
movzx ecx, byte [edx + 0x14]
add edx, 0x14
mov eax, edx
test byte [ecx + 0x4fe4d8], 3
je 0x495e2c
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x18], ecx
jmp 0x49271b
mov eax, dword [esp + 0x10]
add eax, 0x10
cmp eax, dword [esp + 0x80]
jae 0x4932f6
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 8]
cmp dword [esi], 0x65757274
jne 0x4934b9
inc dword [esp + 0x54]
mov dword [eax + 4], 0
mov dword [esp + 0x10], eax
mov dword [eax], 0xb
add esi, 4
jmp 0x492302
mov eax, dword [esp + 0x10]
add eax, 0x10
cmp eax, dword [esp + 0x80]
mov dword [esp + 0x10], eax
jae 0x493385
mov edx, dword [esp + 8]
inc dword [esp + 0x54]
mov eax, dword [esi]
cmp eax, 0x6c6c756e
jne 0x4934c2
mov eax, dword [esp + 0x10]
mov dword [eax + 4], 0
mov dword [eax], 2
add esi, 4
mov dword [esp], esi
jmp 0x495eaf
lea edi, [esi + 1]
mov dword [esp], edi
cmp dword [esp + 0x54], 0
jne 0x49340a
xor ebx, ebx
mov edx, dword [esp + 8]
mov esi, dword [esp + 0x74]
jmp 0x495f3e
mov eax, dword [esp + 0x10]
add eax, 0x10
cmp eax, dword [esp + 0x80]
jae 0x49342e
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 8]
cmp dword [esi + 1], 0x65736c61
jne 0x4934b9
inc dword [esp + 0x54]
mov dword [eax + 4], 0
mov dword [esp + 0x10], eax
mov dword [eax], 3
add esi, 5
mov dword [esp], esi
mov dword [esp + 0x2c], edi
jmp 0x495eaf
mov eax, dword [esp + 0x10]
add eax, 0x10
cmp eax, dword [esp + 0x80]
mov dword [esp + 0x10], eax
jae 0x493583
inc dword [esp + 0x54]
inc esi
mov eax, esi
mov ebx, 0xd
movzx edx, byte [eax]
test byte [edx + 0x4fdfe6], 0xc
jne 0x4924e4
add eax, 8
mov edi, eax
nop word [eax + eax]
movzx edx, byte [edi - 7]
test byte [edx + 0x4fdfe6], 0xc
jne 0x49244f
movzx edx, byte [edi - 6]
test byte [edx + 0x4fdfe6], 0xc
jne 0x492454
movzx edx, byte [edi - 5]
test byte [edx + 0x4fdfe6], 0xc
jne 0x492459
movzx edx, byte [edi - 4]
test byte [edx + 0x4fdfe6], 0xc
jne 0x49245e
movzx edx, byte [edi - 3]
test byte [edx + 0x4fdfe6], 0xc
jne 0x492463
movzx edx, byte [edi - 2]
test byte [edx + 0x4fdfe6], 0xc
jne 0x492468
movzx edx, byte [edi - 1]
test byte [edx + 0x4fdfe6], 0xc
jne 0x49246d
movzx edx, byte [edi]
test byte [edx + 0x4fdfe6], 0xc
jne 0x49248f
movzx edx, byte [edi + 1]
test byte [edx + 0x4fdfe6], 0xc
jne 0x492470
movzx edx, byte [edi + 2]
test byte [edx + 0x4fdfe6], 0xc
jne 0x492473
movzx edx, byte [edi + 3]
test byte [edx + 0x4fdfe6], 0xc
jne 0x492478
movzx edx, byte [edi + 4]
test byte [edx + 0x4fdfe6], 0xc
jne 0x49247d
movzx edx, byte [edi + 5]
test byte [edx + 0x4fdfe6], 0xc
jne 0x492482
movzx edx, byte [edi + 6]
test byte [edx + 0x4fdfe6], 0xc
jne 0x492487
movzx edx, byte [edi + 7]
test byte [edx + 0x4fdfe6], 0xc
jne 0x49248c
movzx edx, byte [edi + 8]
add edi, 0x10
test byte [edx + 0x4fdfe6], 0xc
je 0x492350
add edi, 0xfffffff8
jmp 0x49248f
add edi, 0xfffffff9
jmp 0x49248f
add edi, 0xfffffffa
jmp 0x49248f
add edi, 0xfffffffb
jmp 0x49248f
add edi, 0xfffffffc
jmp 0x49248f
add edi, 0xfffffffd
jmp 0x49248f
add edi, 0xfffffffe
jmp 0x49248f
dec edi
jmp 0x49248f
inc edi
jmp 0x49248f
add edi, 2
jmp 0x49248f
add edi, 3
jmp 0x49248f
add edi, 4
jmp 0x49248f
add edi, 5
jmp 0x49248f
add edi, 6
jmp 0x49248f
add edi, 7
mov dword [esp + 0x20], 0
cmp dl, 0x22
je 0x49255c
test dl, dl
jns 0x49415f
mov ecx, dword [edi]
mov eax, ecx
and eax, 0xc0c0f0
cmp eax, 0x8080e0
jne 0x4924e8
mov eax, edi
mov edx, ecx
and edx, 0x200f
je 0x4924ea
cmp edx, 0x200d
je 0x4924ea
mov ecx, dword [eax + 3]
add eax, 3
mov edx, ecx
and edx, 0xc0c0f0
cmp edx, 0x8080e0
je 0x4924ba
jmp 0x4924ea
mov edi, eax
jmp 0x49248f
mov eax, edi
test cl, cl
jns 0x492332
mov edx, ecx
and edx, 0xc0e0
cmp edx, 0x80c0
jne 0x492517
mov edx, ecx
and edx, 0x1e
je 0x492517
mov ecx, dword [eax + 2]
add eax, 2
jmp 0x4924f2
mov ecx, dword [eax + 4]
add eax, 4
mov edx, ecx
and edx, 0xc0c0c0f8
cmp edx, 0x808080f0
jne 0x49253e
mov edx, ecx
and edx, 0x3007
je 0x49253e
test cl, 4
je 0x492511
and ecx, 0x3003
je 0x492511
cmp edi, eax
jne 0x492332
cmp byte [esp + 0x98], 0
je 0x4960e2
inc edi
mov eax, edi
jmp 0x492332
mov ecx, edi
mov eax, ecx
sub eax, esi
mov edx, eax
sar edx, 0x1f
shld edx, eax, 8
or edx, dword [esp + 0x20]
shl eax, 8
or eax, ebx
mov ebx, dword [esp + 0x10]
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebx + 8], esi
mov byte [ecx], 0
inc edi
mov dword [esp], edi
jmp 0x492bdf
cmp byte [esp + 0x24], 0x2d
mov edx, dword [esp + 0x1c]
jne 0x492614
mov eax, 0x80000000
mov ecx, edx
neg ecx
sbb eax, ebx
jae 0x492614
mov eax, dword [ebp + 0x10]
test al, al
js 0x493a4a
mov eax, dword [esp + 0x10]
mov dword [eax + 4], 0
movd xmm0, edx
movd xmm1, ebx
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x4fde70]
subpd xmm0, xmmword [0x4fde80]
mov dword [eax], 0x14
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
xorpd xmm1, xmmword [0x4fde90]
movlpd qword [eax + 8], xmm1
jmp 0x492648
mov eax, dword [esp + 4]
xor ecx, ecx
mov dword [esp + 0x58], 0
mov dword [esp + 0x14], 0
mov edx, ebx
jmp 0x49283c
xor eax, eax
mov ecx, edx
neg ecx
sbb eax, ebx
mov edi, edx
xor edx, edx
cmp byte [esp + 0x24], 0x2d
sete dl
lea edx, [edx*8 + 4]
mov esi, dword [esp + 0x10]
mov dword [esi], edx
cmovne eax, ebx
cmovne ecx, edi
mov dword [esi + 4], 0
mov dword [esi + 8], ecx
mov dword [esi + 0xc], eax
mov eax, dword [esp + 4]
mov dword [esp], eax
jmp 0x492bdf
add edi, 0xffffffd0
cmp dword [esp + 0x1c], 0x99999999
mov ecx, ebx
sbb ecx, 0x19999999
lea ecx, [edx + 0x14]
jb 0x492699
mov edx, 0x19999999
mov dword [esp + 0xc], ecx
mov ecx, 0x99999999
xor ecx, dword [esp + 0x1c]
xor edx, ebx
or edx, ecx
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
jne 0x4921cf
cmp edi, 5
ja 0x4921cf
mov edx, 0xa
mov eax, dword [esp + 0x1c]
mul edx
lea ebx, [ebx + ebx*4]
lea edx, [edx + ebx*2]
mov ebx, edi
sar ebx, 0x1f
add eax, edi
adc edx, ebx
cmp byte [esp + 0x24], 0x2d
jne 0x4927b4
mov ebx, dword [ebp + 0x10]
test bl, bl
js 0x493dd0
mov esi, dword [esp + 0x10]
mov dword [esi + 4], 0
movd xmm0, eax
movd xmm1, edx
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x4fde70]
subpd xmm0, xmmword [0x4fde80]
mov dword [esi], 0x14
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
xorpd xmm1, xmmword [0x4fde90]
movlpd qword [esi + 8], xmm1
mov dword [esp], ecx
jmp 0x492bdf
mov eax, dword [esp + 4]
mov dword [esp + 0xc], ebx
lea ecx, [eax + 1]
mov dword [esp + 0x20], eax
sub eax, esi
movzx ebx, byte [ecx]
movzx edx, byte [ebx + 0x4fe4d8]
inc ecx
inc eax
test dl, 3
jne 0x492728
mov byte [esp + 0x38], dl
xor edx, edx
cmp byte [esp + 0x34], 0x35
setae dl
mov edi, edx
mov edx, dword [esp + 0x1c]
add edx, edi
adc dword [esp + 0xc], 0
lea edi, [ecx - 1]
mov dword [esp + 4], edi
mov edi, dword [esp + 0x18]
test edi, edi
mov dword [esp + 0x1c], edx
je 0x492771
mov ebx, dword [esp + 4]
mov dword [esp + 4], edi
jmp 0x4927d7
mov edx, dword [ebp + 0x10]
test dl, dl
jns 0x492785
mov dh, byte [esp + 0x38]
and dh, 0x30
je 0x493e02
cmp bl, 0x2e
jne 0x4927d3
movzx eax, byte [ecx]
test byte [eax + 0x4fe4d8], 3
mov ebx, dword [esp + 4]
je 0x495e39
movzx eax, byte [ebx + 1]
inc ebx
movzx eax, byte [eax + 0x4fe4d8]
test al, 3
jne 0x49279e
mov byte [esp + 0x38], al
jmp 0x4927d7
mov esi, dword [esp + 0x10]
mov dword [esi + 4], 0
mov dword [esi], 4
mov dword [esi + 8], eax
mov dword [esi + 0xc], edx
mov dword [esp], ecx
jmp 0x492bdf
mov ebx, dword [esp + 4]
lea eax, [ebx - 1]
jmp 0x4927dd
dec eax
movzx ecx, byte [eax]
cmp ecx, 0x30
je 0x4927dc
cmp ecx, 0x2e
je 0x4927dc
mov ecx, dword [esp + 4]
mov edx, ecx
sub edx, dword [esp + 0x20]
sar edx, 0x1f
mov edi, dword [esp + 0x20]
sub ecx, edi
adc ecx, 0
adc edx, 0
cmp eax, edi
mov eax, ebx
mov edi, 0
cmovb eax, edi
mov edi, ecx
mov dword [esp + 0x58], eax
mov eax, 0
mov ecx, dword [esp + 0x20]
cmovb ecx, eax
mov eax, edx
mov edx, ecx
mov ecx, eax
mov dword [esp + 0x14], edx
mov eax, ebx
test byte [esp + 0x38], 0x20
mov edx, dword [esp + 0xc]
je 0x4928f6
mov dword [esp + 0x38], ecx
mov dword [esp + 0x20], edi
movzx ecx, byte [eax + 1]
mov edi, eax
xor eax, eax
mov dword [esp + 0x34], ecx
test byte [ecx + 0x4fe4d8], 0xc
setne al
movzx ecx, byte [edi + eax + 1]
test byte [ecx + 0x4fe4d8], 3
je 0x497ee9
mov ebx, edx
add edi, eax
mov ecx, edi
movzx edx, byte [ecx + 1]
inc ecx
inc edi
cmp edx, 0x30
je 0x492872
mov dword [esp + 0x18], edi
mov dword [esp + 0xc], ebx
xor eax, eax
test byte [edx + 0x4fe4d8], 3
je 0x4928be
xor eax, eax
xor edi, edi
add dl, 0xd0
movzx ebx, dl
mov edx, 0xa
mul edx
add edi, edi
add eax, ebx
lea ebx, [ecx + 1]
lea edi, [edi + edi*4]
adc edi, edx
movzx edx, byte [ecx + 1]
test byte [edx + 0x4fe4d8], 3
mov ecx, ebx
jne 0x492894
jmp 0x4928c2
mov ebx, ecx
xor edi, edi
mov ecx, ebx
sub ecx, dword [esp + 0x18]
cmp ecx, 0x13
jge 0x49360a
xor ecx, ecx
mov edx, eax
neg edx
sbb ecx, edi
cmp byte [esp + 0x34], 0x2d
cmovne ecx, edi
cmovne edx, eax
mov edi, dword [esp + 0x20]
add edi, edx
mov eax, dword [esp + 0x38]
adc eax, ecx
mov ecx, eax
mov edx, dword [esp + 0xc]
mov eax, 0xfffffea8
cmp eax, edi
mov eax, 0xffffffff
sbb eax, ecx
jge 0x493615
cmp edi, 0x135
sbb ecx, 0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
jge 0x493507
mov dword [esp + 0x9c], edi
test edx, 0xffe00000
jne 0x49297c
cmp edi, 0xffffffea
jl 0x49297c
cmp edi, 0x16
jg 0x49297c
movd xmm1, ecx
movd xmm0, edx
punpckldq xmm1, xmm0
punpckldq xmm1, xmmword [0x4fde70]
subpd xmm1, xmmword [0x4fde80]
movapd xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm0, xmm1
test edi, edi
mov edx, dword [esp + 8]
js 0x492be8
mulsd xmm0, qword [edi*8 + 0x4fe420]
jmp 0x492bfa
mov dword [esp + 0xc], edx
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x14], 0
sete cl
cmp edi, 0xfffffece
setge dl
cmp edi, 0x120
setl al
test cl, dl
je 0x493551
test al, al
mov ecx, dword [esp + 0x1c]
je 0x4936b1
mov eax, edi
shl eax, 4
mov dword [esp + 0x4c], eax
mov dword [esp + 0x20], edi
imul eax, edi, 0x3526a
add eax, 0xffc10000
sar eax, 0x10
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0xc]
bsr eax, edx
xor eax, 0x1f
mov edi, ecx
bsr ecx, ecx
xor ecx, 0x1f
add ecx, 0x20
test edx, edx
cmovne ecx, eax
shld edx, edi, cl
shl edi, cl
xor eax, eax
mov dword [esp + 0x34], ecx
test cl, 0x20
cmovne edx, edi
mov dword [esp + 0x38], edx
mov dword [esp + 0x44], 0
cmovne edi, eax
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx + 0x4ffb48]
mov dword [esp + 0x3c], eax
mul edi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x60], edx
mov eax, dword [ecx + 0x4ffb4c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edi
mul edi
mov edi, dword [esp + 0x38]
mov dword [esp + 0x30], edx
mov ecx, eax
mov eax, dword [esp + 0x3c]
mul edi
mov dword [esp + 0x40], edx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x4c]
mul edi
add ecx, dword [esp + 0x60]
adc eax, dword [esp + 0x30]
adc edx, 0
add ecx, dword [esp + 0x5c]
mov dword [esp + 0x60], ecx
adc eax, dword [esp + 0x40]
adc edx, 0
mov dword [esp + 0x40], eax
and eax, 0x1ff
add eax, 0xffffffff
mov ecx, 0
adc ecx, 0xffffffff
cmp eax, 0x1fe
sbb ecx, 0
jae 0x492a92
mov esi, dword [esp + 0x40]
jmp 0x492b5e
mov dword [esp + 0xa0], edx
mov dword [esp + 0x5c], ebx
mov eax, dword [esp + 0x20]
add eax, eax
mov ebx, dword [eax*8 + 0x4ffb54]
mov dword [esp + 0x30], ebx
mov eax, dword [eax*8 + 0x4ffb50]
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x50]
mul ecx
mov dword [esp + 0x20], edx
mov eax, ebx
mul ecx
mov ebx, edx
mov ecx, eax
mov eax, dword [esp + 0x70]
mul edi
mov dword [esp + 0x70], edx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x30]
mul edi
add ecx, dword [esp + 0x20]
adc ebx, 0
add ecx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x70]
adc ecx, 0
add ebx, eax
adc edx, 0
add ebx, ecx
adc edx, 0
mov dword [esp + 0x20], ebx
add ebx, dword [esp + 0x6c]
mov dword [esp + 0x70], edx
mov eax, edx
mov edx, ebx
adc eax, dword [esp + 0x60]
mov edi, ebx
add edi, 0xffffffff
mov ebx, eax
adc ebx, 0xffffffff
mov ecx, 0xfffffffd
cmp ecx, edi
mov ecx, 0xffffffff
sbb ecx, ebx
jb 0x493726
cmp edx, dword [esp + 0x6c]
mov ecx, eax
sbb ecx, dword [esp + 0x60]
setb cl
cmp edx, dword [esp + 0x20]
sbb eax, dword [esp + 0x70]
setb al
or al, cl
movzx eax, al
mov esi, dword [esp + 0x40]
add esi, eax
mov edx, dword [esp + 0xa0]
adc edx, 0
mov ebx, dword [esp + 0x5c]
xor eax, eax
cmp byte [esp + 0x24], 0x2d
sete al
mov dword [esp + 0x20], eax
xor eax, eax
test edx, edx
setns al
mov ecx, eax
shld edx, esi, cl
shl esi, cl
mov ecx, edx
mov edx, esi
and edx, 0x400
add edx, esi
adc ecx, 0
mov edi, dword [esp + 0x18]
sub edi, dword [esp + 0x34]
sub edi, eax
mov eax, ecx
shld eax, edx, 0x15
mov esi, ecx
shr esi, 0xb
cmp edx, 0x400
sbb ecx, 0
adc edi, 0
shl edi, 0x14
and esi, 0xfffff
lea edx, [edi + esi]
add edx, 0x47e00000
mov ecx, dword [esp + 0x20]
shl ecx, 0x1f
or ecx, edx
mov edx, dword [esp + 0x10]
mov dword [edx + 4], 0
mov dword [edx], 0x14
mov dword [edx + 0xc], ecx
mov dword [edx + 8], eax
mov dword [esp], ebx
mov edx, dword [esp + 8]
jmp 0x495eaf
shl edi, 3
mov eax, 0x4fe420
sub eax, edi
divsd xmm0, qword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 4], 0
mov dword [eax], 0x14
movapd xmm1, xmmword [0x4fde90]
xorpd xmm1, xmm0
cmp byte [esp + 0x24], 0x2d
je 0x492c1e
movapd xmm1, xmm0
movsd qword [eax + 8], xmm1
mov dword [esp], ebx
jmp 0x495eaf
mov dword [esp + 8], edx
mov eax, dword [esp + 0x2c]
mov edi, eax
shr edi, 1
add edi, eax
cmp edi, 0xffffffe
ja 0x489c49
mov eax, dword [esp + 0x2c]
shl eax, 4
mov ecx, edi
shl ecx, 4
mov dword [esp + 0x10], ecx
push ecx
push eax
push dword [esp + 0x10]
push dword [esp + 0x84]
call dword [esp + 0xa4]
add esp, 0x10
mov esi, dword [esp]
test eax, eax
je 0x489c49
mov ecx, dword [esp + 8]
sub ebx, ecx
add ebx, eax
mov edx, dword [esp + 0x74]
sub edx, ecx
add edx, eax
mov ecx, dword [esp + 0x10]
add ecx, eax
add ecx, 0xffffffe0
mov dword [esp + 0x80], ecx
mov ecx, edx
mov edx, eax
jmp 0x491ea1
mov eax, dword [esp + 0x2c]
mov edi, eax
shr edi, 1
add edi, eax
cmp edi, 0xffffffe
ja 0x489c49
mov eax, dword [esp + 0x2c]
shl eax, 4
mov ecx, edi
shl ecx, 4
mov dword [esp + 0x80], ecx
push ecx
push eax
push dword [esp + 0x10]
push dword [esp + 0x84]
call dword [esp + 0xa4]
add esp, 0x10
mov esi, dword [esp]
test eax, eax
je 0x489c49
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x10]
sub ebx, ecx
mov edx, dword [esp + 0x74]
sub edx, ecx
add ebx, eax
mov dword [esp + 0x10], ebx
add edx, eax
mov dword [esp + 0x74], edx
mov ecx, dword [esp + 0x80]
add ecx, eax
add ecx, 0xffffffe0
mov dword [esp + 0x80], ecx
mov dword [esp + 8], eax
mov dword [esp + 0x2c], edi
jmp 0x491eed
cmp eax, 0x30
jne 0x49519d
mov ecx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [esp + 0x18], eax
movzx edx, byte [ecx + 1]
movzx ecx, byte [edx + 0x4fe4d8]
test cl, 0x33
jne 0x4951be
xor eax, eax
cmp byte [esp + 0x24], 0x2d
sete al
lea eax, [eax*8 + 4]
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
mov dword [ecx + 4], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 8], 0
jmp 0x4932ea
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x18], eax
test byte [ecx + 0x4fe4d8], 0x30
jne 0x49521e
mov edx, dword [esp + 0x1c]
mov ecx, edx
sar ecx, 0x1f
xor eax, eax
neg edx
sbb eax, ecx
xor ebx, ebx
cmp byte [esp + 0x24], 0x2d
sete bl
lea esi, [ebx*8 + 4]
mov edi, dword [esp + 0x10]
mov dword [edi], esi
cmovne eax, ecx
cmovne edx, dword [esp + 0x1c]
mov dword [edi + 4], 0
mov dword [edi + 8], edx
mov dword [edi + 0xc], eax
jmp 0x4932ea
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 2
mov dword [esp + 0x18], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x4932b4
mov ecx, 0
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x495288
jmp 0x49283c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 3
mov dword [esp + 0x18], eax
test byte [ecx + 0x4fe4d8], 0x30
je 0x4932b4
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], 0
cmp ecx, 0x2e
mov ecx, 0
mov edx, edi
mov edi, 0
je 0x4952c7
jmp 0x49283c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 4
mov dword [esp + 0x18], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x4932b4
mov ecx, 0
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x495306
jmp 0x49283c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 5
mov dword [esp + 0x18], eax
test byte [ecx + 0x4fe4d8], 0x30
je 0x4932b4
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], 0
cmp ecx, 0x2e
mov ecx, 0
mov edx, edi
mov edi, 0
je 0x495345
jmp 0x49283c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 6
mov dword [esp + 0x18], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x4932b4
mov ecx, 0
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x495384
jmp 0x49283c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 7
mov dword [esp + 0x18], eax
test byte [ecx + 0x4fe4d8], 0x30
je 0x4932b4
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], 0
cmp ecx, 0x2e
mov ecx, 0
mov edx, edi
mov edi, 0
je 0x4953c3
jmp 0x49283c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 8
mov dword [esp + 0x18], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x4932b4
mov ecx, 0
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x495402
jmp 0x49283c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 9
mov dword [esp + 0x18], eax
test byte [ecx + 0x4fe4d8], 0x30
je 0x4932b4
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], 0
cmp ecx, 0x2e
mov ecx, 0
mov edx, edi
mov edi, 0
je 0x495441
jmp 0x49283c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 0xa
mov dword [esp + 0x18], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x4932b4
mov ecx, 0
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x495480
jmp 0x49283c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 0xb
mov dword [esp + 0x18], eax
test byte [ecx + 0x4fe4d8], 0x30
je 0x4932b4
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], 0
cmp ecx, 0x2e
mov ecx, 0
mov edx, edi
mov edi, 0
je 0x4954bf
jmp 0x49283c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 0xc
mov dword [esp + 0x18], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x4932b4
mov ecx, 0
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x4954fe
jmp 0x49283c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 0xd
mov dword [esp + 0x18], eax
test byte [ecx + 0x4fe4d8], 0x30
je 0x4932b4
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], 0
cmp ecx, 0x2e
mov ecx, 0
mov edx, edi
mov edi, 0
je 0x49553d
jmp 0x49283c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 0xe
mov dword [esp + 0x18], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x4932b4
mov ecx, 0
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x49557c
jmp 0x49283c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 0xf
mov dword [esp + 0x18], eax
test byte [ecx + 0x4fe4d8], 0x30
je 0x4932b4
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], 0
cmp ecx, 0x2e
mov ecx, 0
mov edx, edi
mov edi, 0
je 0x4955bb
jmp 0x49283c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 0x10
mov dword [esp + 0x18], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x4932b4
mov ecx, 0
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x4955fa
jmp 0x49283c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 0x11
mov dword [esp + 0x18], eax
test byte [ecx + 0x4fe4d8], 0x30
je 0x4932b4
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], 0
cmp ecx, 0x2e
mov ecx, 0
mov edx, edi
mov edi, 0
je 0x495639
jmp 0x49283c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 0x12
mov dword [esp + 0x18], eax
test byte [edx + 0x4fe4d8], 0x30
jne 0x49574d
xor eax, eax
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
neg ecx
sbb eax, edi
xor edx, edx
cmp byte [esp + 0x24], 0x2d
sete dl
lea edx, [edx*8 + 4]
mov esi, dword [esp + 0x10]
mov dword [esi], edx
cmovne eax, edi
cmovne ecx, ebx
mov dword [esi + 4], 0
mov dword [esi + 8], ecx
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x18]
mov dword [esp], eax
jmp 0x492bdf
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2c]
mov edi, eax
shr edi, 1
add edi, eax
cmp edi, 0xffffffe
ja 0x489c49
mov eax, dword [esp + 0x2c]
shl eax, 4
mov ecx, edi
shl ecx, 4
mov dword [esp + 0x80], ecx
push ecx
push eax
push dword [esp + 0x10]
push dword [esp + 0x84]
call dword [esp + 0xa4]
add esp, 0x10
mov esi, dword [esp]
test eax, eax
je 0x489c49
mov ebx, eax
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x10]
sub eax, ecx
add eax, ebx
mov edx, dword [esp + 0x74]
sub edx, ecx
add edx, ebx
mov dword [esp + 0x74], edx
mov ecx, dword [esp + 0x80]
add ecx, ebx
add ecx, 0xffffffe0
mov dword [esp + 0x80], ecx
mov edx, ebx
cmp dword [esi], 0x65757274
je 0x49223b
jmp 0x4934b9
mov eax, dword [esp + 0x2c]
mov edi, eax
shr edi, 1
add edi, eax
cmp edi, 0xffffffe
ja 0x489c49
mov eax, dword [esp + 0x2c]
shl eax, 4
mov ecx, edi
shl ecx, 4
mov dword [esp + 0x80], ecx
push ecx
push eax
push dword [esp + 0x10]
push dword [esp + 0x84]
call dword [esp + 0xa4]
add esp, 0x10
mov esi, dword [esp]
test eax, eax
je 0x489c49
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x10]
sub ebx, ecx
mov edx, dword [esp + 0x74]
sub edx, ecx
add ebx, eax
mov dword [esp + 0x10], ebx
add edx, eax
mov dword [esp + 0x74], edx
mov ecx, dword [esp + 0x80]
add ecx, eax
add ecx, 0xffffffe0
mov dword [esp + 0x80], ecx
mov edx, eax
mov dword [esp + 0x2c], edi
jmp 0x492274
mov eax, dword [ebp + 0x10]
test al, 4
jne 0x49577b
cmp byte [edi], 0x2c
je 0x4919a1
mov dword [esp], esi
cmp byte [esi], 0x2c
lea esi, [esi - 1]
jne 0x49341e
jmp 0x49199e
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2c]
mov edi, eax
shr edi, 1
add edi, eax
cmp edi, 0xffffffe
ja 0x489c49
mov eax, dword [esp + 0x2c]
shl eax, 4
mov ecx, edi
shl ecx, 4
mov dword [esp + 0x80], ecx
push ecx
push eax
push dword [esp + 0x10]
push dword [esp + 0x84]
call dword [esp + 0xa4]
add esp, 0x10
mov esi, dword [esp]
test eax, eax
je 0x489c49
mov ebx, eax
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x10]
sub eax, ecx
add eax, ebx
mov edx, dword [esp + 0x74]
sub edx, ecx
add edx, ebx
mov dword [esp + 0x74], edx
mov ecx, dword [esp + 0x80]
add ecx, ebx
add ecx, 0xffffffe0
mov dword [esp + 0x80], ecx
mov edx, ebx
cmp dword [esi + 1], 0x65736c61
je 0x4922ea
mov dword [esp + 8], edx
jmp 0x4919fd
mov dword [esp + 8], edx
mov ecx, dword [ebp + 0x10]
test cl, 0x10
je 0x4919fd
movzx ecx, al
or ecx, 0x20
cmp ecx, 0x6e
jne 0x4919fd
movzx ecx, ah
or ecx, 0x20
cmp ecx, 0x61
jne 0x4919fd
shr eax, 0x10
movzx eax, al
or eax, 0x20
cmp eax, 0x6e
je 0x49366b
jmp 0x4919fd
mov edi, ebx
movzx ebx, byte [esp + 0x24]
mov eax, dword [ebp + 0x10]
test al, al
js 0x495784
test al, 0x10
je 0x498d56
cmp bl, 0x2d
mov edx, dword [esp + 0x10]
mov dword [edx + 4], 0
mov eax, 0xfff00000
mov ecx, 0x7ff00000
cmove ecx, eax
mov dword [edx], 0x14
mov dword [edx + 0xc], ecx
mov dword [edx + 8], 0
jmp 0x492584
xor eax, eax
jmp 0x4929a6
lea eax, [esp + 0x64]
mov ecx, esp
mov edx, dword [esp + 0x28]
push eax
push dword [esp + 0x14]
push dword [ebp + 0x10]
call dbg.read_number_raw
add esp, 0xc
test al, al
mov edx, dword [esp + 8]
jne 0x495eaf
jmp 0x495e48
mov eax, dword [esp + 0x2c]
mov edi, eax
shr edi, 1
add edi, eax
cmp edi, 0xffffffe
ja 0x489c49
mov eax, dword [esp + 0x2c]
shl eax, 4
mov ecx, edi
shl ecx, 4
mov dword [esp + 0x80], ecx
push ecx
push eax
push dword [esp + 0x10]
push dword [esp + 0x84]
call dword [esp + 0xa4]
add esp, 0x10
mov esi, dword [esp]
test eax, eax
je 0x489c49
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x10]
sub ebx, ecx
mov edx, dword [esp + 0x74]
sub edx, ecx
add ebx, eax
mov dword [esp + 0x10], ebx
add edx, eax
mov dword [esp + 0x74], edx
mov ecx, dword [esp + 0x80]
add ecx, eax
add ecx, 0xffffffe0
mov dword [esp + 0x80], ecx
mov dword [esp + 8], eax
mov dword [esp + 0x2c], edi
jmp 0x492326
cmp byte [esp + 0x34], 0x2d
jne 0x493a05
xor eax, eax
cmp byte [esp + 0x24], 0x2d
sete al
mov ecx, dword [esp + 0x10]
mov dword [ecx + 4], 0
mov dword [ecx], 0x14
shl eax, 0x1f
mov dword [ecx + 0xc], eax
mov dword [ecx + 8], 0
jmp 0x492bdc
cmp cl, 0x4e
jne case.0x4889e0.74
movzx eax, byte [esi + 1]
or eax, 0x20
cmp eax, 0x61
jne case.0x4889e0.74
movzx eax, byte [esi + 2]
or eax, 0x20
cmp eax, 0x6e
jne case.0x4889e0.74
lea eax, [esi + 3]
mov dword [esp], eax
cmp dword [esp + 0x28], 0
je 0x4936a4
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
test ecx, ecx
je 0x493685
mov byte [ecx], 0
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
mov dword [eax + 4], 0
mov dword [eax], 0x301
mov dword [eax + 8], esi
jmp 0x492bdf
movapd xmm0, xmmword [0x4fdea0]
jmp 0x493a8d
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0xc]
bsr eax, ebx
xor eax, 0x1f
mov edx, ecx
bsr ecx, ecx
xor ecx, 0x1f
add ecx, 0x20
test ebx, ebx
cmovne ecx, eax
shld ebx, edx, cl
xor eax, eax
shl edx, cl
mov dword [esp + 0x34], ecx
test cl, 0x20
cmovne ebx, edx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x44], 0
cmovne edx, eax
mov dword [esp + 0x50], edx
imul eax, edi, 0x3526a
shl edi, 4
add eax, 0xffc10000
sar eax, 0x10
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x4ffb4c]
mov dword [esp + 0x4c], eax
mov eax, dword [edi + 0x4ffb48]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x4ffb54]
mov dword [esp + 0x30], eax
xor ebx, ebx
cmp dword [esp + 0x14], 0
setne bl
shl ebx, 2
xor eax, eax
mov ecx, dword [esp + 0x34]
shld eax, ebx, cl
shl ebx, cl
xor edx, edx
test cl, 0x20
cmovne eax, ebx
mov dword [esp + 0x20], eax
cmovne ebx, edx
mov dword [esp + 0x40], ebx
mov ecx, dword [esp + 0x30]
shr ecx, 0x1f
add ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x4c]
adc ebx, 0
mov eax, ecx
mov edi, dword [esp + 0x50]
mul edi
mov eax, ecx
imul eax, dword [esp + 0x44]
add edx, eax
mov dword [esp + 0x4c], edx
mov eax, ebx
mul edi
mov edi, eax
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x44]
imul eax, ebx
mov dword [esp + 0x60], eax
mov eax, ecx
mul dword [esp + 0x38]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x30], edx
mov eax, ecx
mov ecx, dword [esp + 0x44]
imul eax, ecx
mov dword [esp + 0x50], eax
mov eax, ebx
mul dword [esp + 0x38]
mov dword [esp + 0x38], eax
imul ecx, ebx
mov ebx, ecx
add edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x3c]
adc ecx, dword [esp + 0x60]
add edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x30]
adc eax, dword [esp + 0x50]
add ecx, dword [esp + 0x38]
adc edx, ebx
add ecx, eax
adc edx, 0
shr edi, 0x1f
add edi, ecx
adc edx, 0
xor ebx, ebx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x20]
or eax, ecx
sete bl
xor ebx, 9
add ebx, dword [esp + 0x40]
adc ecx, 0
mov dword [esp + 0x20], ecx
bsr eax, edx
xor eax, 0x1f
bsr ecx, edi
xor ecx, 0x1f
add ecx, 0x20
test edx, edx
cmovne ecx, eax
shld edx, edi, cl
mov eax, ecx
add eax, dword [esp + 0x34]
sub dword [esp + 0x18], eax
shl edi, cl
mov eax, dword [esp + 0x20]
shld eax, ebx, cl
shl ebx, cl
add dword [esp + 0x18], 0x40
test cl, 0x20
cmovne edx, edi
mov ecx, 0
cmovne edi, ecx
mov dword [esp + 0x34], edi
cmovne eax, ebx
mov dword [esp + 0x20], eax
mov edi, 0
cmovne ebx, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], ebx
mov ebx, 0xb
cmp ecx, 0xfffffbc2
jle 0x493a9a
mov dword [esp + 0x50], ebx
mov eax, edx
mov ecx, ebx
shr edx, cl
test bl, 0x20
mov ecx, edx
mov edi, 0
cmovne ecx, edi
mov dword [esp + 0x4c], ecx
mov edi, dword [esp + 0x34]
mov ecx, ebx
shrd edi, eax, cl
test bl, 0x20
cmovne edi, edx
mov dword [esp + 0x3c], edi
mov edx, 0xffffffff
mov ecx, ebx
shl edx, cl
test bl, 0x20
mov ecx, 0xffffffff
mov edi, edx
cmove edx, ecx
mov ecx, 0
cmovne edi, ecx
not edi
and edi, dword [esp + 0x34]
not edx
and edx, eax
shld edx, edi, 3
mov ecx, ebx
dec cl
mov eax, 8
xor ebx, ebx
shld ebx, eax, cl
shl eax, cl
shl edi, 3
test cl, 0x20
cmovne ebx, eax
mov dword [esp + 0x34], 0
mov ecx, 0
cmovne eax, ecx
mov dword [esp + 0x44], eax
add eax, dword [esp + 0x38]
mov dword [esp + 0x30], ebx
adc ebx, dword [esp + 0x20]
mov dword [esp + 0x60], edi
mov dword [esp + 0x6c], eax
cmp edi, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x40], edx
mov ecx, edx
mov dword [esp + 0x70], ebx
sbb ecx, ebx
setae cl
movzx edi, cl
add edi, dword [esp + 0x3c]
adc eax, 0
mov ecx, edi
or ecx, eax
mov ecx, 0
mov edx, dword [esp + 0x18]
je 0x49399e
add edx, dword [esp + 0x50]
bsr ebx, eax
xor ebx, 0x1f
bsr ecx, edi
xor ecx, 0x1f
add ecx, 0x20
test eax, eax
cmovne ecx, ebx
shld eax, edi, cl
shl edi, cl
xor ebx, ebx
test cl, 0x20
cmovne eax, edi
cmove ebx, edi
sub edx, ecx
cmp edx, 0x3c0
jg 0x493b0d
shrd ebx, eax, 0xb
shr eax, 0xb
cmp edx, 0xfffffbc2
jle 0x493d9b
shl edx, 0x14
and eax, 0xfffff
add eax, edx
add eax, 0x43e00000
mov dword [esp + 0x34], eax
xor eax, 0x7ff00000
or eax, ebx
mov ecx, ebx
je 0x493b0d
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x44]
sub eax, dword [esp + 0x38]
mov edx, dword [esp + 0x30]
sbb edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x60]
cmp eax, ecx
mov eax, dword [esp + 0x40]
sbb edx, eax
jae 0x4939ce
cmp ecx, dword [esp + 0x6c]
sbb eax, dword [esp + 0x70]
jb 0x493b52
xor eax, eax
cmp byte [esp + 0x24], 0x2d
sete al
mov ecx, dword [esp + 0x10]
mov dword [ecx + 4], 0
mov dword [ecx], 0x14
shl eax, 0x1f
mov edx, dword [esp + 0x34]
or edx, eax
mov eax, dword [esp + 0x18]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
mov edi, dword [esp + 0x5c]
jmp 0x492584
mov eax, dword [ebp + 0x10]
test al, al
js 0x49579a
test al, 0x10
je 0x498d56
cmp byte [esp + 0x24], 0x2d
mov edx, dword [esp + 0x10]
mov dword [edx + 4], 0
mov eax, 0xfff00000
mov ecx, 0x7ff00000
cmove ecx, eax
mov dword [edx], 0x14
mov dword [edx + 0xc], ecx
mov dword [edx + 8], 0
jmp 0x492bdc
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
test eax, eax
je 0x493a57
mov byte [eax], 0
mov edi, dword [esp + 4]
mov eax, edi
sub eax, esi
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
mov edx, dword [esp + 0x10]
mov dword [edx + 4], ecx
shl eax, 8
or eax, 1
mov dword [edx], eax
mov dword [edx + 8], esi
mov eax, dword [esp + 0x28]
mov dword [eax], edi
jmp 0x492584
movapd xmm0, xmmword [0x4fdeb0]
mov eax, dword [esp + 0x10]
movupd xmmword [eax], xmm0
jmp 0x492bdf
lea eax, [ecx + 0x472]
cmp ecx, 0xfffffb8f
cmovb eax, edi
mov ebx, 0x40
sub ebx, eax
lea ecx, [eax - 0x44]
cmp ecx, 0xffffffbf
ja 0x49386a
mov ecx, 4
sub ecx, eax
mov eax, dword [esp + 0x34]
shrd eax, edx, cl
shr edx, cl
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x38]
shrd ebx, edi, cl
shr edi, cl
add dword [esp + 0x18], ecx
test cl, 0x20
cmovne eax, edx
mov dword [esp + 0x34], eax
mov eax, 0
cmovne edx, eax
cmovne ebx, edi
cmovne edi, eax
add ebx, 9
mov dword [esp + 0x38], ebx
adc edi, 0
mov dword [esp + 0x20], edi
mov ebx, 0x3c
jmp 0x49386a
mov eax, dword [ebp + 0x10]
test al, al
js 0x495820
test al, 0x10
je 0x498e2b
cmp byte [esp + 0x24], 0x2d
mov edx, dword [esp + 0x10]
mov dword [edx + 4], 0
mov dword [edx], 0x14
mov eax, 0xfff00000
mov ecx, 0x7ff00000
cmove ecx, eax
mov dword [edx + 0xc], ecx
mov dword [edx + 8], 0
jmp 0x4939fc
xor eax, eax
mov ecx, 0xffffffff
add ecx, 1
mov dword [esp + 0x20], ecx
adc eax, 0xfffff
mov ebx, dword [esp + 0x34]
mov edi, ebx
and edi, 0xfffff
or edi, eax
mov edx, ebx
shr edx, 0x14
add edx, 0xfffffbcc
mov ecx, dword [esp + 0x18]
cmp ecx, dword [esp + 0x20]
mov ecx, ebx
sbb ecx, eax
mov eax, 0xfffffbcd
cmovae eax, edx
mov dword [esp + 0x6c], eax
cmovb edi, ebx
mov eax, dword [esp + 0x18]
shld edi, eax, 1
lea ebx, [eax*2 + 1]
lea eax, [esp + 0x9c]
lea ecx, [esp + 0xc0]
mov edx, dword [esp + 0x1c]
push dword [esp + 4]
push dword [esp + 0x5c]
push dword [esp + 0x1c]
push eax
push dword [esp + 0x1c]
call dbg.bigint_set_buf
add esp, 0x14
lea eax, [esp + 0x2d0]
mov dword [esp + 0x70], eax
mov dword [esp + 0x2d0], ebx
mov dword [esp + 0x2d4], edi
mov eax, dword [esp + 0x9c]
test eax, eax
js 0x493e3c
cmp eax, 0x13
jb 0x493ff2
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x14], ecx
jmp 0x493c25
mov ecx, dword [esp + 0x44]
lea eax, [ecx - 0x13]
cmp ecx, 0x25
jle 0x493fe7
mov dword [esp + 0x44], eax
cmp dword [esp + 0x14], 0
je 0x493c4b
xor ebx, ebx
mov eax, dword [esp + ebx*8 + 0xc8]
or eax, dword [esp + ebx*8 + 0xcc]
jne 0x493c4d
inc ebx
cmp dword [esp + 0x14], ebx
jne 0x493c32
jmp 0x493c15
xor ebx, ebx
cmp ebx, dword [esp + 0x14]
jae 0x493c15
mov dword [esp + 0x38], 0
mov dword [esp + 0x4c], 0
mov eax, dword [esp + ebx*8 + 0xc8]
mov dword [esp + 0xc], eax
mov ecx, 0x89e80000
mul ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x3c], edx
xor ecx, ecx
mov edx, 0x89e80000
add edx, 0xdf2304
mov dword [esp + 0x60], edx
setb cl
mov eax, dword [esp + 0xc]
mul edx
mov dword [esp + 4], eax
mov dword [esp + 0x1c], edx
mov edi, dword [esp + ebx*8 + 0xcc]
mov eax, edi
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x58], edx
mov eax, dword [esp + 0xc]
imul eax, ecx
mov dword [esp + 0x30], eax
mov eax, edi
mul dword [esp + 0x60]
mov dword [esp + 0xc], eax
imul ecx, edi
mov eax, dword [esp + 4]
add eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x1c]
adc edi, dword [esp + 0x30]
add eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
adc eax, 0
add edi, dword [esp + 0xc]
adc edx, ecx
add edi, eax
mov dword [esp + 0x1c], edi
adc edx, 0
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x20]
and eax, 0xfff80000
mov ecx, dword [esp + 0x38]
add eax, ecx
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x4c]
mov edi, dword [esp + 4]
adc edi, edx
setb byte [esp + 4]
cmp eax, ecx
mov ecx, edi
sbb ecx, edx
mov dword [esp + ebx*8 + 0xcc], edi
setb cl
or cl, byte [esp + 4]
movzx eax, cl
add eax, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x20]
mov dword [esp + ebx*8 + 0xc8], eax
mov edx, dword [esp + 0xc]
adc edx, 0
mov dword [esp + 0x4c], edx
inc ebx
cmp dword [esp + 0x14], ebx
jne 0x493c63
mov eax, dword [esp + 0x38]
or eax, dword [esp + 0x4c]
je 0x493c15
mov ecx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov edx, dword [esp + 0x38]
mov dword [esp + ecx*8 + 0xc8], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + ecx*8 + 0xcc], edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x14], eax
jmp 0x493c15
xor ecx, ecx
mov dword [esp + 0x34], 0
cmp edx, 0xfffffb8f
jb 0x49399e
mov cl, 0xc3
sub cl, dl
shrd ebx, eax, cl
shr eax, cl
xor edi, edi
test cl, 0x20
cmovne ebx, eax
cmove edi, eax
mov dword [esp + 0x34], edi
mov ecx, ebx
jmp 0x49399e
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
test eax, eax
je 0x493ddd
mov byte [eax], 0
mov eax, ecx
sub eax, esi
mov edx, eax
sar edx, 0x1f
shld edx, eax, 8
mov edi, dword [esp + 0x10]
mov dword [edi + 4], edx
shl eax, 8
or eax, 1
mov dword [edi], eax
mov dword [edi + 8], esi
mov eax, dword [esp + 0x28]
jmp 0x493e32
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
test ecx, ecx
je 0x493e0f
mov byte [ecx], 0
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
mov edx, dword [esp + 0x10]
mov dword [edx + 4], ecx
shl eax, 8
or eax, 1
mov dword [edx], eax
mov dword [edx + 8], esi
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 4]
mov dword [eax], ecx
mov dword [esp], ecx
jmp 0x492bdf
neg eax
mov dword [esp + 0x50], 1
cmp eax, 0x13
jb 0x494702
mov dword [esp + 0x50], 1
mov dword [esp + 0x14], 1
jmp 0x493e71
mov ecx, dword [esp + 0x44]
lea eax, [ecx - 0x13]
cmp ecx, 0x25
jle 0x4946e7
mov dword [esp + 0x44], eax
cmp dword [esp + 0x14], 0
je 0x493e97
xor ebx, ebx
mov eax, dword [esp + ebx*8 + 0x2d0]
or eax, dword [esp + ebx*8 + 0x2d4]
jne 0x493e99
inc ebx
cmp dword [esp + 0x14], ebx
jne 0x493e7e
jmp 0x493e61
xor ebx, ebx
cmp ebx, dword [esp + 0x14]
jae 0x493e61
mov dword [esp + 0x38], 0
mov dword [esp + 0x4c], 0
mov eax, dword [esp + ebx*8 + 0x2d0]
mov dword [esp + 0xc], eax
mov ecx, 0x89e80000
mul ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x3c], edx
xor ecx, ecx
mov edx, 0x89e80000
add edx, 0xdf2304
mov dword [esp + 0x60], edx
setb cl
mov eax, dword [esp + 0xc]
mul edx
mov dword [esp + 4], eax
mov dword [esp + 0x1c], edx
mov edi, dword [esp + ebx*8 + 0x2d4]
mov eax, edi
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x58], edx
mov eax, dword [esp + 0xc]
imul eax, ecx
mov dword [esp + 0x30], eax
mov eax, edi
mul dword [esp + 0x60]
mov dword [esp + 0xc], eax
imul ecx, edi
mov eax, dword [esp + 4]
add eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x1c]
adc edi, dword [esp + 0x30]
add eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
adc eax, 0
add edi, dword [esp + 0xc]
adc edx, ecx
add edi, eax
mov dword [esp + 0x1c], edi
adc edx, 0
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x20]
and eax, 0xfff80000
mov ecx, dword [esp + 0x38]
add eax, ecx
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x4c]
mov edi, dword [esp + 4]
adc edi, edx
setb byte [esp + 4]
cmp eax, ecx
mov ecx, edi
sbb ecx, edx
mov dword [esp + ebx*8 + 0x2d4], edi
setb cl
or cl, byte [esp + 4]
movzx eax, cl
add eax, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x20]
mov dword [esp + ebx*8 + 0x2d0], eax
mov edx, dword [esp + 0xc]
adc edx, 0
mov dword [esp + 0x4c], edx
inc ebx
cmp dword [esp + 0x14], ebx
jne 0x493eaf
mov eax, dword [esp + 0x38]
or eax, dword [esp + 0x4c]
je 0x493e61
mov ecx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov edx, dword [esp + 0x38]
mov dword [esp + ecx*8 + 0x2d0], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + ecx*8 + 0x2d4], edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x14], eax
jmp 0x493e61
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x60], 1
test eax, eax
je 0x49484c
mov ecx, dword [eax*8 + 0x500f9c]
mov dword [esp + 0x30], ecx
mov eax, dword [eax*8 + 0x500f98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc0]
xor ecx, ecx
mov dword [esp + 0x38], eax
test eax, eax
je 0x494047
xor ecx, ecx
mov eax, dword [esp + ecx*8 + 0xc8]
or eax, dword [esp + ecx*8 + 0xcc]
jne 0x494047
inc ecx
cmp dword [esp + 0x38], ecx
jne 0x49402b
jmp 0x49484c
cmp ecx, dword [esp + 0x38]
jae 0x49484c
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], 0
mov ebx, dword [esp + ecx*8 + 0xc8]
mov eax, ebx
mul dword [esp + 4]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x20], eax
mov eax, ebx
mov ebx, dword [esp + 0x30]
mul ebx
mov edi, eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + ecx*8 + 0xcc]
mov dword [esp + 0x40], eax
mul dword [esp + 4]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x40]
mul ebx
mov dword [esp + 0x40], eax
add edi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x1c]
adc ebx, 0
add edi, dword [esp + 0x58]
mov eax, dword [esp + 0x3c]
adc eax, 0
add ebx, dword [esp + 0x40]
adc edx, 0
add ebx, eax
mov dword [esp + 0x1c], ebx
adc edx, 0
mov dword [esp + 0x4c], edx
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x20]
add eax, ebx
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x14]
adc edi, edx
setb byte [esp + 0x3c]
cmp eax, ebx
mov ebx, edi
sbb ebx, edx
mov dword [esp + ecx*8 + 0xcc], edi
setb ah
or ah, byte [esp + 0x3c]
movzx eax, ah
add eax, dword [esp + 0x1c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
mov dword [esp + ecx*8 + 0xc8], eax
mov edx, dword [esp + 0x4c]
adc edx, 0
mov dword [esp + 0x14], edx
inc ecx
cmp dword [esp + 0x38], ecx
jne 0x494061
mov eax, dword [esp + 0xc]
or eax, dword [esp + 0x14]
je 0x49484c
mov ecx, dword [esp + 0x38]
lea eax, [ecx + 1]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x14]
mov dword [esp + ecx*8 + 0xcc], eax
mov eax, dword [esp + 0xc]
mov dword [esp + ecx*8 + 0xc8], eax
jmp 0x49484c
mov ecx, edi
cmp dl, 0x5c
jne 0x4945b0
movzx edx, byte [edi + 1]
add edx, 0xffffffde
cmp edx, 0x53
ja case.0x4985cd.35
jmp dword [edx*4 + 0x5014ec]
mov byte [ecx], 0x22
jmp 0x494253
mov byte [ecx], 0xa
jmp 0x494253
mov byte [ecx], 0x2f
jmp 0x494253
mov byte [ecx], 8
jmp 0x494253
movzx eax, byte [edi + 2]
movzx edx, byte [eax + 0x4fe25d]
movzx eax, byte [edi + 3]
movzx ebx, byte [eax + 0x4fe25d]
movzx eax, byte [edi + 4]
movzx eax, byte [eax + 0x4fe25d]
mov dword [esp + 0x1c], eax
movzx eax, byte [edi + 5]
movzx eax, byte [eax + 0x4fe25d]
shl edx, 8
add edx, dword [esp + 0x1c]
shl ebx, 8
or ebx, eax
mov dword [esp + 0x1c], ebx
mov eax, ebx
or eax, edx
test eax, 0xf0f0
jne 0x4960f7
shl edx, 4
mov eax, dword [esp + 0x1c]
or eax, edx
lea edx, [edi + 6]
mov dword [esp + 0x1c], eax
and eax, 0xf800
cmp eax, 0xd800
je 0x4945e0
movzx eax, word [esp + 0x1c]
cmp eax, 0x800
jb 0x49425b
shr eax, 0xc
or al, 0xe0
mov byte [ecx], al
mov ebx, dword [esp + 0x1c]
mov eax, ebx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [ecx + 1], al
and bl, 0x3f
or bl, 0x80
mov byte [ecx + 2], bl
add ecx, 3
jmp 0x49428e
mov byte [ecx], 0x5c
jmp 0x494253
mov byte [ecx], 0xd
jmp 0x494253
mov byte [ecx], 0xc
jmp 0x494253
mov byte [ecx], 9
inc ecx
add edi, 2
mov edx, edi
jmp 0x49428e
cmp eax, 0x80
jb 0x49427d
mov ebx, dword [esp + 0x1c]
mov eax, ebx
shr eax, 6
or al, 0xc0
mov byte [ecx], al
and bl, 0x3f
or bl, 0x80
mov byte [ecx + 1], bl
add ecx, 2
jmp 0x49428e
mov eax, dword [esp + 0x1c]
mov byte [ecx], al
inc ecx
jmp 0x49428e
cmp edi, edx
je 0x494593
movzx eax, byte [edx]
test byte [eax + 0x4fdfe6], 0xc
jne 0x4944d4
movzx eax, byte [edx + 1]
test byte [eax + 0x4fdfe6], 0xc
jne 0x4945a3
movzx eax, byte [edx + 2]
test byte [eax + 0x4fdfe6], 0xc
jne 0x4943b0
movzx eax, byte [edx + 3]
test byte [eax + 0x4fdfe6], 0xc
jne 0x4943c1
movzx eax, byte [edx + 4]
test byte [eax + 0x4fdfe6], 0xc
jne 0x4943d0
movzx eax, byte [edx + 5]
test byte [eax + 0x4fdfe6], 0xc
jne 0x4943df
movzx eax, byte [edx + 6]
test byte [eax + 0x4fdfe6], 0xc
jne 0x4943f6
movzx eax, byte [edx + 7]
test byte [eax + 0x4fdfe6], 0xc
jne 0x49440d
movzx eax, byte [edx + 8]
test byte [eax + 0x4fdfe6], 0xc
jne 0x494420
movzx eax, byte [edx + 9]
test byte [eax + 0x4fdfe6], 0xc
jne 0x494433
movzx eax, byte [edx + 0xa]
test byte [eax + 0x4fdfe6], 0xc
jne 0x49444e
movzx eax, byte [edx + 0xb]
test byte [eax + 0x4fdfe6], 0xc
jne 0x494466
movzx eax, byte [edx + 0xc]
test byte [eax + 0x4fdfe6], 0xc
jne 0x49447c
movzx eax, byte [edx + 0xd]
test byte [eax + 0x4fdfe6], 0xc
jne 0x494492
movzx eax, byte [edx + 0xe]
test byte [eax + 0x4fdfe6], 0xc
jne 0x4944b0
movzx eax, byte [edx + 0xf]
test byte [eax + 0x4fdfe6], 0xc
movupd xmm0, xmmword [edx]
movupd xmmword [ecx], xmm0
jne 0x4944ce
add edx, 0x10
add ecx, 0x10
jmp 0x49428e
movzx eax, word [edx]
add edx, 2
mov word [ecx], ax
add ecx, 2
jmp 0x4944d4
mov eax, dword [edx]
add edx, 3
mov dword [ecx], eax
add ecx, 3
jmp 0x4944d4
mov eax, dword [edx]
add edx, 4
mov dword [ecx], eax
add ecx, 4
jmp 0x4944d4
lea edi, [edx + 5]
mov eax, dword [edx]
mov dword [ecx], eax
movzx eax, word [edx + 4]
mov word [ecx + 4], ax
add ecx, 5
jmp 0x4944d6
lea edi, [edx + 6]
mov eax, dword [edx]
mov dword [ecx], eax
movzx eax, word [edx + 4]
mov word [ecx + 4], ax
add ecx, 6
jmp 0x4944d6
movsd xmm0, qword [edx]
add edx, 7
movsd qword [ecx], xmm0
add ecx, 7
jmp 0x4944d4
movsd xmm0, qword [edx]
add edx, 8
movsd qword [ecx], xmm0
add ecx, 8
jmp 0x4944d4
lea edi, [edx + 9]
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
movzx eax, word [edx + 8]
mov word [ecx + 8], ax
add ecx, 9
jmp 0x4944d6
lea edi, [edx + 0xa]
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
movzx eax, word [edx + 8]
mov word [ecx + 8], ax
add ecx, 0xa
jmp 0x4944d6
lea edi, [edx + 0xb]
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
add ecx, 0xb
jmp 0x4944d6
lea edi, [edx + 0xc]
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
add ecx, 0xc
jmp 0x4944d6
lea edi, [edx + 0xd]
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
movzx eax, word [edx + 0xc]
mov word [ecx + 0xc], ax
add ecx, 0xd
jmp 0x4944d6
lea edi, [edx + 0xe]
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
movzx eax, word [edx + 0xc]
mov word [ecx + 0xc], ax
add ecx, 0xe
jmp 0x4944d6
add edx, 0xf
add ecx, 0xf
mov edi, edx
movzx edx, byte [edi]
test dl, dl
jns 0x494161
mov eax, dword [edi]
mov edx, eax
and edx, 0xc0c0f0
cmp edx, 0x8080e0
jne 0x494524
mov edx, edi
mov ebx, eax
and ebx, 0x200f
je 0x494526
cmp ebx, 0x200d
je 0x494526
mov dword [ecx], eax
add ecx, 3
mov eax, dword [edx + 3]
add edx, 3
mov ebx, eax
and ebx, 0xc0c0f0
cmp ebx, 0x8080e0
je 0x4944f5
jmp 0x494526
mov edx, edi
test al, al
jns 0x49428e
mov ebx, eax
and ebx, 0xc0e0
cmp ebx, 0x80c0
jne 0x49455e
mov ebx, eax
and ebx, 0x1e
je 0x49455e
mov word [ecx], ax
add ecx, 2
mov eax, dword [edx + 2]
add edx, 2
jmp 0x49452e
mov dword [ecx], eax
add ecx, 4
mov eax, dword [edx + 4]
add edx, 4
mov ebx, eax
and ebx, 0xc0c0c0f8
cmp ebx, 0x808080f0
jne 0x494286
mov ebx, eax
and ebx, 0x3007
je 0x494286
test al, 4
je 0x494553
mov ebx, eax
and ebx, 0x3003
je 0x494553
jmp 0x494286
cmp byte [esp + 0x98], 0
je 0x4960e2
mov edx, edi
movzx eax, word [edx]
mov word [ecx], ax
inc edx
inc ecx
jmp 0x4944d4
movzx eax, dl
cmp eax, 0x22
je 0x495116
cmp byte [esp + 0x98], 0
je 0x4960cd
cmp edi, dword [esp + 0x84]
jae 0x49615f
inc edi
mov byte [ecx], dl
inc ecx
jmp 0x494257
mov eax, dword [esp + 0x1c]
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49610c
movzx eax, word [edx]
cmp eax, 0x755c
jne 0x496121
movzx eax, byte [edi + 8]
movzx eax, byte [eax + 0x4fe25d]
mov dword [esp + 0x24], eax
movzx eax, byte [edi + 9]
movzx eax, byte [eax + 0x4fe25d]
mov dword [esp + 4], eax
movzx eax, byte [edi + 0xa]
movzx eax, byte [eax + 0x4fe25d]
mov dword [esp + 0x18], eax
movzx eax, byte [edi + 0xb]
movzx eax, byte [eax + 0x4fe25d]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x24]
shl eax, 8
add eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 4]
shl eax, 8
add eax, dword [esp + 0xc]
mov dword [esp + 4], eax
or eax, dword [esp + 0x24]
test eax, 0xf0f0
jne 0x49613b
mov eax, dword [esp + 0x24]
shl eax, 4
movzx eax, ax
mov ebx, dword [esp + 4]
or ebx, eax
mov dword [esp + 4], ebx
and ebx, 0xfc00
cmp ebx, 0xdc00
jne 0x49614d
movzx eax, word [esp + 0x1c]
shl eax, 0xa
add eax, 0xfca00000
mov edx, dword [esp + 4]
add edx, 0xffff2400
or edx, eax
lea ebx, [edx + 0x10000]
mov eax, ebx
shr eax, 0x12
or al, 0xf0
mov byte [ecx], al
shr ebx, 0xc
and bl, 0x3f
or bl, 0x80
mov byte [ecx + 1], bl
shr edx, 6
and dl, 0x3f
or dl, 0x80
mov byte [ecx + 2], dl
mov eax, dword [esp + 4]
and al, 0x3f
or al, 0x80
mov byte [ecx + 3], al
add ecx, 4
add edi, 0xc
jmp 0x494257
test eax, eax
je 0x494844
mov dword [esp + 0x60], 0
cmp dword [esp + 0x50], 0
je 0x49484c
mov ecx, dword [eax*8 + 0x500f9c]
mov dword [esp + 0x40], ecx
mov eax, dword [eax*8 + 0x500f98]
mov dword [esp + 4], eax
xor ecx, ecx
mov eax, dword [esp + ecx*8 + 0x2d0]
or eax, dword [esp + ecx*8 + 0x2d4]
jne 0x494736
inc ecx
cmp dword [esp + 0x50], ecx
jne 0x49471a
jmp 0x494844
cmp ecx, dword [esp + 0x50]
jae 0x494844
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], 0
mov ebx, dword [esp + ecx*8 + 0x2d0]
mov eax, ebx
mul dword [esp + 4]
mov dword [esp + 0x38], edx
mov dword [esp + 0x20], eax
mov eax, ebx
mov ebx, dword [esp + 0x40]
mul ebx
mov edi, eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + ecx*8 + 0x2d4]
mov dword [esp + 0x58], eax
mul dword [esp + 4]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x58]
mul ebx
mov dword [esp + 0x58], eax
add edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x1c]
adc ebx, 0
add edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x4c]
adc eax, 0
add ebx, dword [esp + 0x58]
adc edx, 0
add ebx, eax
mov dword [esp + 0x1c], ebx
adc edx, 0
mov dword [esp + 0x38], edx
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x20]
add eax, ebx
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x14]
adc edi, edx
setb byte [esp + 0x4c]
cmp eax, ebx
mov ebx, edi
sbb ebx, edx
mov dword [esp + ecx*8 + 0x2d4], edi
setb ah
or ah, byte [esp + 0x4c]
movzx eax, ah
add eax, dword [esp + 0x1c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
mov dword [esp + ecx*8 + 0x2d0], eax
mov edx, dword [esp + 0x38]
adc edx, 0
mov dword [esp + 0x14], edx
inc ecx
cmp dword [esp + 0x50], ecx
jne 0x494750
mov eax, dword [esp + 0xc]
or eax, dword [esp + 0x14]
je 0x494844
mov ecx, dword [esp + 0x50]
lea eax, [ecx + 1]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xc]
mov dword [esp + ecx*8 + 0x2d0], eax
mov eax, dword [esp + 0x14]
mov dword [esp + ecx*8 + 0x2d4], eax
jmp 0x49484c
mov eax, dword [esp + 0x50]
mov dword [esp + 0x60], eax
cmp dword [esp + 0x6c], 0
jle 0x494add
mov eax, dword [esp + 0x6c]
mov ecx, eax
shr ecx, 6
mov dword [esp + 0x30], ecx
and eax, 0x3f
mov dword [esp + 0x20], eax
je 0x495853
mov eax, dword [esp + 0x60]
mov dword [esp + eax*8 + 0x2d4], 0
mov dword [esp + eax*8 + 0x2d0], 0
test eax, eax
je 0x494a78
mov eax, 0x40
sub eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x60]
mov ebx, eax
cmp eax, 0x18
jae 0x494e55
mov ecx, ebx
test bl, 1
je 0x49492c
mov eax, dword [esp + ebx*8 + 0x2d0]
mov edx, dword [esp + ebx*8 + 0x2d4]
mov ecx, dword [esp + 0x20]
shld edx, eax, cl
shl eax, cl
xor edi, edi
test cl, 0x20
cmovne edx, eax
mov dword [esp + 0x1c], edx
cmovne eax, edi
mov dword [esp + 0x14], eax
mov edi, dword [esp + ebx*8 + 0x2cc]
mov dword [esp + 4], edi
mov ecx, dword [esp + 0xc]
shr edi, cl
mov edx, dword [esp + ebx*8 + 0x2c8]
mov eax, dword [esp + 4]
shrd edx, eax, cl
test cl, 0x20
cmovne edx, edi
mov ecx, 0
cmovne edi, ecx
or edi, dword [esp + 0x1c]
or edx, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
add eax, ebx
mov dword [esp + eax*8 + 0x2d0], edx
mov dword [esp + eax*8 + 0x2d4], edi
lea ecx, [ebx - 1]
cmp ebx, 1
je 0x494a78
mov eax, dword [esp + 0x30]
lea eax, [esp + eax*8]
add eax, 0x2d0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ecx
mov eax, dword [esp + ecx*8 + 0x2d0]
mov ebx, ecx
mov dword [esp + 4], ecx
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x20]
shl eax, cl
mov dword [esp + 0x4c], eax
test cl, 0x20
mov ecx, eax
mov eax, 0
cmovne ecx, eax
mov dword [esp + 0x3c], ecx
mov edi, dword [esp + ebx*8 + 0x2cc]
mov dword [esp + 0x58], edi
mov edx, dword [esp + 0xc]
mov ecx, edx
shr edi, cl
mov eax, dword [esp + ebx*8 + 0x2c8]
mov ebx, dword [esp + 0x58]
shrd eax, ebx, cl
test dl, 0x20
cmovne eax, edi
mov ecx, 0
cmovne edi, ecx
or eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 4]
mov dword [ecx + ebx*8], eax
mov eax, dword [esp + ebx*8 + 0x2c8]
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x20]
shl eax, cl
mov dword [esp + 0x40], eax
test cl, 0x20
mov ecx, eax
mov eax, 0
cmovne ecx, eax
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + ebx*8 + 0x2d4]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x38]
shld edx, eax, cl
test cl, 0x20
cmovne edx, dword [esp + 0x4c]
or edx, edi
mov eax, dword [esp + ebx*8 + 0x2c0]
mov ecx, dword [esp + 0x1c]
mov dword [ecx + ebx*8 + 4], edx
mov edx, dword [esp + ebx*8 + 0x2cc]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x58]
shld edx, edi, cl
test byte [esp + 0x20], 0x20
cmovne edx, dword [esp + 0x40]
mov dword [esp + 0x38], edx
mov edi, dword [esp + ebx*8 + 0x2c4]
mov dword [esp + 0x4c], edi
mov ecx, dword [esp + 0xc]
shr edi, cl
test cl, 0x20
mov edx, edi
mov ebx, 0
cmovne edx, ebx
mov ebx, dword [esp + 0x4c]
shrd eax, ebx, cl
test cl, 0x20
cmovne eax, edi
or edx, dword [esp + 0x38]
or eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 4]
mov dword [ecx + edi*8 - 8], eax
mov dword [ecx + edi*8 - 4], edx
mov ecx, dword [esp + 0x14]
add ecx, 0xfffffffe
mov dword [esp + 0x14], ecx
jne 0x494949
mov edx, dword [esp + 0x2d0]
mov eax, dword [esp + 0x2d4]
mov edi, edx
mov ecx, dword [esp + 0x20]
shl edi, cl
shld eax, edx, cl
xor edx, edx
test cl, 0x20
cmovne eax, edi
cmove edx, edi
mov edi, dword [esp + 0x30]
mov dword [esp + edi*8 + 0x2d0], edx
mov dword [esp + edi*8 + 0x2d4], eax
mov edx, dword [esp + 0x60]
add edx, edi
mov eax, dword [esp + edx*8 + 0x2d0]
xor ecx, ecx
or eax, dword [esp + edx*8 + 0x2d4]
setne cl
add edx, ecx
mov dword [esp + 0x60], edx
cmp dword [esp + 0x6c], 0x40
jae 0x494d8e
jmp 0x494da4
mov eax, dword [esp + 0x6c]
neg eax
mov ecx, eax
shr ecx, 6
mov dword [esp + 0x30], ecx
mov dword [esp + 0x6c], eax
mov ecx, eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x44], eax
and ecx, 0x3f
mov dword [esp + 0x20], ecx
je 0x495956
lea eax, [esp + 0xc8]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x44]
mov dword [esp + eax*8 + 0xcc], 0
mov dword [esp + eax*8 + 0xc8], 0
test eax, eax
je 0x494d2f
mov eax, 0x40
sub eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x1c], eax
cmp eax, 0x18
jae 0x494fb7
mov eax, dword [esp + 0x1c]
mov edi, eax
test al, 1
je 0x494bdd
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + ecx*8 + 0xc8]
mov edi, dword [esp + ecx*8 + 0xcc]
mov edx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x20]
shld edi, eax, cl
shl eax, cl
xor ebx, ebx
test cl, 0x20
cmovne edi, eax
mov dword [esp + 4], edi
cmovne eax, ebx
mov ebx, dword [esp + edx*8 + 0xc4]
mov dword [esp + 0x14], ebx
mov ecx, dword [esp + 0xc]
shr ebx, cl
mov edi, dword [esp + edx*8 + 0xc0]
mov edx, dword [esp + 0x14]
shrd edi, edx, cl
test cl, 0x20
cmovne edi, ebx
mov ecx, 0
cmovne ebx, ecx
or ebx, dword [esp + 4]
or edi, eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
add eax, ecx
mov dword [esp + eax*8 + 0xc8], edi
mov dword [esp + eax*8 + 0xcc], ebx
lea edi, [ecx - 1]
cmp dword [esp + 0x1c], 1
je 0x494d2f
mov eax, dword [esp + 0x30]
lea eax, [esp + eax*8]
add eax, 0xc8
mov dword [esp + 4], eax
mov dword [esp + 0x14], edi
mov eax, dword [esp + edi*8 + 0xc8]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x20]
shl eax, cl
mov dword [esp + 0x4c], eax
test cl, 0x20
mov ecx, eax
mov eax, 0
cmovne ecx, eax
mov dword [esp + 0x3c], ecx
mov edi, dword [esp + edi*8 + 0xc4]
mov dword [esp + 0x58], edi
mov edx, dword [esp + 0xc]
mov ecx, edx
shr edi, cl
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + eax*8 + 0xc0]
mov ebx, dword [esp + 0x58]
shrd eax, ebx, cl
test dl, 0x20
cmovne eax, edi
mov ecx, 0
cmovne edi, ecx
or eax, dword [esp + 0x3c]
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 0x1c]
mov dword [ecx + ebx*8], eax
mov eax, dword [esp + ebx*8 + 0xc0]
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x20]
shl eax, cl
mov dword [esp + 0x40], eax
test cl, 0x20
mov ecx, eax
mov eax, 0
cmovne ecx, eax
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + ebx*8 + 0xcc]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x38]
shld edx, eax, cl
test cl, 0x20
cmovne edx, dword [esp + 0x4c]
or edx, edi
mov edi, ebx
mov eax, dword [esp + ebx*8 + 0xb8]
mov ecx, dword [esp + 4]
mov dword [ecx + ebx*8 + 4], edx
mov edx, dword [esp + ebx*8 + 0xc4]
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x58]
shld edx, ebx, cl
test byte [esp + 0x20], 0x20
cmovne edx, dword [esp + 0x40]
mov dword [esp + 0x38], edx
mov edi, dword [esp + edi*8 + 0xbc]
mov dword [esp + 0x4c], edi
mov ecx, dword [esp + 0xc]
shr edi, cl
test cl, 0x20
mov edx, edi
mov ebx, 0
cmovne edx, ebx
mov ebx, dword [esp + 0x4c]
shrd eax, ebx, cl
test cl, 0x20
cmovne eax, edi
or edx, dword [esp + 0x38]
or eax, dword [esp + 0x3c]
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x1c]
mov dword [ecx + edi*8 - 8], eax
mov dword [ecx + edi*8 - 4], edx
mov edi, dword [esp + 0x14]
add edi, 0xfffffffe
mov dword [esp + 0x14], edi
jne 0x494bfc
mov eax, dword [esp + 0xc8]
mov edx, eax
mov ecx, dword [esp + 0x20]
shl edx, cl
mov edi, dword [esp + 0xcc]
shld edi, eax, cl
xor eax, eax
test cl, 0x20
cmovne edi, edx
cmove eax, edx
mov ecx, dword [esp + 0x30]
mov dword [esp + ecx*8 + 0xc8], eax
mov dword [esp + ecx*8 + 0xcc], edi
mov edx, dword [esp + 0x44]
add edx, ecx
mov eax, dword [esp + edx*8 + 0xc8]
xor ecx, ecx
or eax, dword [esp + edx*8 + 0xcc]
setne cl
add ecx, edx
mov dword [esp + 0xc0], ecx
cmp dword [esp + 0x6c], 0x40
jb 0x494da4
mov eax, dword [esp + 0x30]
shl eax, 3
push eax
push 0
push dword [esp + 0x78]
call sym._memset
add esp, 0xc
mov ecx, dword [esp + 0xc0]
mov dword [esp + 4], 0
mov eax, 0
cmp ecx, dword [esp + 0x60]
jb 0x494e0c
mov al, 1
ja 0x494e0c
mov edx, ecx
sub edx, 1
jb 0x494fa3
mov eax, dword [esp + ecx*8 + 0xc0]
mov dword [esp + 0x20], eax
mov ebx, dword [esp + ecx*8 + 0xc4]
mov edi, dword [esp + ecx*8 + 0x2c8]
mov eax, dword [esp + ecx*8 + 0x2cc]
mov dword [esp + 0x1c], ebx
mov ecx, ebx
xor ecx, eax
mov ebx, dword [esp + 0x20]
xor ebx, edi
or ebx, ecx
mov ecx, edx
je 0x494dc4
cmp dword [esp + 0x20], edi
sbb dword [esp + 0x1c], eax
setae al
movzx ecx, al
add ecx, dword [esp + 0x18]
mov eax, dword [esp + 4]
adc eax, dword [esp + 0x34]
mov edi, eax
xor eax, 0x7ff00000
or eax, ecx
je 0x4957de
xor eax, eax
cmp byte [esp + 0x24], 0x2d
sete al
mov edx, dword [esp + 0x10]
mov dword [edx + 4], 0
mov dword [edx], 0x14
shl eax, 0x1f
or edi, eax
mov dword [edx + 8], ecx
mov dword [edx + 0xc], edi
jmp 0x4939fc
mov ebx, dword [esp + 0x60]
lea eax, [ebx*8 - 8]
lea edx, [esp + ebx*8]
add edx, 0x2c8
mov ecx, edx
sub ecx, eax
cmp ecx, edx
ja 0x4948af
mov ebx, dword [esp + 0x60]
mov ecx, dword [esp + 0x30]
add ecx, ebx
mov dword [esp + 0x1c], ecx
lea ecx, [esp + ecx*8]
add ecx, 0x2d0
mov edi, ecx
sub edi, eax
cmp edi, ecx
ja 0x4948af
mov ebx, dword [esp + 0x60]
lea ecx, [esp + ebx*8]
add ecx, 0x2d0
mov edi, ecx
sub edi, eax
cmp edi, ecx
ja 0x4948af
mov ebx, dword [esp + 0x60]
lea eax, [ebx - 1]
cmp eax, 0x1fffffff
ja 0x4948af
mov eax, dword [esp + 0x1c]
lea eax, [esp + eax*8]
add eax, 0x2c8
sub edx, eax
mov ebx, dword [esp + 0x60]
cmp edx, 0x20
jb 0x4948af
add edx, 0xfffffff8
mov ebx, dword [esp + 0x60]
cmp edx, 0x20
jb 0x4948af
mov edx, dword [esp + 0x1c]
shl edx, 3
mov ebx, dword [esp + 0x60]
lea eax, [ebx*8]
mov edi, ebx
and edi, 0xfffffffc
and ebx, 3
movd xmm0, dword [esp + 0x20]
movd xmm1, dword [esp + 0xc]
lea ecx, [esp + 0x2c8]
add eax, ecx
add eax, 0xffffffe8
mov dword [esp + 0x1c], edi
neg edi
lea ecx, [esp + edx]
add ecx, 0x2c8
xor edx, edx
movdqu xmm2, xmmword [eax + edx*8 + 0x18]
pshufd xmm2, xmm2, 0x4e
movdqu xmm3, xmmword [eax + edx*8 + 8]
pshufd xmm3, xmm3, 0x4e
psllq xmm2, xmm0
psllq xmm3, xmm0
movdqu xmm4, xmmword [eax + edx*8]
movdqu xmm5, xmmword [eax + edx*8 + 0x10]
pshufd xmm5, xmm5, 0x4e
pshufd xmm4, xmm4, 0x4e
psrlq xmm5, xmm1
psrlq xmm4, xmm1
por xmm5, xmm2
por xmm4, xmm3
pshufd xmm2, xmm5, 0x4e
movdqu xmmword [ecx + edx*8], xmm2
pshufd xmm2, xmm4, 0x4e
movdqu xmmword [ecx + edx*8 - 0x10], xmm2
add edx, 0xfffffffc
cmp edi, edx
jne 0x494f31
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x60], eax
jne 0x4948af
jmp 0x494a78
mov ecx, dword [esp + 0x18]
and ecx, 1
mov dword [esp + 4], 0
jmp 0x494e0f
mov edi, dword [esp + 0x44]
lea eax, [edi*8 - 8]
lea edx, [esp + edi*8]
add edx, 0xc0
mov ecx, edx
mov dword [esp + 4], eax
sub ecx, eax
mov dword [esp + 0x1c], edi
cmp ecx, edx
ja 0x494b55
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x44]
add ecx, eax
lea edi, [esp + ecx*8]
add edi, 0xc8
mov ebx, edi
sub ebx, dword [esp + 4]
mov dword [esp + 0x1c], eax
cmp ebx, edi
ja 0x494b55
mov eax, dword [esp + 0x44]
lea edi, [esp + eax*8]
add edi, 0xc8
mov ebx, edi
sub ebx, dword [esp + 4]
mov dword [esp + 0x1c], eax
cmp ebx, edi
ja 0x494b55
mov edi, dword [esp + 0x44]
lea eax, [edi - 1]
mov dword [esp + 0x1c], edi
cmp eax, 0x1fffffff
ja 0x494b55
lea eax, [esp + ecx*8]
add eax, 0xc0
sub edx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x1c], eax
cmp edx, 0x20
jb 0x494b55
add edx, 0xfffffff8
mov eax, dword [esp + 0x44]
mov dword [esp + 0x1c], eax
cmp edx, 0x20
jb 0x494b55
shl ecx, 3
mov edi, dword [esp + 0x44]
lea eax, [edi*8]
mov edx, edi
and edx, 0xfffffffc
and edi, 3
mov dword [esp + 0x1c], edi
movd xmm0, dword [esp + 0x20]
movd xmm1, dword [esp + 0xc]
lea edi, [esp + 0xc0]
add eax, edi
add eax, 0xffffffe8
mov edi, edx
neg edi
add ecx, esp
add ecx, 0xc0
xor ebx, ebx
movdqu xmm2, xmmword [eax + ebx*8 + 0x18]
pshufd xmm2, xmm2, 0x4e
movdqu xmm3, xmmword [eax + ebx*8 + 8]
pshufd xmm3, xmm3, 0x4e
psllq xmm2, xmm0
psllq xmm3, xmm0
movdqu xmm4, xmmword [eax + ebx*8]
movdqu xmm5, xmmword [eax + ebx*8 + 0x10]
pshufd xmm5, xmm5, 0x4e
pshufd xmm4, xmm4, 0x4e
psrlq xmm5, xmm1
psrlq xmm4, xmm1
por xmm5, xmm2
por xmm4, xmm3
pshufd xmm2, xmm5, 0x4e
movdqu xmmword [ecx + ebx*8], xmm2
pshufd xmm2, xmm4, 0x4e
movdqu xmmword [ecx + ebx*8 - 0x10], xmm2
add ebx, 0xfffffffc
cmp edi, ebx
jne 0x4950a8
cmp dword [esp + 0x44], edx
jne 0x494b55
jmp 0x494d2f
mov ebx, 5
jmp 0x49255e
mov eax, dword [esp + 0x2c]
mov edi, eax
shr edi, 1
add edi, eax
cmp edi, 0xffffffe
ja 0x489c49
mov eax, dword [esp + 0x2c]
shl eax, 4
mov ebx, edi
shl ebx, 4
push ebx
push eax
push dword [esp + 0x10]
push dword [esp + 0x84]
call dword [esp + 0xa4]
add esp, 0x10
mov esi, dword [esp]
test eax, eax
je 0x489c49
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
sub edx, ecx
add edx, eax
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x74]
sub edx, ecx
add edx, eax
mov dword [esp + 0x74], edx
lea ecx, [ebx + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x80], ecx
movzx ecx, byte [esi]
mov dword [esp + 8], eax
mov dword [esp + 0x2c], edi
jmp 0x491d81
mov edi, eax
mov eax, dword [ebp + 0x10]
test al, 0x10
jne 0x495baa
mov dword [esp + 0x64], str.no_digit_after_minus_sign
mov eax, dword [esp + 0x20]
mov dword [esp], eax
jmp 0x495e44
cmp dl, 0x2e
jne 0x495c9e
mov eax, dword [esp + 0x20]
movzx ecx, byte [eax + 2]
test byte [ecx + 0x4fe4d8], 3
je 0x495836
lea eax, [ebx + esi]
inc eax
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x20]
movzx eax, byte [ecx + 1]
inc ecx
mov dword [esp + 0x20], ecx
cmp eax, 0x30
je 0x4951e4
mov edi, eax
movzx ecx, byte [eax + 0x4fe4d8]
test cl, 3
je 0x495c96
add edi, 0xffffffd0
mov dword [esp + 0x1c], edi
mov edx, edi
sar edx, 0x1f
dec dword [esp + 0x20]
mov eax, dword [esp + 0x18]
jmp 0x495249
mov edx, dword [esp + 0x1c]
sar edx, 0x1f
xor edi, edi
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], 0
cmp ecx, 0x2e
mov ecx, 0
jne 0x49283c
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x20]
lea ecx, [eax + 2]
mov dword [esp + 0x58], ecx
movzx ecx, byte [eax + 2]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x4957d3
mov edx, 0xa
mov eax, dword [esp + 0x1c]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov dword [esp + 0x1c], eax
adc edi, edx
mov edx, edi
mov eax, ebx
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x20]
lea ecx, [eax + 3]
mov dword [esp + 0x58], ecx
movzx ecx, byte [eax + 3]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x4957d3
mov edx, 0xa
mov eax, dword [esp + 0x1c]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov dword [esp + 0x1c], eax
adc edi, edx
mov edx, edi
mov eax, ebx
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x20]
lea ecx, [eax + 4]
mov dword [esp + 0x58], ecx
movzx ecx, byte [eax + 4]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x4957d3
mov edx, 0xa
mov eax, dword [esp + 0x1c]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov dword [esp + 0x1c], eax
adc edi, edx
mov edx, edi
mov eax, ebx
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x20]
lea ecx, [eax + 5]
mov dword [esp + 0x58], ecx
movzx ecx, byte [eax + 5]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x4957d3
mov edx, 0xa
mov eax, dword [esp + 0x1c]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov dword [esp + 0x1c], eax
adc edi, edx
mov edx, edi
mov eax, ebx
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x20]
lea ecx, [eax + 6]
mov dword [esp + 0x58], ecx
movzx ecx, byte [eax + 6]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x4957d3
mov edx, 0xa
mov eax, dword [esp + 0x1c]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov dword [esp + 0x1c], eax
adc edi, edx
mov edx, edi
mov eax, ebx
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x20]
lea ecx, [eax + 7]
mov dword [esp + 0x58], ecx
movzx ecx, byte [eax + 7]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x4957d3
mov edx, 0xa
mov eax, dword [esp + 0x1c]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov dword [esp + 0x1c], eax
adc edi, edx
mov edx, edi
mov eax, ebx
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x20]
lea ecx, [eax + 8]
mov dword [esp + 0x58], ecx
movzx ecx, byte [eax + 8]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x4957d3
mov edx, 0xa
mov eax, dword [esp + 0x1c]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov dword [esp + 0x1c], eax
adc edi, edx
mov edx, edi
mov eax, ebx
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x20]
lea ecx, [eax + 9]
mov dword [esp + 0x58], ecx
movzx ecx, byte [eax + 9]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x4957d3
mov edx, 0xa
mov eax, dword [esp + 0x1c]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov dword [esp + 0x1c], eax
adc edi, edx
mov edx, edi
mov eax, ebx
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x20]
lea ecx, [eax + 0xa]
mov dword [esp + 0x58], ecx
movzx ecx, byte [eax + 0xa]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x4957d3
mov edx, 0xa
mov eax, dword [esp + 0x1c]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov dword [esp + 0x1c], eax
adc edi, edx
mov edx, edi
mov eax, ebx
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x20]
lea ecx, [eax + 0xb]
mov dword [esp + 0x58], ecx
movzx ecx, byte [eax + 0xb]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x4957d3
mov edx, 0xa
mov eax, dword [esp + 0x1c]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov dword [esp + 0x1c], eax
adc edi, edx
mov edx, edi
mov eax, ebx
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x20]
lea ecx, [eax + 0xc]
mov dword [esp + 0x58], ecx
movzx ecx, byte [eax + 0xc]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x4957d3
mov edx, 0xa
mov eax, dword [esp + 0x1c]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov dword [esp + 0x1c], eax
adc edi, edx
mov edx, edi
mov eax, ebx
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x20]
lea ecx, [eax + 0xd]
mov dword [esp + 0x58], ecx
movzx ecx, byte [eax + 0xd]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x4957d3
mov edx, 0xa
mov eax, dword [esp + 0x1c]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov dword [esp + 0x1c], eax
adc edi, edx
mov edx, edi
mov eax, ebx
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x20]
lea ecx, [eax + 0xe]
mov dword [esp + 0x58], ecx
movzx ecx, byte [eax + 0xe]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x4957d3
mov edx, 0xa
mov eax, dword [esp + 0x1c]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov dword [esp + 0x1c], eax
adc edi, edx
mov edx, edi
mov eax, ebx
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x20]
lea ecx, [eax + 0xf]
mov dword [esp + 0x58], ecx
movzx ecx, byte [eax + 0xf]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x4957d3
mov edx, 0xa
mov eax, dword [esp + 0x1c]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov dword [esp + 0x1c], eax
adc edi, edx
mov edx, edi
mov eax, ebx
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x20]
lea ecx, [eax + 0x10]
mov dword [esp + 0x58], ecx
movzx ecx, byte [eax + 0x10]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x4957d3
mov edx, 0xa
mov eax, dword [esp + 0x1c]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov dword [esp + 0x1c], eax
adc edi, edx
mov edx, edi
mov eax, ebx
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x20]
lea ecx, [eax + 0x11]
mov dword [esp + 0x58], ecx
movzx ecx, byte [eax + 0x11]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x4957d3
mov edx, 0xa
mov eax, dword [esp + 0x1c]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov dword [esp + 0x1c], eax
adc edi, edx
mov edx, edi
mov eax, ebx
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x20]
lea ecx, [eax + 0x12]
mov dword [esp + 0x58], ecx
movzx ecx, byte [eax + 0x12]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x4957d3
mov edx, 0xa
mov eax, dword [esp + 0x1c]
mul edx
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
mov dword [esp + 0x1c], eax
adc edi, edx
mov edx, edi
mov eax, ebx
mov dword [esp + 0x18], eax
mov ebx, edx
mov eax, dword [esp + 0x20]
lea ecx, [eax + 0x13]
mov dword [esp + 0x58], ecx
movzx ecx, byte [eax + 0x13]
mov dword [esp + 0x34], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x4959a6
mov edx, 0xa
mov eax, dword [esp + 0x1c]
mul edx
add ebx, ebx
lea ebx, [ebx + ebx*4]
add eax, ecx
mov dword [esp + 0x1c], eax
adc ebx, edx
mov eax, dword [esp + 0x20]
movzx ecx, byte [eax + 0x14]
add eax, 0x14
mov dword [esp + 0x34], ecx
test byte [ecx + 0x4fe4d8], 3
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 4], ecx
jne 0x49271b
mov dword [esp + 0xc], ebx
mov eax, dword [esp + 4]
inc eax
cmp eax, dword [esp + 0x58]
je 0x49583f
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 4]
mov ecx, eax
sar ecx, 0x1f
mov dword [esp + 0x14], 0
mov edi, 1
sub edi, eax
mov ebx, 0
sbb ebx, ecx
movzx ecx, byte [esp + 0x34]
test byte [ecx + 0x4fe4d8], 0x20
jne 0x495b67
mov dword [esp + 0x14], 0
cmp eax, 0x159
jge 0x495b76
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
jmp 0x492921
mov ecx, 0
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x495678
jmp 0x49283c
mov edx, dword [esp + 8]
jmp 0x495f36
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
test eax, eax
je 0x493a5b
mov byte [eax], 0
jmp 0x493a5b
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
test eax, eax
je 0x4957a7
mov byte [eax], 0
mov edi, ebx
mov eax, ebx
sub eax, esi
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
mov edx, dword [esp + 0x10]
mov dword [edx + 4], ecx
shl eax, 8
or eax, 1
mov dword [edx], eax
mov dword [edx + 8], esi
mov eax, dword [esp + 0x28]
mov dword [eax], ebx
jmp 0x492bdc
mov dword [esp + 4], ebx
mov ebx, edi
jmp 0x4956dd
mov eax, dword [ebp + 0x10]
test al, al
js 0x495820
test al, 0x10
je 0x498e2b
mov eax, 0x7ff00000
xor ecx, ecx
cmp byte [esp + 0x24], 0x2d
mov esi, dword [esp + 0x10]
mov dword [esi + 4], 0
mov dword [esi], 0x14
mov edx, 0xfff00000
cmovne edx, eax
cmove ecx, ecx
mov dword [esi + 0xc], edx
mov dword [esi + 8], ecx
jmp 0x4939fc
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
test eax, eax
je 0x49582d
mov byte [eax], 0
mov edi, dword [esp + 0x5c]
jmp 0x493a5b
mov eax, dword [esp + 0x20]
jmp 0x495e29
mov dword [esp + 0x64], str.no_digit_after_decimal_point
mov eax, dword [esp + 0x58]
mov dword [esp], eax
jmp 0x495e44
cmp dword [esp + 0x60], 0
je 0x495a0a
mov ecx, dword [esp + 0x60]
mov eax, ecx
cmp ecx, 0x20
jb 0x495923
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x30]
add eax, ebx
lea ecx, [esp + eax*8]
add ecx, 0x2c8
lea edi, [ebx*8 - 8]
mov edx, ecx
sub edx, edi
mov eax, ebx
cmp edx, ecx
ja 0x495923
mov eax, dword [esp + 0x60]
lea edx, [esp + eax*8]
add edx, 0x2c8
mov ebx, edx
sub ebx, edi
cmp ebx, edx
ja 0x495923
mov eax, dword [esp + 0x60]
lea edi, [eax - 1]
cmp edi, 0x1fffffff
ja 0x495923
sub edx, ecx
mov eax, dword [esp + 0x60]
cmp edx, 0x20
jb 0x495923
mov eax, dword [esp + 0x60]
lea ecx, [eax*8]
mov edi, eax
and edi, 0xfffffffc
and eax, 3
lea edx, [esp + 0x2c8]
lea ebx, [ecx + edx]
add edx, ecx
add edx, 0xfffffff8
mov dword [esp + 0x20], edi
neg edi
mov ecx, dword [esp + 0x30]
lea ebx, [ebx + ecx*8]
add ebx, 0xfffffff8
xor ecx, ecx
movupd xmm0, xmmword [edx + ecx*8 - 0x10]
movupd xmm1, xmmword [edx + ecx*8]
movupd xmmword [ebx + ecx*8], xmm1
movupd xmmword [ebx + ecx*8 - 0x10], xmm0
add ecx, 0xfffffffc
cmp edi, ecx
jne 0x4958f8
mov ecx, dword [esp + 0x20]
cmp dword [esp + 0x60], ecx
je 0x495a0a
lea edx, [eax - 1]
mov edi, eax
and edi, 3
je 0x4959b3
mov ecx, dword [esp + 0x30]
lea ebx, [esp + ecx*8]
add ebx, 0x2c8
lea ecx, [eax - 1]
movsd xmm0, qword [esp + eax*8 + 0x2c8]
movsd qword [ebx + eax*8], xmm0
mov eax, ecx
dec edi
jne 0x49593e
jmp 0x4959b5
cmp dword [esp + 0x44], 0
je 0x495b3d
mov ecx, dword [esp + 0x44]
mov eax, ecx
cmp ecx, 0x20
jae 0x495a22
lea edx, [eax - 1]
mov edi, eax
and edi, 3
je 0x495ae6
mov ecx, dword [esp + 0x30]
lea ebx, [esp + ecx*8]
add ebx, 0xc0
lea ecx, [eax - 1]
movsd xmm0, qword [esp + eax*8 + 0xc0]
movsd qword [ebx + eax*8], xmm0
mov eax, ecx
dec edi
jne 0x49598b
jmp 0x495ae8
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
jmp 0x4956dd
mov ecx, eax
cmp edx, 3
jb 0x495a0a
mov eax, dword [esp + 0x30]
lea eax, [esp + eax*8]
add eax, 0x2c8
mov edx, ecx
movsd xmm0, qword [esp + ecx*8 + 0x2c8]
movsd qword [eax + ecx*8], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x2c0]
movsd qword [eax + ecx*8 - 8], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x2b8]
movsd qword [eax + ecx*8 - 0x10], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x2b0]
movsd qword [eax + ecx*8 - 0x18], xmm0
add edx, 0xfffffffc
mov ecx, edx
jne 0x4959c8
mov eax, dword [esp + 0x30]
add dword [esp + 0x60], eax
cmp dword [esp + 0x6c], 0x40
jae 0x494d8e
jmp 0x494da4
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x44]
add eax, ebx
lea ecx, [esp + eax*8]
add ecx, 0xc0
lea edi, [ebx*8 - 8]
mov edx, ecx
sub edx, edi
mov eax, ebx
cmp edx, ecx
ja 0x495970
mov eax, dword [esp + 0x44]
lea edx, [esp + eax*8]
add edx, 0xc0
mov ebx, edx
sub ebx, edi
cmp ebx, edx
ja 0x495970
mov eax, dword [esp + 0x44]
lea edi, [eax - 1]
cmp edi, 0x1fffffff
ja 0x495970
sub edx, ecx
mov eax, dword [esp + 0x44]
cmp edx, 0x20
jb 0x495970
mov eax, dword [esp + 0x44]
lea ecx, [eax*8]
mov edi, eax
and edi, 0xfffffffc
and eax, 3
lea edx, [esp + 0xc0]
lea ebx, [ecx + edx]
add edx, ecx
add edx, 0xfffffff8
mov dword [esp + 0x20], edi
neg edi
mov ecx, dword [esp + 0x30]
lea ebx, [ebx + ecx*8]
add ebx, 0xfffffff8
xor ecx, ecx
movupd xmm0, xmmword [edx + ecx*8 - 0x10]
movupd xmm1, xmmword [edx + ecx*8]
movupd xmmword [ebx + ecx*8], xmm1
movupd xmmword [ebx + ecx*8 - 0x10], xmm0
add ecx, 0xfffffffc
cmp edi, ecx
jne 0x495ab9
mov ecx, dword [esp + 0x20]
cmp dword [esp + 0x44], ecx
jne 0x495970
jmp 0x495b3d
mov ecx, eax
cmp edx, 3
jb 0x495b3d
mov eax, dword [esp + 0x30]
lea eax, [esp + eax*8]
add eax, 0xc0
mov edx, ecx
movsd xmm0, qword [esp + ecx*8 + 0xc0]
movsd qword [eax + ecx*8], xmm0
movsd xmm0, qword [esp + ecx*8 + 0xb8]
movsd qword [eax + ecx*8 - 8], xmm0
movsd xmm0, qword [esp + ecx*8 + 0xb0]
movsd qword [eax + ecx*8 - 0x10], xmm0
movsd xmm0, qword [esp + ecx*8 + 0xa8]
movsd qword [eax + ecx*8 - 0x18], xmm0
add edx, 0xfffffffc
mov ecx, edx
jne 0x495afb
mov eax, dword [esp + 0x44]
add eax, dword [esp + 0x30]
mov dword [esp + 0xc0], eax
cmp dword [esp + 0x6c], 0x40
jb 0x494da4
lea eax, [esp + 0xc8]
mov dword [esp + 0x70], eax
jmp 0x494d8e
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0xc]
mov ecx, ebx
jmp 0x49283c
xor eax, eax
cmp byte [esp + 0x24], 0x2d
sete al
mov ecx, dword [esp + 0x10]
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 + 0x58]
mov dword [esp], eax
jmp 0x492bdf
xor ecx, ecx
cmp byte [esp + 0x24], 0x2d
sete al
lea edx, [edi - 0x49]
cmp edx, 0x25
ja case.0x495bc8.74
mov cl, al
mov eax, dword [esp + 0x20]
sub eax, ecx
jmp dword [edx*4 + 0x5013f4]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ecx + 1]
or ecx, 0x20
cmp ecx, 0x6e
jne 0x495ce7
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ecx + 2]
or ecx, 0x20
cmp ecx, 0x66
jne 0x495ce7
mov edx, dword [esp + 0x20]
lea ecx, [edx + 3]
movzx edx, byte [edx + 3]
or edx, 0x20
cmp edx, 0x69
jne 0x495c51
mov edx, dword [esp + 0x20]
movzx edx, byte [edx + 4]
or edx, 0x20
cmp edx, 0x6e
jne 0x495c51
mov edx, dword [esp + 0x20]
movzx edx, byte [edx + 5]
or edx, 0x20
cmp edx, 0x69
jne 0x495c51
mov edx, dword [esp + 0x20]
movzx edx, byte [edx + 6]
or edx, 0x20
cmp edx, 0x74
jne 0x495c51
mov edx, dword [esp + 0x20]
movzx edx, byte [edx + 7]
or edx, 0x20
cmp edx, 0x79
jne 0x495c51
mov ecx, dword [esp + 0x20]
add ecx, 8
cmp byte [esp + 0x48], 0
je 0x495d9e
mov edx, dword [esp + 0x28]
mov edx, dword [edx]
test edx, edx
je 0x495c69
mov byte [edx], 0
mov edx, dword [esp + 0x28]
mov dword [edx], ecx
mov edx, ecx
sub edx, eax
mov esi, edx
sar esi, 0x1f
shld esi, edx, 8
mov edi, dword [esp + 0x10]
mov dword [edi + 4], esi
shl edx, 8
or edx, 1
mov dword [edi], edx
mov dword [edi + 8], eax
mov dword [esp], ecx
jmp 0x492bdf
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], eax
test cl, 3
jne 0x495cd2
test cl, 0x20
jne 0x495dd3
xor eax, eax
cmp byte [esp + 0x24], 0x2d
sete al
mov ecx, dword [esp + 0x10]
mov dword [ecx + 4], 0
mov dword [ecx], 0x14
shl eax, 0x1f
mov dword [ecx + 0xc], eax
jmp 0x492d74
mov dword [esp + 0x64], str.number_with_leading_zero_is_not_allowed
mov eax, dword [esp + 0x18]
dec eax
mov dword [esp], eax
jmp 0x495e44
cmp edi, 0x4e
jne case.0x495bc8.74
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ecx + 1]
or ecx, 0x20
cmp ecx, 0x61
jne case.0x495bc8.74
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ecx + 2]
or ecx, 0x20
cmp ecx, 0x6e
jne case.0x495bc8.74
add dword [esp + 0x20], 3
cmp byte [esp + 0x48], 0
je 0x495d65
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
test ecx, ecx
je 0x495d31
mov byte [ecx], 0
cmp byte [esp + 0x24], 0x2d
mov ecx, 0x401
mov edx, 0x301
cmove edx, ecx
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
mov dword [ecx], esi
mov ecx, dword [esp + 0x10]
mov dword [ecx], edx
mov dword [ecx + 4], 0
mov dword [ecx + 8], eax
mov dword [esp], esi
jmp 0x492bdf
cmp byte [esp + 0x24], 0x2d
mov edx, dword [esp + 0x10]
mov dword [edx + 4], 0
mov eax, 0xfff80000
mov ecx, 0x7ff80000
cmove ecx, eax
mov dword [edx], 0x14
mov dword [edx + 0xc], ecx
mov dword [edx + 8], 0
mov eax, dword [esp + 0x20]
mov dword [esp], eax
jmp 0x492bdf
cmp byte [esp + 0x24], 0x2d
mov esi, dword [esp + 0x10]
mov dword [esi + 4], 0
mov eax, 0xfff00000
mov edx, 0x7ff00000
cmove edx, eax
mov dword [esi], 0x14
mov dword [esi + 0xc], edx
mov dword [esi + 8], 0
mov dword [esp], ecx
jmp 0x492bdf
mov ecx, dword [esp + 0x18]
movzx eax, byte [ecx + 1]
movzx eax, byte [eax + 0x4fe4d8]
and al, 0xc
cmp al, 1
sbb ecx, 0
movzx eax, byte [ecx + 2]
add ecx, 2
mov dword [esp + 0x18], ecx
test byte [eax + 0x4fe4d8], 3
je 0x495e18
mov ecx, dword [esp + 0x18]
movzx eax, byte [ecx + 1]
inc ecx
mov dword [esp + 0x18], ecx
test byte [eax + 0x4fe4d8], 3
jne 0x495dfd
jmp 0x495cac
mov dword [esp + 0x64], str.no_digit_after_exponent_sign
mov eax, dword [esp + 0x18]
mov dword [esp], eax
jmp 0x495e44
add eax, 2
mov dword [esp + 0x64], str.no_digit_after_decimal_point
mov dword [esp], eax
jmp 0x495e44
mov dword [esp + 0x64], str.no_digit_after_decimal_point
mov dword [esp], ecx
mov edx, dword [esp + 8]
mov dword [esp + 8], edx
mov esi, dword [esp]
mov edi, dword [esp + 0x88]
mov ecx, edi
mov edx, esi
push dword [ebp + 0x10]
push 9
mov ebx, dword [esp + 0x8c]
push ebx
call dbg.is_truncated_end
add esp, 0xc
test al, al
cmovne esi, ebx
mov ecx, 0x4fe0e6
cmove ecx, dword [esp + 0x64]
sub esi, edi
xor al, 1
mov edx, dword [ebp + 0x18]
test edx, edx
lea edi, [esp + 0xa4]
cmove edx, edi
mov dword [edx + 8], esi
movzx eax, al
lea eax, [eax*4 + 5]
mov esi, dword [esp + 0x90]
mov dword [esi], eax
mov dword [edx + 4], ecx
jmp 0x496a4c
mov esi, dword [esp]
movzx eax, word [esi]
cmp eax, 0xa2c
mov dword [esp + 8], edx
jne 0x495ecf
add esi, 2
mov dword [esp], esi
mov eax, dword [esp + 0x74]
jmp 0x491b48
mov edi, esp
cmp al, 0x5d
je 0x495f30
movzx ecx, al
cmp ecx, 0x2c
je 0x495f2d
movzx eax, al
test byte [eax + 0x4fdfe6], 1
jne 0x495f0c
mov eax, dword [ebp + 0x10]
test al, 8
je 0x4969f2
mov ecx, edi
call dbg.skip_spaces_and_comments
mov esi, dword [esp]
test al, al
je 0x491936
mov edx, dword [esp + 8]
jmp 0x495f21
inc esi
nop dword [eax]
mov dword [esp], esi
movzx eax, byte [esi]
inc esi
test byte [eax + 0x4fdfe6], 1
jne 0x495f10
dec esi
movzx eax, word [esi]
cmp eax, 0xa2c
jne 0x495ed1
jmp 0x495ec0
inc esi
jmp 0x495ec3
inc esi
mov dword [esp], esi
mov edi, esi
mov esi, dword [esp + 0x74]
mov ebx, dword [esp + 0x54]
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x10]
sub ecx, esi
add ecx, 0x10
mov dword [esi + 8], ecx
shl ebx, 8
or ebx, 6
mov dword [esi], ebx
mov dword [esi + 4], 0
test eax, eax
je 0x495f8b
sub esi, eax
mov eax, dword [esi]
mov dword [esp + 0x74], esi
mov ecx, dword [esi + 4]
shld ecx, eax, 0x18
mov dword [esp + 0x54], ecx
cmp byte [edi], 0xa
jne 0x495f7c
inc edi
mov dword [esp], edi
not eax
test al, 7
jne 0x495eaf
jmp 0x4968c0
mov ebx, edx
mov eax, dword [ebp + 0x10]
test al, 2
jne 0x495f9d
cmp edi, dword [esp + 0x84]
jb 0x495ff4
cmp byte [esp + 0x48], 0
je 0x495fb1
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
test eax, eax
je 0x495fb1
mov byte [eax], 0
lea eax, [ebx + 0x20]
mov dword [ebx], eax
mov eax, dword [esp + 0x68]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x94]
mov dword [ebx + 8], eax
mov esi, dword [esp + 0x8c]
mov dword [ebx + 0xc], esi
mov eax, dword [esp + 0x78]
mov dword [ebx + 0x10], eax
mov eax, dword [esp]
sub eax, dword [esp + 0x88]
mov dword [ebx + 0x14], eax
mov eax, dword [esp + 0x10]
sub eax, ebx
sar eax, 4
dec eax
mov dword [ebx + 0x18], eax
jmp 0x49603e
test al, 8
jne 0x496025
movzx eax, byte [edi]
test byte [eax + 0x4fdfe6], 1
je 0x496016
inc edi
mov dword [esp], edi
movzx eax, byte [edi]
inc edi
test byte [eax + 0x4fdfe6], 1
jne 0x496005
dec edi
cmp edi, dword [esp + 0x84]
jae 0x495f9d
jmp 0x49605c
mov ecx, esp
call dbg.skip_spaces_and_comments
mov edi, dword [esp]
movzx eax, word [edi]
cmp eax, 0x2a2f
jne 0x496016
jmp 0x4960bf
mov eax, dword [esp + 0xbc]
mov dword [ebx + 0x1c], eax
lea edi, [esp + 0xa4]
test ebx, ebx
jne 0x496a6a
jmp 0x489b6d
mov ecx, dword [esp + 0x88]
mov edx, edi
push dword [ebp + 0x10]
push 4
mov esi, dword [esp + 0x8c]
push esi
call dbg.is_truncated_end
add esp, 0xc
movzx ecx, al
or ecx, 4
test al, al
cmovne edi, esi
mov eax, 0x4fe0e6
mov edx, str.unexpected_content_after_document
cmovne edx, eax
sub edi, dword [esp + 0x88]
mov eax, dword [ebp + 0x18]
test eax, eax
lea esi, [esp + 0xa4]
cmove eax, esi
mov dword [eax + 8], edi
mov edi, esi
mov esi, dword [esp + 0x90]
mov dword [esi], ecx
mov dword [eax + 4], edx
push ebx
jmp 0x496a50
mov esi, edi
mov dword [esp + 8], ebx
mov eax, dword [ebp + 0x10]
jmp 0x491947
mov dword [esp + 0x64], str.unexpected_control_character_in_string
mov dword [esp + 0x68], str.unexpected_control_character_in_string
jmp 0x498b5a
mov dword [esp + 0x64], str.invalid_UTF_8_encoding_in_string
mov dword [esp + 0x68], str.invalid_UTF_8_encoding_in_string
jmp 0x498b5a
mov dword [esp + 0x64], str.invalid_escaped_sequence_in_string
mov dword [esp + 0x68], str.invalid_escaped_sequence_in_string
jmp 0x498b5a
mov dword [esp + 0x64], str.invalid_high_surrogate_in_string
mov dword [esp + 0x68], str.invalid_high_surrogate_in_string
jmp 0x498b5a
mov dword [esp + 0x64], str.no_low_surrogate_in_string
mov dword [esp + 0x68], str.no_low_surrogate_in_string
mov dword [esp], edx
mov edi, edx
jmp 0x498b5d
mov dword [esp + 0x64], str.invalid_escaped_sequence_in_string
mov dword [esp + 0x68], str.invalid_escaped_sequence_in_string
jmp 0x496131
mov dword [esp + 0x64], str.invalid_low_surrogate_in_string
mov dword [esp + 0x68], str.invalid_low_surrogate_in_string
jmp 0x496131
mov dword [esp + 0x64], str.unclosed_string
mov dword [esp + 0x68], str.unclosed_string
jmp 0x498b5a
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x1c]
jmp 0x491e64
mov edi, esp
mov dword [esp + 0x74], eax
movzx eax, word [esi]
cmp eax, 0x2020
jne 0x4962de
add esi, 0x10
nop dword [eax + eax]
lea ecx, [esi - 0xe]
mov dword [esp], ecx
movzx eax, word [esi - 0xe]
cmp eax, 0x2020
jne 0x4962dc
lea ecx, [esi - 0xc]
mov dword [esp], ecx
movzx eax, word [esi - 0xc]
cmp eax, 0x2020
jne 0x4962dc
lea ecx, [esi - 0xa]
mov dword [esp], ecx
movzx eax, word [esi - 0xa]
cmp eax, 0x2020
jne 0x4962dc
lea ecx, [esi - 8]
mov dword [esp], ecx
movzx eax, word [esi - 8]
cmp eax, 0x2020
jne 0x4962dc
lea ecx, [esi - 6]
mov dword [esp], ecx
movzx eax, word [esi - 6]
cmp eax, 0x2020
jne 0x4962dc
lea ecx, [esi - 4]
mov dword [esp], ecx
movzx eax, word [esi - 4]
cmp eax, 0x2020
jne 0x4962dc
lea ecx, [esi - 2]
mov dword [esp], ecx
movzx eax, word [esi - 2]
cmp eax, 0x2020
jne 0x4962dc
mov dword [esp], esi
movzx eax, word [esi]
cmp eax, 0x2020
jne 0x4962de
lea ecx, [esi + 2]
mov dword [esp], ecx
movzx eax, word [esi + 2]
cmp eax, 0x2020
jne 0x4962dc
lea ecx, [esi + 4]
mov dword [esp], ecx
movzx eax, word [esi + 4]
cmp eax, 0x2020
jne 0x4962dc
lea ecx, [esi + 6]
mov dword [esp], ecx
movzx eax, word [esi + 6]
cmp eax, 0x2020
jne 0x4962dc
lea ecx, [esi + 8]
mov dword [esp], ecx
movzx eax, word [esi + 8]
cmp eax, 0x2020
jne 0x4962dc
lea ecx, [esi + 0xa]
mov dword [esp], ecx
movzx eax, word [esi + 0xa]
cmp eax, 0x2020
jne 0x4962dc
lea ecx, [esi + 0xc]
mov dword [esp], ecx
movzx eax, word [esi + 0xc]
cmp eax, 0x2020
jne 0x4962dc
lea ecx, [esi + 0xe]
mov dword [esp], ecx
movzx eax, word [esi + 0xe]
cmp eax, 0x2020
jne 0x4962dc
lea eax, [esi + 0x10]
mov dword [esp], eax
movzx eax, word [esi + 0x10]
add esi, 0x20
cmp eax, 0x2020
je 0x4961a0
add esi, 0xfffffff0
jmp 0x4962de
mov esi, ecx
cmp al, 0x22
je 0x496347
mov dword [esp + 8], edx
movzx ecx, al
cmp ecx, 0x7d
je 0x49786c
movzx eax, al
test byte [eax + 0x4fdfe6], 1
jne 0x496328
mov eax, dword [ebp + 0x10]
test al, 8
je 0x4969f2
mov ecx, edi
call dbg.skip_spaces_and_comments
mov esi, dword [esp]
test al, al
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x74]
jne 0x496183
jmp 0x491936
inc esi
mov dword [esp], esi
movzx eax, byte [esi]
inc esi
test byte [eax + 0x4fdfe6], 1
jne 0x496329
dec esi
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x74]
jmp 0x496183
mov eax, dword [esp + 0x10]
add eax, 0x10
cmp eax, dword [esp + 0x80]
jae 0x497884
mov dword [esp + 0x20], eax
mov dword [esp + 8], edx
mov eax, dword [esp + 0x54]
inc eax
mov dword [esp + 0x1c], eax
inc esi
mov eax, esi
mov ebx, 0xd
movzx edx, byte [eax]
test byte [edx + 0x4fdfe6], 0xc
jne 0x496524
add eax, 8
mov edi, eax
nop dword [eax]
movzx edx, byte [edi - 7]
test byte [edx + 0x4fdfe6], 0xc
jne 0x49648f
movzx edx, byte [edi - 6]
test byte [edx + 0x4fdfe6], 0xc
jne 0x496494
movzx edx, byte [edi - 5]
test byte [edx + 0x4fdfe6], 0xc
jne 0x496499
movzx edx, byte [edi - 4]
test byte [edx + 0x4fdfe6], 0xc
jne 0x49649e
movzx edx, byte [edi - 3]
test byte [edx + 0x4fdfe6], 0xc
jne 0x4964a3
movzx edx, byte [edi - 2]
test byte [edx + 0x4fdfe6], 0xc
jne 0x4964a8
movzx edx, byte [edi - 1]
test byte [edx + 0x4fdfe6], 0xc
jne 0x4964ad
movzx edx, byte [edi]
test byte [edx + 0x4fdfe6], 0xc
jne 0x4964cf
movzx edx, byte [edi + 1]
test byte [edx + 0x4fdfe6], 0xc
jne 0x4964b0
movzx edx, byte [edi + 2]
test byte [edx + 0x4fdfe6], 0xc
jne 0x4964b3
movzx edx, byte [edi + 3]
test byte [edx + 0x4fdfe6], 0xc
jne 0x4964b8
movzx edx, byte [edi + 4]
test byte [edx + 0x4fdfe6], 0xc
jne 0x4964bd
movzx edx, byte [edi + 5]
test byte [edx + 0x4fdfe6], 0xc
jne 0x4964c2
movzx edx, byte [edi + 6]
test byte [edx + 0x4fdfe6], 0xc
jne 0x4964c7
movzx edx, byte [edi + 7]
test byte [edx + 0x4fdfe6], 0xc
jne 0x4964cc
movzx edx, byte [edi + 8]
add edi, 0x10
test byte [edx + 0x4fdfe6], 0xc
je 0x496390
add edi, 0xfffffff8
jmp 0x4964cf
add edi, 0xfffffff9
jmp 0x4964cf
add edi, 0xfffffffa
jmp 0x4964cf
add edi, 0xfffffffb
jmp 0x4964cf
add edi, 0xfffffffc
jmp 0x4964cf
add edi, 0xfffffffd
jmp 0x4964cf
add edi, 0xfffffffe
jmp 0x4964cf
dec edi
jmp 0x4964cf
inc edi
jmp 0x4964cf
add edi, 2
jmp 0x4964cf
add edi, 3
jmp 0x4964cf
add edi, 4
jmp 0x4964cf
add edi, 5
jmp 0x4964cf
add edi, 6
jmp 0x4964cf
add edi, 7
mov dword [esp + 0x10], 0
cmp dl, 0x22
je 0x49659c
test dl, dl
jns 0x497960
mov ecx, dword [edi]
mov eax, ecx
and eax, 0xc0c0f0
cmp eax, 0x8080e0
jne 0x496528
mov eax, edi
mov edx, ecx
and edx, 0x200f
je 0x49652a
cmp edx, 0x200d
je 0x49652a
mov ecx, dword [eax + 3]
add eax, 3
mov edx, ecx
and edx, 0xc0c0f0
cmp edx, 0x8080e0
je 0x4964fa
jmp 0x49652a
mov edi, eax
jmp 0x4964cf
mov eax, edi
test cl, cl
jns 0x496374
mov edx, ecx
and edx, 0xc0e0
cmp edx, 0x80c0
jne 0x496557
mov edx, ecx
and edx, 0x1e
je 0x496557
mov ecx, dword [eax + 2]
add eax, 2
jmp 0x496532
mov ecx, dword [eax + 4]
add eax, 4
mov edx, ecx
and edx, 0xc0c0c0f8
cmp edx, 0x808080f0
jne 0x49657e
mov edx, ecx
and edx, 0x3007
je 0x49657e
test cl, 4
je 0x496551
and ecx, 0x3003
je 0x496551
cmp edi, eax
jne 0x496374
cmp byte [esp + 0x98], 0
je 0x4960e2
inc edi
mov eax, edi
jmp 0x496374
mov ecx, edi
mov eax, ecx
sub eax, esi
mov edx, eax
sar edx, 0x1f
shld edx, eax, 8
or edx, dword [esp + 0x10]
shl eax, 8
or eax, ebx
mov ebx, dword [esp + 0x20]
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebx + 8], esi
mov byte [ecx], 0
lea esi, [edi + 1]
mov dword [esp], esi
movzx eax, word [edi + 1]
cmp eax, 0x203a
jne 0x49682c
add esi, 2
mov dword [esp], esi
movzx ebx, byte [esi]
cmp bl, 0x22
jne 0x496941
mov eax, dword [esp + 0x20]
add eax, 0x10
mov dword [esp + 0x10], eax
add dword [esp + 0x54], 2
inc esi
mov eax, esi
mov ebx, 0xd
movzx edx, byte [eax]
test byte [edx + 0x4fdfe6], 0xc
jne 0x4967b4
add eax, 8
mov edi, eax
nop word [eax + eax]
movzx edx, byte [edi - 7]
test byte [edx + 0x4fdfe6], 0xc
jne 0x49671f
movzx edx, byte [edi - 6]
test byte [edx + 0x4fdfe6], 0xc
jne 0x496724
movzx edx, byte [edi - 5]
test byte [edx + 0x4fdfe6], 0xc
jne 0x496729
movzx edx, byte [edi - 4]
test byte [edx + 0x4fdfe6], 0xc
jne 0x49672e
movzx edx, byte [edi - 3]
test byte [edx + 0x4fdfe6], 0xc
jne 0x496733
movzx edx, byte [edi - 2]
test byte [edx + 0x4fdfe6], 0xc
jne 0x496738
movzx edx, byte [edi - 1]
test byte [edx + 0x4fdfe6], 0xc
jne 0x49673d
movzx edx, byte [edi]
test byte [edx + 0x4fdfe6], 0xc
jne 0x49675f
movzx edx, byte [edi + 1]
test byte [edx + 0x4fdfe6], 0xc
jne 0x496740
movzx edx, byte [edi + 2]
test byte [edx + 0x4fdfe6], 0xc
jne 0x496743
movzx edx, byte [edi + 3]
test byte [edx + 0x4fdfe6], 0xc
jne 0x496748
movzx edx, byte [edi + 4]
test byte [edx + 0x4fdfe6], 0xc
jne 0x49674d
movzx edx, byte [edi + 5]
test byte [edx + 0x4fdfe6], 0xc
jne 0x496752
movzx edx, byte [edi + 6]
test byte [edx + 0x4fdfe6], 0xc
jne 0x496757
movzx edx, byte [edi + 7]
test byte [edx + 0x4fdfe6], 0xc
jne 0x49675c
movzx edx, byte [edi + 8]
add edi, 0x10
test byte [edx + 0x4fdfe6], 0xc
je 0x496620
add edi, 0xfffffff8
jmp 0x49675f
add edi, 0xfffffff9
jmp 0x49675f
add edi, 0xfffffffa
jmp 0x49675f
add edi, 0xfffffffb
jmp 0x49675f
add edi, 0xfffffffc
jmp 0x49675f
add edi, 0xfffffffd
jmp 0x49675f
add edi, 0xfffffffe
jmp 0x49675f
dec edi
jmp 0x49675f
inc edi
jmp 0x49675f
add edi, 2
jmp 0x49675f
add edi, 3
jmp 0x49675f
add edi, 4
jmp 0x49675f
add edi, 5
jmp 0x49675f
add edi, 6
jmp 0x49675f
add edi, 7
mov dword [esp + 0x1c], 0
cmp dl, 0x22
je 0x496890
test dl, dl
jns 0x4985b2
mov ecx, dword [edi]
mov eax, ecx
and eax, 0xc0c0f0
cmp eax, 0x8080e0
jne 0x4967b8
mov eax, edi
mov edx, ecx
and edx, 0x200f
je 0x4967ba
cmp edx, 0x200d
je 0x4967ba
mov ecx, dword [eax + 3]
add eax, 3
mov edx, ecx
and edx, 0xc0c0f0
cmp edx, 0x8080e0
je 0x49678a
jmp 0x4967ba
mov edi, eax
jmp 0x49675f
mov eax, edi
test cl, cl
jns 0x496602
mov edx, ecx
and edx, 0xc0e0
cmp edx, 0x80c0
jne 0x4967e7
mov edx, ecx
and edx, 0x1e
je 0x4967e7
mov ecx, dword [eax + 2]
add eax, 2
jmp 0x4967c2
mov ecx, dword [eax + 4]
add eax, 4
mov edx, ecx
and edx, 0xc0c0c0f8
cmp edx, 0x808080f0
jne 0x49680e
mov edx, ecx
and edx, 0x3007
je 0x49680e
test cl, 4
je 0x4967e1
and ecx, 0x3003
je 0x4967e1
cmp edi, eax
jne 0x496602
cmp byte [esp + 0x98], 0
je 0x4960e2
inc edi
mov eax, edi
jmp 0x496602
mov edi, esp
movzx eax, al
cmp eax, 0x3a
je 0x496a8f
test byte [eax + 0x4fdfe6], 1
jne 0x496861
mov eax, dword [ebp + 0x10]
test al, 8
je 0x4969f2
mov ecx, edi
call dbg.skip_spaces_and_comments
mov esi, dword [esp]
test al, al
jne 0x496881
jmp 0x491936
inc esi
nop word cs:[eax + eax]
mov dword [esp], esi
movzx eax, byte [esi]
inc esi
test byte [eax + 0x4fdfe6], 1
jne 0x496870
dec esi
movzx eax, word [esi]
cmp eax, 0x203a
jne 0x49682e
jmp 0x4965d8
mov ecx, edi
mov eax, ecx
sub eax, esi
mov edx, eax
sar edx, 0x1f
shld edx, eax, 8
or edx, dword [esp + 0x1c]
shl eax, 8
or eax, ebx
mov ebx, dword [esp + 0x20]
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], edx
mov dword [ebx + 0x18], esi
mov byte [ecx], 0
inc edi
mov dword [esp], edi
mov edx, dword [esp + 8]
mov esi, dword [esp]
movzx eax, word [esi]
cmp eax, 0xa2c
jne 0x4968d2
add esi, 2
jmp 0x496935
mov edi, esp
cmp al, 0x2c
je 0x496934
mov dword [esp + 8], edx
movzx ecx, al
cmp ecx, 0x7d
je 0x4978fd
movzx eax, al
test byte [eax + 0x4fdfe6], 1
jne 0x496912
mov eax, dword [ebp + 0x10]
test al, 8
je 0x4969f2
mov ecx, edi
call dbg.skip_spaces_and_comments
mov esi, dword [esp]
test al, al
jne 0x496924
jmp 0x491936
inc esi
mov dword [esp], esi
movzx eax, byte [esi]
inc esi
test byte [eax + 0x4fdfe6], 1
jne 0x496913
dec esi
movzx eax, word [esi]
cmp eax, 0xa2c
mov edx, dword [esp + 8]
jne 0x4968d4
jmp 0x4968cd
inc esi
mov dword [esp], esi
mov eax, dword [esp + 0x74]
jmp 0x496181
mov edi, esp
movzx eax, bl
movzx ecx, byte [eax + 0x4fdfe6]
test cl, 2
jne 0x496a95
lea edx, [eax - 0x5b]
cmp edx, 0x20
ja case.0x49695e.92
jmp dword [edx*4 + 0x501220]
test cl, 1
jne 0x49698e
mov ecx, dword [ebp + 0x10]
test cl, 0x10
jne 0x4969ab
test cl, 8
je 0x4969f0
mov ecx, edi
call dbg.skip_spaces_and_comments
mov esi, dword [esp]
test al, al
je 0x491936
movzx ebx, byte [esi]
jmp 0x4969a1
inc esi
nop
mov dword [esp], esi
movzx ebx, byte [esi]
inc esi
test byte [ebx + 0x4fdfe6], 1
jne 0x496990
dec esi
cmp bl, 0x22
jne 0x496943
jmp 0x4965ea
cmp bl, 0x49
je 0x4969ba
cmp eax, 0x69
je 0x4969ba
cmp eax, 0x4e
jne 0x496972
mov ecx, dword [esp + 0x20]
add ecx, 0x10
mov dword [esp + 0x10], ecx
add dword [esp + 0x54], 2
mov edx, ebx
cmp bl, 0x49
je 0x49850a
cmp eax, 0x69
je 0x49850a
cmp eax, 0x4e
jne case.0x4889e0.74
movzx eax, byte [esi + 1]
jmp 0x498ca1
mov eax, ecx
mov edi, dword [esp + 0x88]
mov ecx, edi
mov edx, esi
push eax
push 6
mov ebx, dword [esp + 0x8c]
push ebx
call dbg.is_truncated_end
add esp, 0xc
movzx edx, al
mov ecx, 6
sub ecx, edx
test al, al
cmovne esi, ebx
mov eax, 0x4fe0e6
mov edx, str.unexpected_character
cmovne edx, eax
sub esi, edi
mov eax, dword [ebp + 0x18]
test eax, eax
lea edi, [esp + 0xa4]
cmove eax, edi
mov dword [eax + 8], esi
mov esi, dword [esp + 0x90]
mov dword [esi], ecx
mov dword [eax + 4], edx
push dword [esp + 8]
push dword [esp + 0x7c]
mov esi, dword [esp + 0x94]
call esi
add esp, 8
xor ebx, ebx
test ebx, ebx
je 0x489b6d
mov eax, dword [esp + 0x90]
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 8], 0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
inc esi
jmp 0x4965db
add dword [esp + 0x54], 2
mov eax, dword [ebp + 0x10]
test al, al
sets al
mov ecx, dword [esp + 0x48]
xor cl, 1
or cl, al
mov eax, dword [esp + 0x20]
lea eax, [eax + 0x10]
mov dword [esp + 0x10], eax
mov dword [esp + 0x9c], 0
je 0x498c71
xor edx, edx
cmp bl, 0x2d
sete dl
lea ecx, [esi + edx]
movzx eax, byte [esi + edx]
test byte [eax + 0x4fe4d8], 2
mov dword [esp + 0x1c], ecx
je 0x497efc
add eax, 0xffffffd0
movzx edx, byte [ecx + 1]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x497f50
mov ecx, 0xa
imul ecx
mov ecx, edx
add eax, edi
adc ecx, 0
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 2]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x497fab
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 3]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x497ff7
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 4]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x498043
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 5]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x49808f
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 6]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x4980db
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 7]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x498127
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 8]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x498173
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 9]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x4981bf
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 0xa]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x49820b
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 0xb]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x498257
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 0xc]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x4982a3
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 0xd]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x4982ef
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 0xe]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x49833b
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 0xf]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x498387
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 0x10]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x4983d3
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 0x11]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x49841f
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
adc ecx, edx
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 0x12]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x498467
mov edx, 0xa
mul edx
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, edi
mov dword [esp + 4], eax
adc ecx, edx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
lea eax, [ecx + 0x13]
mov dword [esp + 0xc], eax
movzx eax, byte [ecx + 0x13]
movzx edi, al
movzx edx, byte [edi + 0x4fe4d8]
test dl, 0x33
je 0x496e88
mov dword [esp + 0x18], eax
test dl, 3
je 0x496db4
mov eax, ecx
movzx ecx, byte [ecx + 0x14]
test byte [ecx + 0x4fe4d8], 0x33
mov ecx, eax
je 0x496f55
xor edi, edi
test dl, 0x20
jne 0x496efa
mov dword [esp + 0x14], 0
cmp byte [esp + 0x18], 0x2e
jne 0x497029
movzx eax, byte [ecx + 0x14]
add ecx, 0x14
test byte [eax + 0x4fe4d8], 3
je 0x495e39
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], eax
jmp 0x49702d
mov eax, dword [esp + 0x20]
lea ecx, [eax + 0x10]
add dword [esp + 0x54], 2
mov eax, dword [esi]
cmp eax, 0x6c6c756e
mov dword [esp + 0x10], ecx
jne 0x4984c9
mov dword [ecx + 4], 0
mov dword [ecx], 2
jmp 0x496e4d
cmp dword [esi], 0x65757274
jne 0x4919fd
add dword [esp + 0x54], 2
mov ecx, dword [esp + 0x20]
lea eax, [ecx + 0x10]
mov dword [esp + 0x10], eax
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0xb
add esi, 4
jmp 0x496e80
cmp dword [esi + 1], 0x65736c61
jne 0x4919fd
add dword [esp + 0x54], 2
mov ecx, dword [esp + 0x20]
lea eax, [ecx + 0x10]
mov dword [esp + 0x10], eax
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 3
add esi, 5
mov dword [esp], esi
jmp 0x4968bc
cmp bl, 0x2d
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 4]
jne 0x496f19
mov eax, 0x80000000
mov ecx, edx
neg ecx
sbb eax, edi
jae 0x496f19
mov eax, dword [ebp + 0x10]
test al, al
mov eax, dword [esp + 0x20]
js 0x498d63
mov dword [eax + 0x14], 0
movd xmm0, edx
movd xmm1, edi
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x4fde70]
subpd xmm0, xmmword [0x4fde80]
mov dword [eax + 0x10], 0x14
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
xorpd xmm1, xmmword [0x4fde90]
movlpd qword [eax + 0x18], xmm1
jmp 0x496f4c
mov ecx, dword [esp + 0xc]
xor eax, eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x4c], 0
mov edx, dword [esp + 4]
jmp 0x49714c
xor eax, eax
mov ecx, edx
neg ecx
sbb eax, edi
xor edx, edx
cmp bl, 0x2d
sete dl
lea edx, [edx*8 + 4]
mov esi, dword [esp + 0x20]
mov dword [esi + 0x10], edx
cmovne eax, edi
cmovne ecx, dword [esp + 4]
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0xc]
jmp 0x4974f7
add edi, 0xffffffd0
cmp dword [esp + 4], 0x99999999
mov ecx, dword [esp + 0x24]
sbb ecx, 0x19999999
mov ecx, eax
lea ecx, [eax + 0x14]
mov dword [esp + 0x14], ecx
jb 0x496fa7
mov dword [esp + 0x34], 0x99999999
mov ecx, dword [esp + 0x34]
xor ecx, dword [esp + 4]
mov dword [esp + 0x34], ecx
mov ecx, 0x19999999
xor ecx, dword [esp + 0x24]
or ecx, dword [esp + 0x34]
mov ecx, eax
jne 0x496db4
cmp edi, 5
ja 0x496db4
mov ecx, 0xa
mov eax, dword [esp + 4]
mul ecx
mov ecx, dword [esp + 0x24]
lea ecx, [ecx + ecx*4]
lea edx, [edx + ecx*2]
mov ecx, edi
sar ecx, 0x1f
add eax, edi
adc edx, ecx
cmp bl, 0x2d
jne 0x4970bf
mov ecx, dword [ebp + 0x10]
test cl, cl
js 0x4990b5
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x14], 0
movd xmm0, eax
movd xmm1, edx
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x4fde70]
subpd xmm0, xmmword [0x4fde80]
mov dword [ecx + 0x10], 0x14
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
xorpd xmm1, xmmword [0x4fde90]
movlpd qword [ecx + 0x18], xmm1
mov eax, dword [esp + 0x14]
jmp 0x4974f7
mov ecx, dword [esp + 0xc]
mov edi, ecx
inc ecx
mov dword [esp + 0x1c], edi
sub edi, esi
movzx eax, byte [ecx]
movzx edx, byte [eax + 0x4fe4d8]
inc ecx
inc edi
test dl, 3
jne 0x497036
mov dword [esp + 0xc], eax
mov byte [esp + 0x3c], dl
xor eax, eax
cmp byte [esp + 0x18], 0x35
setae al
add dword [esp + 4], eax
adc dword [esp + 0x24], 0
lea edx, [ecx - 1]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x497071
mov ecx, edx
jmp 0x4970e8
mov dword [esp + 0x38], ebx
mov ebx, dword [ebp + 0x10]
test bl, bl
jns 0x49708a
movzx ebx, byte [esp + 0x3c]
and bl, 0x30
je 0x4990fa
cmp byte [esp + 0xc], 0x2e
jne 0x4970e0
movzx eax, byte [ecx]
test byte [eax + 0x4fe4d8], 3
je 0x495e39
mov ecx, edx
movzx eax, byte [ecx + 1]
inc ecx
movzx eax, byte [eax + 0x4fe4d8]
test al, 3
jne 0x4970a3
mov byte [esp + 0x3c], al
mov ebx, dword [esp + 0x38]
mov eax, edx
jmp 0x4970e8
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 4
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], edx
mov eax, dword [esp + 0x14]
jmp 0x4974f7
mov eax, edx
mov ecx, edx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x34], ecx
lea edx, [ecx - 1]
jmp 0x4970f2
dec edx
movzx ecx, byte [edx]
cmp ecx, 0x30
je 0x4970f1
cmp ecx, 0x2e
je 0x4970f1
mov edi, eax
mov ecx, dword [esp + 0x1c]
sub edi, ecx
sar edi, 0x1f
mov dword [esp + 0xc], eax
sub eax, ecx
adc eax, 0
mov dword [esp + 0x18], eax
adc edi, 0
cmp edx, ecx
mov eax, dword [esp + 0x34]
mov edx, 0
cmovb eax, edx
mov dword [esp + 0x30], eax
mov eax, edi
cmovb ecx, edx
mov dword [esp + 0x4c], ecx
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x34]
test byte [esp + 0x3c], 0x20
mov edx, dword [esp + 4]
je 0x49720e
mov dword [esp + 0x3c], eax
mov dword [esp + 0x18], edi
mov dword [esp + 4], edx
movzx edx, byte [ecx + 1]
xor eax, eax
mov dword [esp + 0x1c], edx
test byte [edx + 0x4fe4d8], 0xc
setne al
mov edi, ecx
movzx ecx, byte [ecx + eax + 1]
test byte [ecx + 0x4fe4d8], 3
je 0x497ee9
add edi, eax
mov ecx, edi
movzx edx, byte [ecx + 1]
inc ecx
inc edi
cmp edx, 0x30
je 0x497184
mov dword [esp + 0x14], edi
mov dword [esp + 0x38], ebx
xor eax, eax
test byte [edx + 0x4fe4d8], 3
je 0x4971d0
xor eax, eax
xor edi, edi
add dl, 0xd0
movzx ebx, dl
mov edx, 0xa
mul edx
add edi, edi
add eax, ebx
lea ebx, [ecx + 1]
lea edi, [edi + edi*4]
adc edi, edx
movzx edx, byte [ecx + 1]
test byte [edx + 0x4fe4d8], 3
mov ecx, ebx
jne 0x4971a6
jmp 0x4971d4
mov ebx, ecx
xor edi, edi
mov dword [esp + 0x34], ebx
mov ecx, ebx
sub ecx, dword [esp + 0x14]
cmp ecx, 0x13
jge 0x498cfa
xor ecx, ecx
mov edx, eax
neg edx
sbb ecx, edi
cmp byte [esp + 0x1c], 0x2d
cmovne ecx, edi
cmovne edx, eax
mov edi, dword [esp + 0x18]
add edi, edx
mov eax, dword [esp + 0x3c]
adc eax, ecx
mov ebx, dword [esp + 0x38]
mov edx, dword [esp + 4]
mov ecx, 0xfffffea8
cmp ecx, edi
mov ecx, 0xffffffff
sbb ecx, eax
jge 0x498bc1
cmp edi, 0x135
sbb eax, 0
jge 0x498bcb
mov dword [esp + 0x9c], edi
test dword [esp + 0x24], 0xffe00000
jne 0x497290
cmp edi, 0xffffffea
jl 0x497290
cmp edi, 0x16
jg 0x497290
movd xmm1, edx
movd xmm0, dword [esp + 0x24]
punpckldq xmm1, xmm0
punpckldq xmm1, xmmword [0x4fde70]
subpd xmm1, xmmword [0x4fde80]
movapd xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm0, xmm1
test edi, edi
mov edx, dword [esp + 8]
js 0x4974ff
mulsd xmm0, qword [edi*8 + 0x4fe420]
jmp 0x49750d
mov dword [esp + 4], edx
cmp dword [esp + 0x4c], 0
sete cl
cmp edi, 0xfffffece
setge dl
cmp edi, 0x120
setl al
test cl, dl
je 0x498be6
test al, al
je 0x498bf0
mov eax, edi
shl eax, 4
mov dword [esp + 0x40], eax
mov dword [esp + 0x18], edi
imul eax, edi, 0x3526a
add eax, 0xffc10000
sar eax, 0x10
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x24]
bsr eax, edx
xor eax, 0x1f
mov edi, dword [esp + 4]
bsr ecx, edi
xor ecx, 0x1f
add ecx, 0x20
test edx, edx
cmovne ecx, eax
shld edx, edi, cl
shl edi, cl
xor eax, eax
mov dword [esp + 0x3c], ecx
test cl, 0x20
cmovne edx, edi
mov dword [esp + 0x58], edx
mov dword [esp + 0x14], 0
cmovne edi, eax
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + 0x4ffb48]
mov dword [esp + 0x60], eax
mul edi
mov dword [esp + 0x7c], eax
mov dword [esp + 0x50], edx
mov eax, dword [ecx + 0x4ffb4c]
mov dword [esp + 0x40], eax
mov dword [esp + 0x5c], edi
mul edi
mov edi, dword [esp + 0x58]
mov dword [esp + 0x6c], edx
mov ecx, eax
mov eax, dword [esp + 0x60]
mul edi
mov dword [esp + 0x44], edx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x40]
mul edi
add ecx, dword [esp + 0x50]
adc eax, dword [esp + 0x6c]
adc edx, 0
add ecx, dword [esp + 0x70]
mov dword [esp + 0x50], ecx
adc eax, dword [esp + 0x44]
adc edx, 0
mov dword [esp + 0x44], eax
and eax, 0x1ff
add eax, 0xffffffff
mov ecx, 0
adc ecx, 0xffffffff
cmp eax, 0x1fe
sbb ecx, 0
jae 0x4973a4
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x44]
jmp 0x49747a
mov dword [esp + 0xb8], edx
mov dword [esp + 0x38], ebx
mov eax, dword [esp + 0x18]
add eax, eax
mov ebx, dword [eax*8 + 0x4ffb54]
mov dword [esp + 0x6c], ebx
mov eax, dword [eax*8 + 0x4ffb50]
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x5c]
mul ecx
mov dword [esp + 0x18], edx
mov eax, ebx
mul ecx
mov ebx, edx
mov ecx, eax
mov eax, dword [esp + 0x70]
mul edi
mov dword [esp + 0x70], edx
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x6c]
mul edi
add ecx, dword [esp + 0x18]
adc ebx, 0
add ecx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x70]
adc ecx, 0
add ebx, eax
adc edx, 0
add ebx, ecx
adc edx, 0
mov dword [esp + 0x18], ebx
add ebx, dword [esp + 0x7c]
mov dword [esp + 0x70], edx
mov eax, edx
mov edx, ebx
adc eax, dword [esp + 0x50]
mov edi, ebx
add edi, 0xffffffff
mov ebx, eax
adc ebx, 0xffffffff
mov ecx, 0xfffffffd
cmp ecx, edi
mov ecx, 0xffffffff
sbb ecx, ebx
jb 0x49753e
cmp edx, dword [esp + 0x7c]
mov ecx, eax
sbb ecx, dword [esp + 0x50]
setb cl
cmp edx, dword [esp + 0x18]
sbb eax, dword [esp + 0x70]
setb al
or al, cl
movzx eax, al
mov esi, dword [esp + 0x44]
add esi, eax
mov edx, dword [esp + 0xb8]
adc edx, 0
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x38]
xor eax, eax
cmp bl, 0x2d
sete al
mov dword [esp + 0x20], eax
xor eax, eax
test edx, edx
setns al
mov ecx, eax
shld edx, esi, cl
shl esi, cl
mov ecx, edx
mov edx, esi
and edx, 0x400
add edx, esi
adc ecx, 0
mov ebx, dword [esp + 0x1c]
sub ebx, dword [esp + 0x3c]
sub ebx, eax
mov eax, ecx
shld eax, edx, 0x15
mov esi, ecx
shr esi, 0xb
cmp edx, 0x400
sbb ecx, 0
adc ebx, 0
shl ebx, 0x14
and esi, 0xfffff
lea edx, [ebx + esi]
add edx, 0x47e00000
mov ecx, dword [esp + 0x20]
shl ecx, 0x1f
or ecx, edx
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0x14
mov dword [edi + 0x1c], ecx
mov dword [edi + 0x18], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
jmp 0x4968bc
shl edi, 3
mov eax, 0x4fe420
sub eax, edi
divsd xmm0, qword [eax]
mov eax, dword [esp + 0x20]
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0x14
movapd xmm1, xmmword [0x4fde90]
xorpd xmm1, xmm0
cmp bl, 0x2d
je 0x497534
movapd xmm1, xmm0
movsd qword [eax + 0x18], xmm1
jmp 0x497860
mov ebx, dword [esp + 0x38]
xor edx, edx
cmp dword [esp + 0x4c], 0
setne dl
shl edx, 2
xor eax, eax
mov ecx, dword [esp + 0x3c]
shld eax, edx, cl
shl edx, cl
mov edi, edx
xor edx, edx
test cl, 0x20
cmovne eax, edi
mov dword [esp + 0x18], eax
cmovne edi, edx
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x6c]
shr edi, 0x1f
add edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x40]
adc ecx, 0
mov eax, edi
mul dword [esp + 0x5c]
mov dword [esp + 0x60], edx
mov eax, edi
imul eax, dword [esp + 0x14]
add dword [esp + 0x60], eax
mov eax, ecx
mul dword [esp + 0x5c]
mov dword [esp + 0x40], eax
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x14]
imul eax, ecx
mov dword [esp + 0x6c], eax
mov eax, edi
mul dword [esp + 0x58]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x5c], edx
imul edi, dword [esp + 0x14]
mov dword [esp + 0x70], edi
mov eax, ecx
mul dword [esp + 0x58]
mov dword [esp + 0x58], eax
mov edi, edx
mov eax, dword [esp + 0x14]
imul eax, ecx
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x40]
add ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x50]
adc edx, dword [esp + 0x6c]
add ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x70]
adc dword [esp + 0x5c], eax
add edx, dword [esp + 0x58]
adc edi, dword [esp + 0x14]
add edx, dword [esp + 0x5c]
adc edi, 0
shr ecx, 0x1f
add ecx, edx
mov dword [esp + 0x40], ecx
adc edi, 0
xor edx, edx
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x18]
or eax, ecx
sete dl
xor edx, 9
add edx, dword [esp + 0x44]
adc ecx, 0
mov dword [esp + 0x18], ecx
bsr eax, edi
xor eax, 0x1f
bsr ecx, dword [esp + 0x40]
xor ecx, 0x1f
add ecx, 0x20
test edi, edi
cmovne ecx, eax
mov eax, dword [esp + 0x40]
shld edi, eax, cl
mov eax, ecx
add eax, dword [esp + 0x3c]
sub dword [esp + 0x1c], eax
mov eax, dword [esp + 0x40]
shl eax, cl
shld dword [esp + 0x18], edx, cl
shl edx, cl
add dword [esp + 0x1c], 0x40
test cl, 0x20
cmovne edi, eax
mov dword [esp + 0x14], edi
mov edi, 0
cmovne eax, edi
mov ecx, dword [esp + 0x18]
cmovne ecx, edx
mov dword [esp + 0x18], ecx
mov ecx, 0
cmovne edx, edi
mov dword [esp + 0x3c], edx
mov edi, dword [esp + 0x1c]
cmp edi, 0xfffffbc2
jle 0x498d99
mov edi, 0xb
mov edx, dword [esp + 0x14]
mov ecx, edi
shr edx, cl
mov dword [esp + 0x58], edx
test cl, 0x20
mov edi, edx
mov edx, 0
cmovne edi, edx
mov dword [esp + 0x60], edi
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0x14]
shrd eax, edx, cl
test cl, 0x20
cmovne eax, dword [esp + 0x58]
mov dword [esp + 0x5c], eax
mov edx, 0xffffffff
shl edx, cl
test cl, 0x20
mov eax, 0xffffffff
mov edi, edx
cmove edx, eax
mov eax, 0
cmovne edi, eax
not edi
and edi, dword [esp + 0x40]
not edx
and edx, dword [esp + 0x14]
shld edx, edi, 3
mov dword [esp + 0x70], ecx
dec cl
mov eax, 8
mov dword [esp + 0x14], 0
shld dword [esp + 0x14], eax, cl
shl eax, cl
shl edi, 3
test cl, 0x20
mov ecx, dword [esp + 0x14]
cmovne ecx, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x58], 0
mov ecx, 0
cmovne eax, ecx
mov dword [esp + 0x6c], eax
add eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
adc ecx, dword [esp + 0x18]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x50], edi
mov dword [esp + 0x7c], eax
cmp edi, eax
mov edi, dword [esp + 0x60]
mov dword [esp + 0x44], edx
mov ecx, edx
sbb ecx, dword [esp + 0x40]
setae cl
movzx edx, cl
add edx, dword [esp + 0x5c]
adc edi, 0
mov ecx, edx
or ecx, edi
mov ecx, 0
mov eax, dword [esp + 0x1c]
je 0x4977ff
add eax, dword [esp + 0x70]
mov dword [esp + 0x1c], eax
bsr eax, edi
xor eax, 0x1f
bsr ecx, edx
xor ecx, 0x1f
add ecx, 0x20
test edi, edi
cmovne ecx, eax
shld edi, edx, cl
shl edx, cl
xor eax, eax
test cl, 0x20
cmovne edi, edx
cmove eax, edx
mov edx, eax
mov eax, dword [esp + 0x1c]
sub eax, ecx
cmp eax, 0x3c0
jg 0x498e18
shrd edx, edi, 0xb
shr edi, 0xb
cmp eax, 0xfffffbc2
jle 0x49907f
shl eax, 0x14
and edi, 0xfffff
add eax, edi
add eax, 0x43e00000
mov dword [esp + 0x58], eax
xor eax, 0x7ff00000
or eax, edx
mov ecx, edx
je 0x498e18
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x14]
sbb edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x50]
cmp eax, ecx
mov eax, dword [esp + 0x44]
sbb edx, eax
jae 0x49782f
cmp ecx, dword [esp + 0x7c]
sbb eax, dword [esp + 0x40]
jb 0x498e3b
xor eax, eax
cmp bl, 0x2d
sete al
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0x14
shl eax, 0x1f
mov edx, dword [esp + 0x58]
or edx, eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], edx
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x34]
mov dword [esp], eax
jmp 0x4968c0
lea edi, [esi + 1]
mov dword [esp], edi
cmp dword [esp + 0x54], 0
jne 0x499131
xor esi, esi
jmp 0x497907
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2c]
mov edi, eax
shr edi, 1
add edi, eax
cmp edi, 0xffffffe
mov dword [esp + 8], edx
ja 0x489c49
shl eax, 4
mov ebx, edi
shl ebx, 4
push ebx
push eax
push edx
push dword [esp + 0x84]
call dword [esp + 0xa4]
add esp, 0x10
mov esi, dword [esp]
test eax, eax
je 0x489c49
mov edx, dword [esp + 0x10]
sub edx, dword [esp + 8]
mov ecx, dword [esp + 0x74]
sub ecx, dword [esp + 8]
add edx, eax
add ecx, eax
mov dword [esp + 0x74], ecx
lea ecx, [ebx + eax]
add ecx, 0xffffffe0
mov dword [esp + 0x80], ecx
mov dword [esp + 0x20], edx
mov edx, eax
mov dword [esp + 0x2c], edi
jmp 0x49635f
inc esi
mov dword [esp], esi
mov edi, esi
mov esi, dword [esp + 0x54]
mov edx, dword [esp + 0x74]
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x10]
sub ecx, edx
add ecx, 0x10
mov dword [edx + 8], ecx
shl esi, 7
or esi, 7
mov dword [edx], esi
mov dword [edx + 4], 0
test eax, eax
je 0x4990f1
sub edx, eax
mov eax, dword [edx]
mov dword [esp + 0x74], edx
mov ecx, dword [edx + 4]
shld ecx, eax, 0x18
mov dword [esp + 0x54], ecx
cmp byte [edi], 0xa
jne 0x49794d
inc edi
mov dword [esp], edi
not eax
test al, 7
mov edx, dword [esp + 8]
jne 0x495eaf
jmp 0x4968c0
mov ecx, edi
cmp dl, 0x5c
jne 0x497db2
movzx edx, byte [edi + 1]
add edx, 0xffffffde
cmp edx, 0x53
ja case.0x4985cd.35
jmp dword [edx*4 + 0x501038]
mov byte [ecx], 0x22
jmp 0x497a54
mov byte [ecx], 0xa
jmp 0x497a54
mov byte [ecx], 0x2f
jmp 0x497a54
mov byte [ecx], 8
jmp 0x497a54
movzx eax, byte [edi + 2]
movzx edx, byte [eax + 0x4fe25d]
movzx eax, byte [edi + 3]
movzx ebx, byte [eax + 0x4fe25d]
movzx eax, byte [edi + 4]
movzx eax, byte [eax + 0x4fe25d]
mov dword [esp + 4], eax
movzx eax, byte [edi + 5]
movzx eax, byte [eax + 0x4fe25d]
shl edx, 8
add edx, dword [esp + 4]
shl ebx, 8
or ebx, eax
mov dword [esp + 4], ebx
mov eax, ebx
or eax, edx
test eax, 0xf0f0
jne 0x4960f7
shl edx, 4
mov eax, dword [esp + 4]
or eax, edx
lea edx, [edi + 6]
mov dword [esp + 4], eax
and eax, 0xf800
cmp eax, 0xd800
je 0x497de2
movzx eax, word [esp + 4]
cmp eax, 0x800
jb 0x497a5c
shr eax, 0xc
or al, 0xe0
mov byte [ecx], al
mov ebx, dword [esp + 4]
mov eax, ebx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [ecx + 1], al
and bl, 0x3f
or bl, 0x80
mov byte [ecx + 2], bl
add ecx, 3
jmp 0x497a90
mov byte [ecx], 0x5c
jmp 0x497a54
mov byte [ecx], 0xd
jmp 0x497a54
mov byte [ecx], 0xc
jmp 0x497a54
mov byte [ecx], 9
inc ecx
add edi, 2
mov edx, edi
jmp 0x497a90
cmp eax, 0x80
jb 0x497a7e
mov ebx, dword [esp + 4]
mov eax, ebx
shr eax, 6
or al, 0xc0
mov byte [ecx], al
and bl, 0x3f
or bl, 0x80
mov byte [ecx + 1], bl
add ecx, 2
jmp 0x497a90
mov eax, dword [esp + 4]
mov byte [ecx], al
inc ecx
jmp 0x497a90
cmp edi, edx
je 0x497d95
nop
movzx eax, byte [edx]
test byte [eax + 0x4fdfe6], 0xc
jne 0x497cd6
movzx eax, byte [edx + 1]
test byte [eax + 0x4fdfe6], 0xc
jne 0x497da5
movzx eax, byte [edx + 2]
test byte [eax + 0x4fdfe6], 0xc
jne 0x497bb2
movzx eax, byte [edx + 3]
test byte [eax + 0x4fdfe6], 0xc
jne 0x497bc3
movzx eax, byte [edx + 4]
test byte [eax + 0x4fdfe6], 0xc
jne 0x497bd2
movzx eax, byte [edx + 5]
test byte [eax + 0x4fdfe6], 0xc
jne 0x497be1
movzx eax, byte [edx + 6]
test byte [eax + 0x4fdfe6], 0xc
jne 0x497bf8
movzx eax, byte [edx + 7]
test byte [eax + 0x4fdfe6], 0xc
jne 0x497c0f
movzx eax, byte [edx + 8]
test byte [eax + 0x4fdfe6], 0xc
jne 0x497c22
movzx eax, byte [edx + 9]
test byte [eax + 0x4fdfe6], 0xc
jne 0x497c35
movzx eax, byte [edx + 0xa]
test byte [eax + 0x4fdfe6], 0xc
jne 0x497c50
movzx eax, byte [edx + 0xb]
test byte [eax + 0x4fdfe6], 0xc
jne 0x497c68
movzx eax, byte [edx + 0xc]
test byte [eax + 0x4fdfe6], 0xc
jne 0x497c7e
movzx eax, byte [edx + 0xd]
test byte [eax + 0x4fdfe6], 0xc
jne 0x497c94
movzx eax, byte [edx + 0xe]
test byte [eax + 0x4fdfe6], 0xc
jne 0x497cb2
movzx eax, byte [edx + 0xf]
test byte [eax + 0x4fdfe6], 0xc
movupd xmm0, xmmword [edx]
movupd xmmword [ecx], xmm0
jne 0x497cd0
add edx, 0x10
add ecx, 0x10
jmp 0x497a90
movzx eax, word [edx]
add edx, 2
mov word [ecx], ax
add ecx, 2
jmp 0x497cd6
mov eax, dword [edx]
add edx, 3
mov dword [ecx], eax
add ecx, 3
jmp 0x497cd6
mov eax, dword [edx]
add edx, 4
mov dword [ecx], eax
add ecx, 4
jmp 0x497cd6
lea edi, [edx + 5]
mov eax, dword [edx]
mov dword [ecx], eax
movzx eax, word [edx + 4]
mov word [ecx + 4], ax
add ecx, 5
jmp 0x497cd8
lea edi, [edx + 6]
mov eax, dword [edx]
mov dword [ecx], eax
movzx eax, word [edx + 4]
mov word [ecx + 4], ax
add ecx, 6
jmp 0x497cd8
movsd xmm0, qword [edx]
add edx, 7
movsd qword [ecx], xmm0
add ecx, 7
jmp 0x497cd6
movsd xmm0, qword [edx]
add edx, 8
movsd qword [ecx], xmm0
add ecx, 8
jmp 0x497cd6
lea edi, [edx + 9]
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
movzx eax, word [edx + 8]
mov word [ecx + 8], ax
add ecx, 9
jmp 0x497cd8
lea edi, [edx + 0xa]
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
movzx eax, word [edx + 8]
mov word [ecx + 8], ax
add ecx, 0xa
jmp 0x497cd8
lea edi, [edx + 0xb]
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
add ecx, 0xb
jmp 0x497cd8
lea edi, [edx + 0xc]
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
add ecx, 0xc
jmp 0x497cd8
lea edi, [edx + 0xd]
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
movzx eax, word [edx + 0xc]
mov word [ecx + 0xc], ax
add ecx, 0xd
jmp 0x497cd8
lea edi, [edx + 0xe]
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
movzx eax, word [edx + 0xc]
mov word [ecx + 0xc], ax
add ecx, 0xe
jmp 0x497cd8
add edx, 0xf
add ecx, 0xf
mov edi, edx
movzx edx, byte [edi]
test dl, dl
jns 0x497962
mov eax, dword [edi]
mov edx, eax
and edx, 0xc0c0f0
cmp edx, 0x8080e0
jne 0x497d26
mov edx, edi
mov ebx, eax
and ebx, 0x200f
je 0x497d28
cmp ebx, 0x200d
je 0x497d28
mov dword [ecx], eax
add ecx, 3
mov eax, dword [edx + 3]
add edx, 3
mov ebx, eax
and ebx, 0xc0c0f0
cmp ebx, 0x8080e0
je 0x497cf7
jmp 0x497d28
mov edx, edi
test al, al
jns 0x497a90
mov ebx, eax
and ebx, 0xc0e0
cmp ebx, 0x80c0
jne 0x497d60
mov ebx, eax
and ebx, 0x1e
je 0x497d60
mov word [ecx], ax
add ecx, 2
mov eax, dword [edx + 2]
add edx, 2
jmp 0x497d30
mov dword [ecx], eax
add ecx, 4
mov eax, dword [edx + 4]
add edx, 4
mov ebx, eax
and ebx, 0xc0c0c0f8
cmp ebx, 0x808080f0
jne 0x497a87
mov ebx, eax
and ebx, 0x3007
je 0x497a87
test al, 4
je 0x497d55
mov ebx, eax
and ebx, 0x3003
je 0x497d55
jmp 0x497a87
cmp byte [esp + 0x98], 0
je 0x4960e2
mov edx, edi
movzx eax, word [edx]
mov word [ecx], ax
inc edx
inc ecx
jmp 0x497cd6
movzx eax, dl
cmp eax, 0x22
je 0x498d39
cmp byte [esp + 0x98], 0
je 0x4960cd
cmp edi, dword [esp + 0x84]
jae 0x49615f
inc edi
mov byte [ecx], dl
inc ecx
jmp 0x497a58
mov eax, dword [esp + 4]
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49610c
movzx eax, word [edx]
cmp eax, 0x755c
jne 0x496121
movzx eax, byte [edi + 8]
movzx eax, byte [eax + 0x4fe25d]
mov dword [esp + 0xc], eax
movzx eax, byte [edi + 9]
movzx eax, byte [eax + 0x4fe25d]
mov dword [esp + 0x24], eax
movzx eax, byte [edi + 0xa]
movzx eax, byte [eax + 0x4fe25d]
mov dword [esp + 0x34], eax
movzx eax, byte [edi + 0xb]
movzx eax, byte [eax + 0x4fe25d]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
shl eax, 8
add eax, dword [esp + 0x34]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x24]
shl eax, 8
add eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
or eax, dword [esp + 0xc]
test eax, 0xf0f0
jne 0x49613b
mov eax, dword [esp + 0xc]
shl eax, 4
movzx eax, ax
mov ebx, dword [esp + 0x24]
or ebx, eax
mov dword [esp + 0x24], ebx
and ebx, 0xfc00
cmp ebx, 0xdc00
jne 0x49614d
movzx eax, word [esp + 4]
shl eax, 0xa
add eax, 0xfca00000
mov edx, dword [esp + 0x24]
add edx, 0xffff2400
or edx, eax
lea ebx, [edx + 0x10000]
mov eax, ebx
shr eax, 0x12
or al, 0xf0
mov byte [ecx], al
shr ebx, 0xc
and bl, 0x3f
or bl, 0x80
mov byte [ecx + 1], bl
shr edx, 6
and dl, 0x3f
or dl, 0x80
mov byte [ecx + 2], dl
mov eax, dword [esp + 0x24]
and al, 0x3f
or al, 0x80
mov byte [ecx + 3], al
add ecx, 4
add edi, 0xc
jmp 0x497a58
add eax, edi
inc eax
mov dword [esp + 0x64], str.no_digit_after_exponent_sign
mov dword [esp], eax
jmp 0x495e44
cmp eax, 0x30
jne 0x499ec5
mov eax, dword [esp + 0x1c]
lea edi, [eax + 1]
movzx eax, byte [eax + 1]
movzx ecx, byte [eax + 0x4fe4d8]
test cl, 0x33
jne 0x499ee6
xor eax, eax
cmp bl, 0x2d
sete al
lea eax, [eax*8 + 4]
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x18], 0
jmp 0x4968b9
mov ecx, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x14], ecx
test byte [edx + 0x4fe4d8], 0x30
mov dword [esp + 4], eax
jne 0x499f45
mov edx, eax
mov esi, eax
sar esi, 0x1f
xor eax, eax
neg edx
sbb eax, esi
xor ecx, ecx
cmp bl, 0x2d
sete cl
lea ecx, [ecx*8 + 4]
mov edi, dword [esp + 0x20]
mov dword [edi + 0x10], ecx
cmovne eax, esi
cmovne edx, dword [esp + 4]
mov dword [edi + 0x14], 0
mov dword [edi + 0x18], edx
mov dword [edi + 0x1c], eax
mov eax, dword [esp + 0x14]
jmp 0x4974f7
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 2
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x498485
mov eax, 0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x499fbf
jmp 0x49714c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 3
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x498485
mov eax, 0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x49a008
jmp 0x49714c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 4
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x498485
mov eax, 0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x49a051
jmp 0x49714c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 5
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x498485
mov eax, 0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x49a09a
jmp 0x49714c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 6
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x498485
mov eax, 0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x49a0e3
jmp 0x49714c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 7
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x498485
mov eax, 0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x49a12c
jmp 0x49714c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 8
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x498485
mov eax, 0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x49a175
jmp 0x49714c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 9
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x498485
mov eax, 0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x49a1be
jmp 0x49714c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 0xa
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x498485
mov eax, 0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x49a207
jmp 0x49714c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 0xb
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x498485
mov eax, 0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x49a250
jmp 0x49714c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 0xc
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x498485
mov eax, 0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x49a299
jmp 0x49714c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 0xd
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x498485
mov eax, 0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x49a2e2
jmp 0x49714c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 0xe
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x498485
mov eax, 0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x49a32b
jmp 0x49714c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 0xf
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x498485
mov eax, 0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x49a374
jmp 0x49714c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 0x10
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x498485
mov eax, 0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x49a3bd
jmp 0x49714c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 0x11
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe4d8], 0x30
je 0x498485
mov eax, 0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x49a406
jmp 0x49714c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 0x12
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe4d8], 0x30
jne 0x49a52e
xor eax, eax
mov ecx, edi
mov dword [esp + 4], edi
neg ecx
mov edi, dword [esp + 0x24]
sbb eax, edi
xor edx, edx
cmp bl, 0x2d
sete dl
lea edx, [edx*8 + 4]
mov esi, dword [esp + 0x20]
mov dword [esi + 0x10], edx
cmovne eax, edi
cmovne ecx, dword [esp + 4]
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x14]
jmp 0x4974f7
mov ecx, dword [ebp + 0x10]
test cl, 0x10
je 0x4919fd
movzx ecx, al
or ecx, 0x20
cmp ecx, 0x6e
jne 0x4919fd
movzx ecx, ah
or ecx, 0x20
cmp ecx, 0x61
jne 0x4919fd
shr eax, 0x10
movzx eax, al
or eax, 0x20
cmp eax, 0x6e
je 0x498cb8
jmp 0x4919fd
movzx eax, byte [esi + 1]
mov ecx, eax
or ecx, 0x20
cmp ecx, 0x6e
jne 0x498c9c
movzx ecx, byte [esi + 2]
or ecx, 0x20
cmp ecx, 0x66
jne 0x498c9c
lea eax, [esi + 3]
movzx ecx, byte [esi + 3]
or ecx, 0x20
cmp ecx, 0x69
jne 0x49856e
movzx ecx, byte [esi + 4]
or ecx, 0x20
cmp ecx, 0x6e
jne 0x49856e
movzx ecx, byte [esi + 5]
or ecx, 0x20
cmp ecx, 0x69
jne 0x49856e
movzx ecx, byte [esi + 6]
or ecx, 0x20
cmp ecx, 0x74
jne 0x49856e
movzx ecx, byte [esi + 7]
or ecx, 0x20
cmp ecx, 0x79
jne 0x49856e
lea eax, [esi + 8]
mov dword [esp], eax
cmp dword [esp + 0x28], 0
je 0x498d79
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
test ecx, ecx
je 0x498589
mov byte [ecx], 0
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
sub eax, esi
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
shl eax, 8
or eax, 1
mov edx, dword [esp + 0x20]
mov dword [edx + 0x14], ecx
mov dword [edx + 0x10], eax
mov dword [edx + 0x18], esi
jmp 0x4968bc
mov ecx, edi
cmp dl, 0x5c
jne 0x498a12
movzx edx, byte [edi + 1]
add edx, 0xffffffde
cmp edx, 0x53
ja case.0x4985cd.35
jmp dword [edx*4 + 0x5012a4]
mov byte [ecx], 0x22
jmp 0x4986a6
mov byte [ecx], 0xa
jmp 0x4986a6
mov byte [ecx], 0x2f
jmp 0x4986a6
mov byte [ecx], 8
jmp 0x4986a6
movzx eax, byte [edi + 2]
movzx edx, byte [eax + 0x4fe25d]
movzx eax, byte [edi + 3]
movzx ebx, byte [eax + 0x4fe25d]
movzx eax, byte [edi + 4]
movzx eax, byte [eax + 0x4fe25d]
mov dword [esp + 4], eax
movzx eax, byte [edi + 5]
movzx eax, byte [eax + 0x4fe25d]
shl edx, 8
add edx, dword [esp + 4]
shl ebx, 8
or ebx, eax
mov dword [esp + 4], ebx
mov eax, ebx
or eax, edx
test eax, 0xf0f0
jne 0x4960f7
shl edx, 4
mov eax, dword [esp + 4]
or eax, edx
lea edx, [edi + 6]
mov dword [esp + 4], eax
and eax, 0xf800
cmp eax, 0xd800
je 0x498a42
movzx eax, word [esp + 4]
cmp eax, 0x800
jb 0x4986ae
shr eax, 0xc
or al, 0xe0
mov byte [ecx], al
mov ebx, dword [esp + 4]
mov eax, ebx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [ecx + 1], al
and bl, 0x3f
or bl, 0x80
mov byte [ecx + 2], bl
add ecx, 3
jmp 0x4986f0
mov byte [ecx], 0x5c
jmp 0x4986a6
mov byte [ecx], 0xd
jmp 0x4986a6
mov byte [ecx], 0xc
jmp 0x4986a6
mov byte [ecx], 9
inc ecx
add edi, 2
mov edx, edi
jmp 0x4986f0
cmp eax, 0x80
jb 0x4986d0
mov ebx, dword [esp + 4]
mov eax, ebx
shr eax, 6
or al, 0xc0
mov byte [ecx], al
and bl, 0x3f
or bl, 0x80
mov byte [ecx + 1], bl
add ecx, 2
jmp 0x4986f0
mov eax, dword [esp + 4]
mov byte [ecx], al
inc ecx
jmp 0x4986f0
cmp edi, edx
je 0x4989f5
nop word cs:[eax + eax]
movzx eax, byte [edx]
test byte [eax + 0x4fdfe6], 0xc
jne 0x498936
movzx eax, byte [edx + 1]
test byte [eax + 0x4fdfe6], 0xc
jne 0x498a05
movzx eax, byte [edx + 2]
test byte [eax + 0x4fdfe6], 0xc
jne 0x498812
movzx eax, byte [edx + 3]
test byte [eax + 0x4fdfe6], 0xc
jne 0x498823
movzx eax, byte [edx + 4]
test byte [eax + 0x4fdfe6], 0xc
jne 0x498832
movzx eax, byte [edx + 5]
test byte [eax + 0x4fdfe6], 0xc
jne 0x498841
movzx eax, byte [edx + 6]
test byte [eax + 0x4fdfe6], 0xc
jne 0x498858
movzx eax, byte [edx + 7]
test byte [eax + 0x4fdfe6], 0xc
jne 0x49886f
movzx eax, byte [edx + 8]
test byte [eax + 0x4fdfe6], 0xc
jne 0x498882
movzx eax, byte [edx + 9]
test byte [eax + 0x4fdfe6], 0xc
jne 0x498895
movzx eax, byte [edx + 0xa]
test byte [eax + 0x4fdfe6], 0xc
jne 0x4988b0
movzx eax, byte [edx + 0xb]
test byte [eax + 0x4fdfe6], 0xc
jne 0x4988c8
movzx eax, byte [edx + 0xc]
test byte [eax + 0x4fdfe6], 0xc
jne 0x4988de
movzx eax, byte [edx + 0xd]
test byte [eax + 0x4fdfe6], 0xc
jne 0x4988f4
movzx eax, byte [edx + 0xe]
test byte [eax + 0x4fdfe6], 0xc
jne 0x498912
movzx eax, byte [edx + 0xf]
test byte [eax + 0x4fdfe6], 0xc
movupd xmm0, xmmword [edx]
movupd xmmword [ecx], xmm0
jne 0x498930
add edx, 0x10
add ecx, 0x10
jmp 0x4986f0
movzx eax, word [edx]
add edx, 2
mov word [ecx], ax
add ecx, 2
jmp 0x498936
mov eax, dword [edx]
add edx, 3
mov dword [ecx], eax
add ecx, 3
jmp 0x498936
mov eax, dword [edx]
add edx, 4
mov dword [ecx], eax
add ecx, 4
jmp 0x498936
lea edi, [edx + 5]
mov eax, dword [edx]
mov dword [ecx], eax
movzx eax, word [edx + 4]
mov word [ecx + 4], ax
add ecx, 5
jmp 0x498938
lea edi, [edx + 6]
mov eax, dword [edx]
mov dword [ecx], eax
movzx eax, word [edx + 4]
mov word [ecx + 4], ax
add ecx, 6
jmp 0x498938
movsd xmm0, qword [edx]
add edx, 7
movsd qword [ecx], xmm0
add ecx, 7
jmp 0x498936
movsd xmm0, qword [edx]
add edx, 8
movsd qword [ecx], xmm0
add ecx, 8
jmp 0x498936
lea edi, [edx + 9]
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
movzx eax, word [edx + 8]
mov word [ecx + 8], ax
add ecx, 9
jmp 0x498938
lea edi, [edx + 0xa]
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
movzx eax, word [edx + 8]
mov word [ecx + 8], ax
add ecx, 0xa
jmp 0x498938
lea edi, [edx + 0xb]
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
add ecx, 0xb
jmp 0x498938
lea edi, [edx + 0xc]
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
add ecx, 0xc
jmp 0x498938
lea edi, [edx + 0xd]
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
movzx eax, word [edx + 0xc]
mov word [ecx + 0xc], ax
add ecx, 0xd
jmp 0x498938
lea edi, [edx + 0xe]
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
movzx eax, word [edx + 0xc]
mov word [ecx + 0xc], ax
add ecx, 0xe
jmp 0x498938
add edx, 0xf
add ecx, 0xf
mov edi, edx
movzx edx, byte [edi]
test dl, dl
jns 0x4985b4
mov eax, dword [edi]
mov edx, eax
and edx, 0xc0c0f0
cmp edx, 0x8080e0
jne 0x498986
mov edx, edi
mov ebx, eax
and ebx, 0x200f
je 0x498988
cmp ebx, 0x200d
je 0x498988
mov dword [ecx], eax
add ecx, 3
mov eax, dword [edx + 3]
add edx, 3
mov ebx, eax
and ebx, 0xc0c0f0
cmp ebx, 0x8080e0
je 0x498957
jmp 0x498988
mov edx, edi
test al, al
jns 0x4986f0
mov ebx, eax
and ebx, 0xc0e0
cmp ebx, 0x80c0
jne 0x4989c0
mov ebx, eax
and ebx, 0x1e
je 0x4989c0
mov word [ecx], ax
add ecx, 2
mov eax, dword [edx + 2]
add edx, 2
jmp 0x498990
mov dword [ecx], eax
add ecx, 4
mov eax, dword [edx + 4]
add edx, 4
mov ebx, eax
and ebx, 0xc0c0c0f8
cmp ebx, 0x808080f0
jne 0x4986d9
mov ebx, eax
and ebx, 0x3007
je 0x4986d9
test al, 4
je 0x4989b5
mov ebx, eax
and ebx, 0x3003
je 0x4989b5
jmp 0x4986d9
cmp byte [esp + 0x98], 0
je 0x4960e2
mov edx, edi
movzx eax, word [edx]
mov word [ecx], ax
inc edx
inc ecx
jmp 0x498936
movzx eax, dl
cmp eax, 0x22
je 0x498d8f
cmp byte [esp + 0x98], 0
je 0x4960cd
cmp edi, dword [esp + 0x84]
jae 0x49615f
inc edi
mov byte [ecx], dl
inc ecx
jmp 0x4986aa
mov eax, dword [esp + 4]
and eax, 0xfc00
cmp eax, 0xd800
jne 0x49610c
movzx eax, word [edx]
cmp eax, 0x755c
jne 0x496121
movzx eax, byte [edi + 8]
movzx eax, byte [eax + 0x4fe25d]
mov dword [esp + 0xc], eax
movzx eax, byte [edi + 9]
movzx eax, byte [eax + 0x4fe25d]
mov dword [esp + 0x24], eax
movzx eax, byte [edi + 0xa]
movzx eax, byte [eax + 0x4fe25d]
mov dword [esp + 0x34], eax
movzx eax, byte [edi + 0xb]
movzx eax, byte [eax + 0x4fe25d]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
shl eax, 8
add eax, dword [esp + 0x34]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x24]
shl eax, 8
add eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
or eax, dword [esp + 0xc]
test eax, 0xf0f0
jne 0x49613b
mov eax, dword [esp + 0xc]
shl eax, 4
movzx eax, ax
mov ebx, dword [esp + 0x24]
or ebx, eax
mov dword [esp + 0x24], ebx
and ebx, 0xfc00
cmp ebx, 0xdc00
jne 0x49614d
movzx eax, word [esp + 4]
shl eax, 0xa
add eax, 0xfca00000
mov edx, dword [esp + 0x24]
add edx, 0xffff2400
or edx, eax
lea ebx, [edx + 0x10000]
mov eax, ebx
shr eax, 0x12
or al, 0xf0
mov byte [ecx], al
shr ebx, 0xc
and bl, 0x3f
or bl, 0x80
mov byte [ecx + 1], bl
shr edx, 6
and dl, 0x3f
or dl, 0x80
mov byte [ecx + 2], dl
mov eax, dword [esp + 0x24]
and al, 0x3f
or al, 0x80
mov byte [ecx + 3], al
add ecx, 4
add edi, 0xc
jmp 0x4986aa
inc edi
mov dword [esp + 0x64], str.invalid_escaped_character_in_string
mov dword [esp + 0x68], str.invalid_escaped_character_in_string
mov dword [esp], edi
mov ebx, dword [esp + 0x88]
mov ecx, ebx
mov edx, edi
push dword [ebp + 0x10]
push 0xa
mov esi, dword [esp + 0x8c]
push esi
call dbg.is_truncated_end
add esp, 0xc
mov ecx, eax
xor cl, 1
test al, al
cmovne edi, esi
mov eax, 0x4fe0e6
cmove eax, dword [esp + 0x68]
sub edi, ebx
mov edx, dword [ebp + 0x18]
test edx, edx
lea esi, [esp + 0xa4]
cmove edx, esi
mov dword [edx + 8], edi
mov edi, esi
movzx ecx, cl
lea ecx, [ecx + ecx*4]
add ecx, 5
mov esi, dword [esp + 0x90]
mov dword [esi], ecx
mov dword [edx + 4], eax
jmp 0x496a4c
xor eax, eax
cmp bl, 0x2d
jmp 0x498d08
mov eax, dword [ebp + 0x10]
test al, al
js 0x49a55c
test al, 0x10
je 0x498d56
cmp bl, 0x2d
jmp 0x49a594
xor eax, eax
test al, al
jne 0x4972be
mov ecx, dword [esp + 0x24]
bsr edx, ecx
mov eax, ecx
xor edx, 0x1f
bsr ecx, dword [esp + 4]
xor ecx, 0x1f
add ecx, 0x20
test eax, eax
cmovne ecx, edx
mov edx, eax
mov eax, dword [esp + 4]
shld edx, eax, cl
shl eax, cl
mov dword [esp + 0x3c], ecx
test cl, 0x20
cmovne edx, eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x14], 0
mov ecx, 0
cmovne eax, ecx
mov dword [esp + 0x5c], eax
imul eax, edi, 0x3526a
shl edi, 4
add eax, 0xffc10000
sar eax, 0x10
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x4ffb4c]
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0x4ffb48]
mov dword [esp + 0x60], eax
mov eax, dword [edi + 0x4ffb54]
mov dword [esp + 0x6c], eax
jmp 0x497542
lea eax, [esp + 0x64]
mov ecx, esp
mov edx, dword [esp + 0x28]
push eax
push dword [esp + 0x14]
push dword [ebp + 0x10]
call dbg.read_number_raw
add esp, 0xc
test al, al
mov edx, dword [esp + 8]
jne 0x4968c0
jmp 0x495e48
cmp dl, 0x4e
jne case.0x4889e0.74
movzx eax, al
or eax, 0x20
cmp eax, 0x61
jne case.0x4889e0.74
movzx eax, byte [esi + 2]
or eax, 0x20
cmp eax, 0x6e
jne case.0x4889e0.74
lea eax, [esi + 3]
mov dword [esp], eax
cmp dword [esp + 0x28], 0
je 0x498d2f
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
test ecx, ecx
je 0x498cd2
mov byte [ecx], 0
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
mov eax, dword [esp + 0x20]
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0x301
mov dword [eax + 0x18], esi
jmp 0x4968bc
mov eax, dword [ebp + 0x10]
jmp 0x4969f2
cmp byte [esp + 0x1c], 0x2d
jne 0x498d43
xor eax, eax
cmp byte [esp + 0x38], 0x2d
sete al
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0x14
shl eax, 0x1f
mov dword [ecx + 0x1c], eax
mov dword [ecx + 0x18], 0
jmp 0x4974f3
movapd xmm0, xmmword [0x4fdea0]
jmp 0x498d81
mov ebx, 5
jmp 0x49659e
mov eax, dword [ebp + 0x10]
test al, al
js 0x49a55c
test al, 0x10
jne 0x49a58f
mov dword [esp + 0x64], str.number_is_infinity_when_parsed_as_double
jmp 0x495e44
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
test eax, eax
je 0x498d70
mov byte [eax], 0
mov edi, dword [esp + 0xc]
jmp 0x4990c6
movapd xmm0, xmmword [0x4fdeb0]
mov eax, dword [esp + 0x20]
movupd xmmword [eax + 0x10], xmm0
jmp 0x4968bc
mov ebx, 5
jmp 0x496892
mov edx, eax
mov dword [esp + 0x38], ebx
lea eax, [edi + 0x472]
cmp edi, 0xfffffb8f
cmovb eax, ecx
mov edi, 0x40
sub edi, eax
lea ecx, [eax - 0x44]
cmp ecx, 0xffffffbf
ja 0x49ac3c
mov ecx, 4
sub ecx, eax
mov eax, edx
mov edi, dword [esp + 0x14]
shrd eax, edi, cl
shr edi, cl
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x3c]
shrd ebx, edx, cl
shr edx, cl
add dword [esp + 0x1c], ecx
test cl, 0x20
cmovne eax, edi
mov ecx, 0
cmovne edi, ecx
mov dword [esp + 0x14], edi
cmovne ebx, edx
cmovne edx, ecx
add ebx, 9
mov dword [esp + 0x3c], ebx
adc edx, 0
mov dword [esp + 0x18], edx
mov edi, 0x3c
mov ebx, dword [esp + 0x38]
jmp 0x4976a8
mov eax, dword [ebp + 0x10]
test al, al
js 0x49a612
test al, 0x10
jne 0x49a64e
mov dword [esp + 0x64], str.number_is_infinity_when_parsed_as_double
mov dword [esp], esi
jmp 0x495e44
mov dword [esp + 0x38], ebx
xor eax, eax
mov ecx, 0xffffffff
add ecx, 1
mov dword [esp + 0x18], ecx
adc eax, 0xfffff
mov ebx, dword [esp + 0x58]
mov edi, ebx
and edi, 0xfffff
or edi, eax
mov edx, ebx
shr edx, 0x14
add edx, 0xfffffbcc
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [esp + 0x18]
mov ecx, ebx
sbb ecx, eax
mov eax, 0xfffffbcd
cmovae eax, edx
mov dword [esp + 0x6c], eax
cmovb edi, ebx
mov eax, dword [esp + 0x1c]
shld edi, eax, 1
lea ebx, [eax*2 + 1]
lea eax, [esp + 0x9c]
lea ecx, [esp + 0xc0]
mov edx, dword [esp + 4]
push dword [esp + 0xc]
push dword [esp + 0x34]
push dword [esp + 0x54]
push eax
push dword [esp + 0x34]
call dbg.bigint_set_buf
add esp, 0x14
lea eax, [esp + 0x2d0]
mov dword [esp + 0x70], eax
mov dword [esp + 0x2d0], ebx
mov dword [esp + 0x2d4], edi
mov eax, dword [esp + 0x9c]
test eax, eax
js 0x499155
cmp eax, 0x13
jb 0x499302
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x14], ecx
jmp 0x498f12
mov ecx, dword [esp + 0x44]
lea eax, [ecx - 0x13]
cmp ecx, 0x25
jle 0x4992f7
mov dword [esp + 0x44], eax
cmp dword [esp + 0x14], 0
je 0x498f3e
xor ecx, ecx
mov edx, ecx
mov eax, dword [esp + ecx*8 + 0xc8]
or eax, dword [esp + ecx*8 + 0xcc]
jne 0x498f40
mov eax, ecx
inc eax
mov ecx, eax
cmp dword [esp + 0x14], eax
jne 0x498f1f
jmp 0x498f02
xor ecx, ecx
cmp ecx, dword [esp + 0x14]
jae 0x498f02
mov dword [esp + 0x4c], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + ecx*8 + 0xc8]
mov eax, ebx
mov ecx, 0x89e80000
mul ecx
mov dword [esp + 4], eax
mov dword [esp + 0x40], edx
xor eax, eax
add ecx, 0xdf2304
mov dword [esp + 0x5c], ecx
setb al
mov dword [esp + 0x18], eax
mov eax, ebx
mul ecx
mov ecx, eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0xc]
mov edi, dword [esp + eax*8 + 0xcc]
mov eax, edi
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x60], edx
imul ebx, dword [esp + 0x18]
mov eax, edi
mul dword [esp + 0x5c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x18]
imul eax, edi
add ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x24]
adc edi, ebx
add ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x60]
adc ebx, 0
add edi, dword [esp + 0x5c]
adc edx, eax
add edi, ebx
mov dword [esp + 0x24], edi
adc edx, 0
mov eax, dword [esp + 4]
and eax, 0xfff80000
mov ebx, dword [esp + 0x4c]
add eax, ebx
mov edi, eax
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
adc ecx, eax
setb byte [esp + 0x18]
cmp edi, ebx
mov ebx, ecx
sbb ebx, eax
mov edi, dword [esp + 0xc]
mov dword [esp + edi*8 + 0xcc], ecx
setb cl
or cl, byte [esp + 0x18]
movzx eax, cl
add eax, dword [esp + 0x24]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 4]
mov dword [esp + edi*8 + 0xc8], eax
adc edx, 0
mov dword [esp + 0x3c], edx
inc edi
mov ecx, edi
cmp dword [esp + 0x14], edi
jne 0x498f56
mov eax, dword [esp + 0x4c]
or eax, dword [esp + 0x3c]
je 0x498f02
mov ecx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov edx, dword [esp + 0x4c]
mov dword [esp + ecx*8 + 0xc8], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + ecx*8 + 0xcc], edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x14], eax
jmp 0x498f02
xor ecx, ecx
mov dword [esp + 0x58], 0
cmp eax, 0xfffffb8f
jb 0x4977ff
mov cl, 0xc3
sub cl, al
shrd edx, edi, cl
shr edi, cl
mov eax, edx
xor edx, edx
test cl, 0x20
cmovne eax, edi
cmove edx, edi
mov dword [esp + 0x58], edx
mov ecx, eax
jmp 0x4977ff
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
test eax, eax
je 0x4990c2
mov byte [eax], 0
mov edi, dword [esp + 0x14]
mov eax, edi
sub eax, esi
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
mov edx, dword [esp + 0x20]
mov dword [edx + 0x14], ecx
shl eax, 8
or eax, 1
mov dword [edx + 0x10], eax
mov dword [edx + 0x18], esi
mov eax, dword [esp + 0x28]
mov dword [eax], edi
jmp 0x4968b9
mov ebx, dword [esp + 8]
jmp 0x495f8d
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
test ecx, ecx
je 0x499107
mov byte [ecx], 0
mov ecx, edi
sar ecx, 0x1f
shld ecx, edi, 8
mov eax, dword [esp + 0x20]
mov dword [eax + 0x14], ecx
shl edi, 8
or edi, 1
mov dword [eax + 0x10], edi
mov dword [eax + 0x18], esi
mov eax, dword [esp + 0x28]
mov dword [eax], edx
mov dword [esp], edx
jmp 0x4968bc
mov eax, dword [ebp + 0x10]
test al, 4
jne 0x497903
cmp byte [edi], 0x2c
je 0x4919a1
mov dword [esp], esi
cmp byte [esi], 0x2c
lea esi, [esi - 1]
jne 0x499145
jmp 0x49199e
neg eax
mov dword [esp + 0x50], 1
cmp eax, 0x13
jb 0x49948a
mov dword [esp + 0x50], 1
mov dword [esp + 0x14], 1
jmp 0x49918a
mov ecx, dword [esp + 0x44]
lea eax, [ecx - 0x13]
cmp ecx, 0x25
jle 0x49946f
mov dword [esp + 0x44], eax
cmp dword [esp + 0x14], 0
je 0x4991b6
xor ecx, ecx
mov edx, ecx
mov eax, dword [esp + ecx*8 + 0x2d0]
or eax, dword [esp + ecx*8 + 0x2d4]
jne 0x4991b8
mov eax, ecx
inc eax
mov ecx, eax
cmp dword [esp + 0x14], eax
jne 0x499197
jmp 0x49917a
xor ecx, ecx
cmp ecx, dword [esp + 0x14]
jae 0x49917a
mov dword [esp + 0x4c], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + ecx*8 + 0x2d0]
mov eax, ebx
mov ecx, 0x89e80000
mul ecx
mov dword [esp + 4], eax
mov dword [esp + 0x40], edx
xor eax, eax
add ecx, 0xdf2304
mov dword [esp + 0x5c], ecx
setb al
mov dword [esp + 0x18], eax
mov eax, ebx
mul ecx
mov ecx, eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0xc]
mov edi, dword [esp + eax*8 + 0x2d4]
mov eax, edi
mov edx, 0x89e80000
mul edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x60], edx
imul ebx, dword [esp + 0x18]
mov eax, edi
mul dword [esp + 0x5c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x18]
imul eax, edi
add ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x24]
adc edi, ebx
add ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x60]
adc ebx, 0
add edi, dword [esp + 0x5c]
adc edx, eax
add edi, ebx
mov dword [esp + 0x24], edi
adc edx, 0
mov eax, dword [esp + 4]
and eax, 0xfff80000
mov ebx, dword [esp + 0x4c]
add eax, ebx
mov edi, eax
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
adc ecx, eax
setb byte [esp + 0x18]
cmp edi, ebx
mov ebx, ecx
sbb ebx, eax
mov edi, dword [esp + 0xc]
mov dword [esp + edi*8 + 0x2d4], ecx
setb cl
or cl, byte [esp + 0x18]
movzx eax, cl
add eax, dword [esp + 0x24]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 4]
mov dword [esp + edi*8 + 0x2d0], eax
adc edx, 0
mov dword [esp + 0x3c], edx
inc edi
mov ecx, edi
cmp dword [esp + 0x14], edi
jne 0x4991ce
mov eax, dword [esp + 0x4c]
or eax, dword [esp + 0x3c]
je 0x49917a
mov ecx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov edx, dword [esp + 0x4c]
mov dword [esp + ecx*8 + 0x2d0], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + ecx*8 + 0x2d4], edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x14], eax
jmp 0x49917a
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x5c], 1
test eax, eax
je 0x4995d4
mov ecx, dword [eax*8 + 0x500f9c]
mov dword [esp + 0x44], ecx
mov eax, dword [eax*8 + 0x500f98]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc0]
xor edi, edi
mov dword [esp + 0x4c], eax
test eax, eax
je 0x499357
xor edi, edi
mov eax, dword [esp + edi*8 + 0xc8]
or eax, dword [esp + edi*8 + 0xcc]
jne 0x499357
inc edi
cmp dword [esp + 0x4c], edi
jne 0x49933b
jmp 0x4995d4
cmp edi, dword [esp + 0x4c]
jae 0x4995d4
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov ecx, dword [esp + edi*8 + 0xc8]
mov eax, ecx
mul dword [esp + 0xc]
mov dword [esp + 0x3c], edx
mov dword [esp + 4], eax
mov eax, ecx
mov ebx, dword [esp + 0x44]
mul ebx
mov ecx, eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + edi*8 + 0xcc]
mov dword [esp + 0x30], eax
mul dword [esp + 0xc]
mov dword [esp + 0x40], edx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x30]
mul ebx
mov dword [esp + 0x30], eax
add ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x24]
adc ebx, 0
add ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x40]
adc eax, 0
add ebx, dword [esp + 0x30]
adc edx, 0
add ebx, eax
mov dword [esp + 0x24], ebx
adc edx, 0
mov dword [esp + 0x3c], edx
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 4]
add eax, ebx
mov dword [esp + 4], eax
mov edx, dword [esp + 0x14]
adc ecx, edx
setb byte [esp + 0x40]
cmp eax, ebx
mov ebx, ecx
sbb ebx, edx
mov dword [esp + edi*8 + 0xcc], ecx
setb cl
or cl, byte [esp + 0x40]
movzx eax, cl
add eax, dword [esp + 0x24]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 4]
mov dword [esp + edi*8 + 0xc8], eax
mov edx, dword [esp + 0x3c]
adc edx, 0
mov dword [esp + 0x14], edx
inc edi
cmp dword [esp + 0x4c], edi
jne 0x499371
mov eax, dword [esp + 0x18]
or eax, dword [esp + 0x14]
je 0x4995d4
mov ecx, dword [esp + 0x4c]
lea eax, [ecx + 1]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x14]
mov dword [esp + ecx*8 + 0xcc], eax
mov eax, dword [esp + 0x18]
mov dword [esp + ecx*8 + 0xc8], eax
jmp 0x4995d4
test eax, eax
je 0x4995cc
mov dword [esp + 0x5c], 0
cmp dword [esp + 0x50], 0
je 0x4995d4
mov ecx, dword [eax*8 + 0x500f9c]
mov dword [esp + 0x30], ecx
mov eax, dword [eax*8 + 0x500f98]
mov dword [esp + 0xc], eax
xor edi, edi
mov eax, dword [esp + edi*8 + 0x2d0]
or eax, dword [esp + edi*8 + 0x2d4]
jne 0x4994be
inc edi
cmp dword [esp + 0x50], edi
jne 0x4994a2
jmp 0x4995cc
cmp edi, dword [esp + 0x50]
jae 0x4995cc
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov ecx, dword [esp + edi*8 + 0x2d0]
mov eax, ecx
mul dword [esp + 0xc]
mov dword [esp + 0x4c], edx
mov dword [esp + 4], eax
mov eax, ecx
mov ebx, dword [esp + 0x30]
mul ebx
mov ecx, eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + edi*8 + 0x2d4]
mov dword [esp + 0x60], eax
mul dword [esp + 0xc]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x60]
mul ebx
mov dword [esp + 0x60], eax
add ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x24]
adc ebx, 0
add ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
adc eax, 0
add ebx, dword [esp + 0x60]
adc edx, 0
add ebx, eax
mov dword [esp + 0x24], ebx
adc edx, 0
mov dword [esp + 0x4c], edx
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 4]
add eax, ebx
mov dword [esp + 4], eax
mov edx, dword [esp + 0x14]
adc ecx, edx
setb byte [esp + 0x3c]
cmp eax, ebx
mov ebx, ecx
sbb ebx, edx
mov dword [esp + edi*8 + 0x2d4], ecx
setb cl
or cl, byte [esp + 0x3c]
movzx eax, cl
add eax, dword [esp + 0x24]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 4]
mov dword [esp + edi*8 + 0x2d0], eax
mov edx, dword [esp + 0x4c]
adc edx, 0
mov dword [esp + 0x14], edx
inc edi
cmp dword [esp + 0x50], edi
jne 0x4994d8
mov eax, dword [esp + 0x18]
or eax, dword [esp + 0x14]
je 0x4995cc
mov ecx, dword [esp + 0x50]
lea eax, [ecx + 1]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + ecx*8 + 0x2d0], eax
mov eax, dword [esp + 0x14]
mov dword [esp + ecx*8 + 0x2d4], eax
jmp 0x4995d4
mov eax, dword [esp + 0x50]
mov dword [esp + 0x5c], eax
cmp dword [esp + 0x6c], 0
jle 0x499875
mov eax, dword [esp + 0x6c]
mov ecx, eax
shr ecx, 6
mov dword [esp + 0x44], ecx
and eax, 0x3f
mov dword [esp + 0x18], eax
je 0x49a67f
mov eax, dword [esp + 0x5c]
mov dword [esp + eax*8 + 0x2d4], 0
mov dword [esp + eax*8 + 0x2d0], 0
test eax, eax
je 0x499810
mov eax, 0x40
sub eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
cmp eax, 0x18
jae 0x499d46
mov eax, dword [esp + 4]
mov ecx, eax
test al, 1
je 0x4996bf
mov ecx, dword [esp + 4]
mov eax, dword [esp + ecx*8 + 0x2d0]
mov edx, dword [esp + ecx*8 + 0x2d4]
mov ebx, ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x18]
shld edx, eax, cl
shl eax, cl
xor edi, edi
test cl, 0x20
cmovne edx, eax
mov dword [esp + 0xc], edx
cmovne eax, edi
mov edi, dword [esp + ebx*8 + 0x2cc]
mov dword [esp + 0x14], edi
mov ecx, dword [esp + 0x24]
shr edi, cl
mov edx, dword [esp + ebx*8 + 0x2c8]
mov ebx, dword [esp + 0x14]
shrd edx, ebx, cl
test cl, 0x20
cmovne edx, edi
mov ecx, 0
cmovne edi, ecx
or edi, dword [esp + 0xc]
or edx, eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 4]
add eax, ecx
mov dword [esp + eax*8 + 0x2d0], edx
mov dword [esp + eax*8 + 0x2d4], edi
dec ecx
cmp dword [esp + 4], 1
je 0x499810
mov eax, dword [esp + 0x44]
lea eax, [esp + eax*8]
add eax, 0x2d0
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], ecx
mov eax, dword [esp + ecx*8 + 0x2d0]
mov edx, ecx
mov dword [esp + 4], ecx
mov dword [esp + 0x3c], eax
mov edi, eax
mov ecx, dword [esp + 0x18]
shl edi, cl
mov dword [esp + 0x4c], edi
test cl, 0x20
mov eax, 0
cmovne edi, eax
mov dword [esp + 0x40], edi
mov edi, dword [esp + edx*8 + 0x2cc]
mov dword [esp + 0x60], edi
mov eax, dword [esp + 0x24]
mov ecx, eax
shr edi, cl
mov ebx, dword [esp + edx*8 + 0x2c8]
mov edx, dword [esp + 0x60]
shrd ebx, edx, cl
test al, 0x20
cmovne ebx, edi
mov ecx, 0
cmovne edi, ecx
or ebx, dword [esp + 0x40]
mov edx, dword [esp + 4]
mov eax, dword [esp + 0xc]
mov dword [eax + edx*8], ebx
mov ebx, dword [esp + edx*8 + 0x2c8]
mov dword [esp + 0x60], ebx
mov edx, ebx
mov eax, dword [esp + 0x18]
mov ecx, eax
shl edx, cl
mov dword [esp + 0x30], edx
test al, 0x20
mov ecx, 0
cmovne edx, ecx
mov dword [esp + 0x40], edx
mov ecx, dword [esp + 4]
mov edx, dword [esp + ecx*8 + 0x2d4]
mov ecx, eax
mov ebx, dword [esp + 0x3c]
shld edx, ebx, cl
test al, 0x20
mov ecx, eax
cmovne edx, dword [esp + 0x4c]
or edx, edi
mov edi, dword [esp + 4]
mov eax, dword [esp + edi*8 + 0x2c0]
mov ebx, dword [esp + 0xc]
mov dword [ebx + edi*8 + 4], edx
mov edx, dword [esp + edi*8 + 0x2cc]
mov ebx, dword [esp + 0x60]
shld edx, ebx, cl
test cl, 0x20
cmovne edx, dword [esp + 0x30]
mov dword [esp + 0x4c], edx
mov ebx, dword [esp + edi*8 + 0x2c4]
mov dword [esp + 0x3c], ebx
mov ecx, dword [esp + 0x24]
shr ebx, cl
test cl, 0x20
mov edi, ebx
mov edx, 0
cmovne edi, edx
mov edx, dword [esp + 0x3c]
shrd eax, edx, cl
test byte [esp + 0x24], 0x20
cmovne eax, ebx
or edi, dword [esp + 0x4c]
or eax, dword [esp + 0x40]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 4]
mov dword [ecx + edx*8 - 8], eax
mov dword [ecx + edx*8 - 4], edi
mov ecx, dword [esp + 0x14]
add ecx, 0xfffffffe
mov dword [esp + 0x14], ecx
jne 0x4996de
mov edx, dword [esp + 0x2d0]
mov eax, dword [esp + 0x2d4]
mov edi, edx
mov ecx, dword [esp + 0x18]
shl edi, cl
shld eax, edx, cl
xor edx, edx
test cl, 0x20
cmovne eax, edi
cmove edx, edi
mov edi, dword [esp + 0x44]
mov dword [esp + edi*8 + 0x2d0], edx
mov dword [esp + edi*8 + 0x2d4], eax
mov edx, dword [esp + 0x5c]
add edx, edi
mov eax, dword [esp + edx*8 + 0x2d0]
xor ecx, ecx
or eax, dword [esp + edx*8 + 0x2d4]
setne cl
add edx, ecx
mov dword [esp + 0x5c], edx
cmp dword [esp + 0x6c], 0x40
jae 0x499c7e
jmp 0x499c94
mov eax, dword [esp + 0x6c]
neg eax
mov ecx, eax
shr ecx, 6
mov dword [esp + 0x44], ecx
mov dword [esp + 0x6c], eax
mov ecx, eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x50], eax
and ecx, 0x3f
mov dword [esp + 0x18], ecx
je 0x49a6cf
lea eax, [esp + 0xc8]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x50]
mov dword [esp + eax*8 + 0xcc], 0
mov dword [esp + eax*8 + 0xc8], 0
test eax, eax
je 0x499c1f
mov eax, 0x40
sub eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
cmp eax, 0x18
jb 0x499a48
mov edi, dword [esp + 0x50]
lea edx, [edi*8 - 8]
lea ecx, [esp + edi*8]
add ecx, 0xc0
mov eax, ecx
mov dword [esp + 0xc], edx
sub eax, edx
mov dword [esp + 4], edi
cmp eax, ecx
ja 0x499a48
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x50]
add eax, edx
lea edi, [esp + eax*8]
add edi, 0xc8
mov ebx, edi
sub ebx, dword [esp + 0xc]
mov dword [esp + 4], edx
cmp ebx, edi
ja 0x499a48
mov edx, dword [esp + 0x50]
lea edi, [esp + edx*8]
add edi, 0xc8
mov ebx, edi
sub ebx, dword [esp + 0xc]
mov dword [esp + 4], edx
cmp ebx, edi
ja 0x499a48
mov edi, dword [esp + 0x50]
lea edx, [edi - 1]
mov dword [esp + 4], edi
cmp edx, 0x1fffffff
ja 0x499a48
lea edx, [esp + eax*8]
add edx, 0xc0
sub ecx, edx
mov edx, dword [esp + 0x50]
mov dword [esp + 4], edx
cmp ecx, 0x20
jb 0x499a48
add ecx, 0xfffffff8
mov edx, dword [esp + 0x50]
mov dword [esp + 4], edx
cmp ecx, 0x20
jb 0x499a48
shl eax, 3
mov edx, dword [esp + 0x50]
lea ecx, [edx*8]
mov ebx, edx
and ebx, 0xfffffffc
and edx, 3
mov dword [esp + 4], edx
movd xmm0, dword [esp + 0x18]
movd xmm1, dword [esp + 0x24]
lea edx, [esp + 0xc0]
add edx, ecx
add edx, 0xffffffe8
mov edi, ebx
neg edi
add eax, esp
add eax, 0xc0
xor ecx, ecx
movdqu xmm2, xmmword [edx + ecx*8 + 0x18]
pshufd xmm2, xmm2, 0x4e
movdqu xmm3, xmmword [edx + ecx*8 + 8]
pshufd xmm3, xmm3, 0x4e
psllq xmm2, xmm0
psllq xmm3, xmm0
movdqu xmm4, xmmword [edx + ecx*8]
movdqu xmm5, xmmword [edx + ecx*8 + 0x10]
pshufd xmm5, xmm5, 0x4e
pshufd xmm4, xmm4, 0x4e
psrlq xmm5, xmm1
psrlq xmm4, xmm1
por xmm5, xmm2
por xmm4, xmm3
pshufd xmm2, xmm5, 0x4e
movdqu xmmword [eax + ecx*8], xmm2
pshufd xmm2, xmm4, 0x4e
movdqu xmmword [eax + ecx*8 - 0x10], xmm2
add ecx, 0xfffffffc
cmp edi, ecx
jne 0x4999df
cmp dword [esp + 0x50], ebx
je 0x499c1f
mov eax, dword [esp + 4]
mov ecx, eax
test al, 1
je 0x499ace
mov ecx, dword [esp + 4]
mov eax, dword [esp + ecx*8 + 0xc8]
mov edx, dword [esp + ecx*8 + 0xcc]
mov ebx, ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x18]
shld edx, eax, cl
shl eax, cl
xor edi, edi
test cl, 0x20
cmovne edx, eax
mov dword [esp + 0xc], edx
cmovne eax, edi
mov edi, dword [esp + ebx*8 + 0xc4]
mov dword [esp + 0x14], edi
mov ecx, dword [esp + 0x24]
shr edi, cl
mov edx, dword [esp + ebx*8 + 0xc0]
mov ebx, dword [esp + 0x14]
shrd edx, ebx, cl
test cl, 0x20
cmovne edx, edi
mov ecx, 0
cmovne edi, ecx
or edi, dword [esp + 0xc]
or edx, eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 4]
add eax, ecx
mov dword [esp + eax*8 + 0xc8], edx
mov dword [esp + eax*8 + 0xcc], edi
dec ecx
cmp dword [esp + 4], 1
je 0x499c1f
mov eax, dword [esp + 0x44]
lea eax, [esp + eax*8]
add eax, 0xc8
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], ecx
mov eax, dword [esp + ecx*8 + 0xc8]
mov edx, ecx
mov dword [esp + 4], ecx
mov dword [esp + 0x3c], eax
mov edi, eax
mov ecx, dword [esp + 0x18]
shl edi, cl
mov dword [esp + 0x4c], edi
test cl, 0x20
mov eax, 0
cmovne edi, eax
mov dword [esp + 0x40], edi
mov edi, dword [esp + edx*8 + 0xc4]
mov dword [esp + 0x60], edi
mov eax, dword [esp + 0x24]
mov ecx, eax
shr edi, cl
mov ebx, dword [esp + edx*8 + 0xc0]
mov edx, dword [esp + 0x60]
shrd ebx, edx, cl
test al, 0x20
cmovne ebx, edi
mov ecx, 0
cmovne edi, ecx
or ebx, dword [esp + 0x40]
mov edx, dword [esp + 4]
mov eax, dword [esp + 0xc]
mov dword [eax + edx*8], ebx
mov ebx, dword [esp + edx*8 + 0xc0]
mov dword [esp + 0x60], ebx
mov edx, ebx
mov eax, dword [esp + 0x18]
mov ecx, eax
shl edx, cl
mov dword [esp + 0x30], edx
test al, 0x20
mov ecx, 0
cmovne edx, ecx
mov dword [esp + 0x40], edx
mov ecx, dword [esp + 4]
mov edx, dword [esp + ecx*8 + 0xcc]
mov ecx, eax
mov ebx, dword [esp + 0x3c]
shld edx, ebx, cl
test al, 0x20
mov ecx, eax
cmovne edx, dword [esp + 0x4c]
or edx, edi
mov edi, dword [esp + 4]
mov eax, dword [esp + edi*8 + 0xb8]
mov ebx, dword [esp + 0xc]
mov dword [ebx + edi*8 + 4], edx
mov edx, dword [esp + edi*8 + 0xc4]
mov ebx, dword [esp + 0x60]
shld edx, ebx, cl
test cl, 0x20
cmovne edx, dword [esp + 0x30]
mov dword [esp + 0x4c], edx
mov ebx, dword [esp + edi*8 + 0xbc]
mov dword [esp + 0x3c], ebx
mov ecx, dword [esp + 0x24]
shr ebx, cl
test cl, 0x20
mov edi, ebx
mov edx, 0
cmovne edi, edx
mov edx, dword [esp + 0x3c]
shrd eax, edx, cl
test byte [esp + 0x24], 0x20
cmovne eax, ebx
or edi, dword [esp + 0x4c]
or eax, dword [esp + 0x40]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 4]
mov dword [ecx + edx*8 - 8], eax
mov dword [ecx + edx*8 - 4], edi
mov ecx, dword [esp + 0x14]
add ecx, 0xfffffffe
mov dword [esp + 0x14], ecx
jne 0x499aed
mov eax, dword [esp + 0xc8]
mov edx, eax
mov ecx, dword [esp + 0x18]
shl edx, cl
mov edi, dword [esp + 0xcc]
shld edi, eax, cl
xor eax, eax
test cl, 0x20
cmovne edi, edx
cmove eax, edx
mov ecx, dword [esp + 0x44]
mov dword [esp + ecx*8 + 0xc8], eax
mov dword [esp + ecx*8 + 0xcc], edi
mov edx, dword [esp + 0x50]
add edx, ecx
mov eax, dword [esp + edx*8 + 0xc8]
xor ecx, ecx
or eax, dword [esp + edx*8 + 0xcc]
setne cl
add ecx, edx
mov dword [esp + 0xc0], ecx
cmp dword [esp + 0x6c], 0x40
jb 0x499c94
mov eax, dword [esp + 0x44]
shl eax, 3
push eax
push 0
push dword [esp + 0x78]
call sym._memset
add esp, 0xc
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0xc], 0
mov eax, 0
cmp ecx, dword [esp + 0x5c]
jb 0x499cfc
mov al, 1
ja 0x499cfc
mov edx, ecx
sub edx, 1
jb 0x499eb1
mov eax, dword [esp + ecx*8 + 0xc0]
mov dword [esp + 4], eax
mov ebx, dword [esp + ecx*8 + 0xc4]
mov eax, dword [esp + ecx*8 + 0x2c8]
mov edi, dword [esp + ecx*8 + 0x2cc]
mov dword [esp + 0x24], ebx
mov ecx, ebx
xor ecx, edi
mov ebx, dword [esp + 4]
xor ebx, eax
or ebx, ecx
mov ecx, edx
je 0x499cb4
cmp dword [esp + 4], eax
sbb dword [esp + 0x24], edi
setae al
movzx ecx, al
add ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
adc eax, dword [esp + 0x58]
mov edi, eax
xor eax, 0x7ff00000
or eax, ecx
je 0x49a5cf
xor eax, eax
cmp byte [esp + 0x38], 0x2d
sete al
mov edx, dword [esp + 0x20]
mov dword [edx + 0x14], 0
mov dword [edx + 0x10], 0x14
shl eax, 0x1f
or edi, eax
mov dword [edx + 0x18], ecx
mov dword [edx + 0x1c], edi
jmp 0x49785c
mov edi, dword [esp + 0x5c]
lea edx, [edi*8 - 8]
lea ecx, [esp + edi*8]
add ecx, 0x2c8
mov eax, ecx
sub eax, edx
mov dword [esp + 4], edi
cmp eax, ecx
ja 0x499639
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x44]
add edi, eax
mov dword [esp + 0xc], edi
lea edi, [esp + edi*8]
add edi, 0x2d0
mov ebx, edi
sub ebx, edx
mov dword [esp + 4], eax
cmp ebx, edi
ja 0x499639
mov eax, dword [esp + 0x5c]
lea edi, [esp + eax*8]
add edi, 0x2d0
mov ebx, edi
sub ebx, edx
mov dword [esp + 4], eax
cmp ebx, edi
ja 0x499639
mov eax, dword [esp + 0x5c]
lea edx, [eax - 1]
mov dword [esp + 4], eax
cmp edx, 0x1fffffff
ja 0x499639
mov eax, dword [esp + 0xc]
lea edx, [esp + eax*8]
add edx, 0x2c8
sub ecx, edx
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
cmp ecx, 0x20
jb 0x499639
add ecx, 0xfffffff8
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
cmp ecx, 0x20
jb 0x499639
mov ebx, dword [esp + 0xc]
shl ebx, 3
mov eax, dword [esp + 0x5c]
lea ecx, [eax*8]
mov edi, eax
and edi, 0xfffffffc
and eax, 3
mov dword [esp + 4], eax
movd xmm0, dword [esp + 0x18]
movd xmm1, dword [esp + 0x24]
lea edx, [esp + 0x2c8]
add edx, ecx
add edx, 0xffffffe8
mov dword [esp + 0xc], edi
neg edi
lea eax, [esp + ebx]
add eax, 0x2c8
xor ecx, ecx
movdqu xmm2, xmmword [edx + ecx*8 + 0x18]
pshufd xmm2, xmm2, 0x4e
movdqu xmm3, xmmword [edx + ecx*8 + 8]
pshufd xmm3, xmm3, 0x4e
psllq xmm2, xmm0
psllq xmm3, xmm0
movdqu xmm4, xmmword [edx + ecx*8]
movdqu xmm5, xmmword [edx + ecx*8 + 0x10]
pshufd xmm5, xmm5, 0x4e
pshufd xmm4, xmm4, 0x4e
psrlq xmm5, xmm1
psrlq xmm4, xmm1
por xmm5, xmm2
por xmm4, xmm3
pshufd xmm2, xmm5, 0x4e
movdqu xmmword [eax + ecx*8], xmm2
pshufd xmm2, xmm4, 0x4e
movdqu xmmword [eax + ecx*8 - 0x10], xmm2
add ecx, 0xfffffffc
cmp edi, ecx
jne 0x499e3f
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x5c], eax
jne 0x499639
jmp 0x499810
mov ecx, dword [esp + 0x1c]
and ecx, 1
mov dword [esp + 0xc], 0
jmp 0x499cff
mov edi, eax
mov eax, dword [ebp + 0x10]
test al, 0x10
jne 0x49a9e3
mov dword [esp + 0x64], str.no_digit_after_minus_sign
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
jmp 0x495e44
cmp al, 0x2e
jne 0x49aad0
mov eax, dword [esp + 0x1c]
movzx ecx, byte [eax + 2]
test byte [ecx + 0x4fe4d8], 3
je 0x49a572
lea eax, [edx + esi]
inc eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
movzx ecx, byte [eax + 1]
inc eax
mov dword [esp + 0x1c], eax
cmp ecx, 0x30
je 0x499f0b
mov eax, ecx
movzx ecx, byte [ecx + 0x4fe4d8]
test cl, 3
je 0x49aacc
mov edx, eax
add edx, 0xffffffd0
mov ecx, edx
sar ecx, 0x1f
mov dword [esp + 0x24], ecx
dec dword [esp + 0x1c]
mov ecx, edi
jmp 0x499f76
mov ecx, eax
sar ecx, 0x1f
mov dword [esp + 0x24], ecx
xor edi, edi
mov eax, 0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov edx, dword [esp + 4]
jne 0x49714c
mov dword [esp + 0x14], ecx
mov dword [esp + 4], edx
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 2]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 2]
mov dword [esp + 0x18], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x49a5c2
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov edi, dword [esp + 0x24]
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
adc edi, edx
mov edx, eax
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov dword [esp + 4], edx
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 3]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 3]
mov dword [esp + 0x18], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x49a5c2
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov edi, dword [esp + 0x24]
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
adc edi, edx
mov edx, eax
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov dword [esp + 4], edx
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 4]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 4]
mov dword [esp + 0x18], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x49a5c2
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov edi, dword [esp + 0x24]
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
adc edi, edx
mov edx, eax
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov dword [esp + 4], edx
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 5]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 5]
mov dword [esp + 0x18], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x49a5c2
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov edi, dword [esp + 0x24]
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
adc edi, edx
mov edx, eax
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov dword [esp + 4], edx
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 6]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 6]
mov dword [esp + 0x18], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x49a5c2
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov edi, dword [esp + 0x24]
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
adc edi, edx
mov edx, eax
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov dword [esp + 4], edx
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 7]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 7]
mov dword [esp + 0x18], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x49a5c2
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov edi, dword [esp + 0x24]
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
adc edi, edx
mov edx, eax
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov dword [esp + 4], edx
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 8]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 8]
mov dword [esp + 0x18], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x49a5c2
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov edi, dword [esp + 0x24]
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
adc edi, edx
mov edx, eax
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov dword [esp + 4], edx
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 9]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 9]
mov dword [esp + 0x18], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x49a5c2
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov edi, dword [esp + 0x24]
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
adc edi, edx
mov edx, eax
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov dword [esp + 4], edx
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 0xa]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 0xa]
mov dword [esp + 0x18], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x49a5c2
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov edi, dword [esp + 0x24]
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
adc edi, edx
mov edx, eax
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov dword [esp + 4], edx
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 0xb]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 0xb]
mov dword [esp + 0x18], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x49a5c2
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov edi, dword [esp + 0x24]
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
adc edi, edx
mov edx, eax
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov dword [esp + 4], edx
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 0xc]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 0xc]
mov dword [esp + 0x18], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x49a5c2
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov edi, dword [esp + 0x24]
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
adc edi, edx
mov edx, eax
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov dword [esp + 4], edx
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 0xd]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 0xd]
mov dword [esp + 0x18], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x49a5c2
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov edi, dword [esp + 0x24]
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
adc edi, edx
mov edx, eax
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov dword [esp + 4], edx
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 0xe]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 0xe]
mov dword [esp + 0x18], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x49a5c2
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov edi, dword [esp + 0x24]
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
adc edi, edx
mov edx, eax
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov dword [esp + 4], edx
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 0xf]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 0xf]
mov dword [esp + 0x18], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x49a5c2
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov edi, dword [esp + 0x24]
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
adc edi, edx
mov edx, eax
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov dword [esp + 4], edx
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 0x10]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 0x10]
mov dword [esp + 0x18], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x49a5c2
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov edi, dword [esp + 0x24]
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
adc edi, edx
mov edx, eax
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov dword [esp + 4], edx
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 0x11]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 0x11]
mov dword [esp + 0x18], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x49a5c2
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov edi, dword [esp + 0x24]
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
adc edi, edx
mov edx, eax
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov dword [esp + 4], edx
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 0x12]
mov dword [esp + 0x30], ecx
movzx ecx, byte [eax + 0x12]
mov dword [esp + 0x18], ecx
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x49a5c2
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov edi, dword [esp + 0x24]
add edi, edi
lea edi, [edi + edi*4]
add eax, ecx
adc edi, edx
mov edx, eax
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x38], ebx
mov dword [esp + 4], edx
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 0x13]
mov dword [esp + 0x30], ecx
movzx ebx, byte [eax + 0x13]
mov dword [esp + 0x18], ebx
add ebx, 0xffffffd0
cmp ebx, 9
ja 0x49a899
mov edx, 0xa
mov eax, dword [esp + 4]
mul edx
mov ecx, dword [esp + 0x24]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add eax, ebx
mov dword [esp + 4], eax
adc ecx, edx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
movzx eax, byte [ecx + 0x14]
add ecx, 0x14
mov dword [esp + 0x18], eax
test byte [eax + 0x4fe4d8], 3
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x14]
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x38]
jne 0x49702d
mov eax, dword [esp + 0xc]
inc eax
cmp eax, dword [esp + 0x30]
je 0x49a57b
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0xc]
mov ecx, eax
sar ecx, 0x1f
mov dword [esp + 0x4c], 0
mov edi, 1
sub edi, eax
mov edx, 0
sbb edx, ecx
movzx ecx, byte [esp + 0x18]
test byte [ecx + 0x4fe4d8], 0x20
jne 0x49a99a
mov dword [esp + 0x4c], 0
cmp eax, 0x159
jge 0x49a9b3
mov eax, dword [esp + 0x30]
mov dword [esp + 0x34], eax
mov edx, dword [esp + 4]
jmp 0x497231
mov eax, 0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], 0
cmp edx, 0x2e
mov edx, edi
mov edi, 0
je 0x49a44f
jmp 0x49714c
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
test eax, eax
je 0x49a569
mov byte [eax], 0
mov edi, dword [esp + 0x34]
jmp 0x4990c6
mov eax, dword [esp + 0x1c]
jmp 0x495e29
mov dword [esp + 0x64], str.no_digit_after_decimal_point
mov eax, dword [esp + 0x30]
mov dword [esp], eax
jmp 0x495e44
cmp byte [esp + 0x38], 0x2d
mov edx, dword [esp + 0x20]
mov dword [edx + 0x14], 0
mov eax, 0xfff00000
mov ecx, 0x7ff00000
cmove ecx, eax
mov dword [edx + 0x10], 0x14
mov dword [edx + 0x1c], ecx
mov dword [edx + 0x18], 0
jmp 0x4974f3
mov eax, dword [esp + 0x14]
mov dword [esp + 0xc], eax
jmp 0x49a4c6
mov eax, dword [ebp + 0x10]
test al, al
js 0x49a612
test al, 0x10
je 0x498e2b
mov eax, 0x7ff00000
xor ecx, ecx
cmp byte [esp + 0x38], 0x2d
mov esi, dword [esp + 0x20]
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0x14
mov edx, 0xfff00000
cmovne edx, eax
cmove ecx, ecx
mov dword [esi + 0x1c], edx
mov dword [esi + 0x18], ecx
jmp 0x49785c
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
test eax, eax
je 0x49a61f
mov byte [eax], 0
mov edi, dword [esp + 0x34]
mov eax, edi
sub eax, esi
mov ecx, eax
sar ecx, 0x1f
shld ecx, eax, 8
mov edx, dword [esp + 0x20]
mov dword [edx + 0x14], ecx
shl eax, 8
or eax, 1
mov dword [edx + 0x10], eax
mov dword [edx + 0x18], esi
mov eax, dword [esp + 0x28]
mov dword [eax], edi
jmp 0x49785c
cmp bl, 0x2d
mov edx, dword [esp + 0x20]
mov dword [edx + 0x14], 0
mov dword [edx + 0x10], 0x14
mov eax, 0xfff00000
mov ecx, 0x7ff00000
cmove ecx, eax
mov dword [edx + 0x1c], ecx
mov dword [edx + 0x18], 0
jmp 0x49785c
cmp dword [esp + 0x5c], 0
je 0x49a901
mov ecx, dword [esp + 0x5c]
mov eax, ecx
cmp ecx, 0x20
jae 0x49a7d5
lea ebx, [eax - 1]
mov edi, eax
and edi, 3
je 0x49a8aa
mov ecx, dword [esp + 0x44]
lea edx, [esp + ecx*8]
add edx, 0x2c8
lea ecx, [eax - 1]
movq xmm0, qword [esp + eax*8 + 0x2c8]
movq qword [edx + eax*8], xmm0
mov eax, ecx
dec edi
jne 0x49a6b4
jmp 0x49a8ac
cmp dword [esp + 0x50], 0
je 0x49a970
mov ecx, dword [esp + 0x50]
mov eax, ecx
cmp ecx, 0x20
jb 0x49a79f
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x50]
add eax, ebx
lea ecx, [esp + eax*8]
add ecx, 0xc0
lea edi, [ebx*8 - 8]
mov edx, ecx
sub edx, edi
mov eax, ebx
cmp edx, ecx
ja 0x49a79f
mov eax, dword [esp + 0x50]
lea edx, [esp + eax*8]
add edx, 0xc0
mov ebx, edx
sub ebx, edi
cmp ebx, edx
ja 0x49a79f
mov eax, dword [esp + 0x50]
lea edi, [eax - 1]
cmp edi, 0x1fffffff
ja 0x49a79f
sub edx, ecx
mov eax, dword [esp + 0x50]
cmp edx, 0x20
jb 0x49a79f
mov eax, dword [esp + 0x50]
lea ecx, [eax*8]
mov ebx, eax
and ebx, 0xfffffffc
and eax, 3
lea edx, [esp + 0xc0]
lea edi, [ecx + edx]
add edx, ecx
add edx, 0xfffffff8
mov dword [esp + 4], ebx
neg ebx
mov ecx, dword [esp + 0x44]
lea ecx, [edi + ecx*8]
add ecx, 0xfffffff8
xor edi, edi
movdqu xmm0, xmmword [edx + edi*8 - 0x10]
movdqu xmm1, xmmword [edx + edi*8]
movdqu xmmword [ecx + edi*8], xmm1
movdqu xmmword [ecx + edi*8 - 0x10], xmm0
add edi, 0xfffffffc
cmp ebx, edi
jne 0x49a774
mov ecx, dword [esp + 4]
cmp dword [esp + 0x50], ecx
je 0x49a970
lea ebx, [eax - 1]
mov edi, eax
and edi, 3
je 0x49a919
mov ecx, dword [esp + 0x44]
lea edx, [esp + ecx*8]
add edx, 0xc0
lea ecx, [eax - 1]
movq xmm0, qword [esp + eax*8 + 0xc0]
movq qword [edx + eax*8], xmm0
mov eax, ecx
dec edi
jne 0x49a7ba
jmp 0x49a91b
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x44]
add eax, ebx
lea ecx, [esp + eax*8]
add ecx, 0x2c8
lea edi, [ebx*8 - 8]
mov edx, ecx
sub edx, edi
mov eax, ebx
cmp edx, ecx
ja 0x49a699
mov eax, dword [esp + 0x5c]
lea edx, [esp + eax*8]
add edx, 0x2c8
mov ebx, edx
sub ebx, edi
cmp ebx, edx
ja 0x49a699
mov eax, dword [esp + 0x5c]
lea edi, [eax - 1]
cmp edi, 0x1fffffff
ja 0x49a699
sub edx, ecx
mov eax, dword [esp + 0x5c]
cmp edx, 0x20
jb 0x49a699
mov eax, dword [esp + 0x5c]
lea ecx, [eax*8]
mov ebx, eax
and ebx, 0xfffffffc
and eax, 3
lea edx, [esp + 0x2c8]
lea edi, [ecx + edx]
add edx, ecx
add edx, 0xfffffff8
mov dword [esp + 4], ebx
neg ebx
mov ecx, dword [esp + 0x44]
lea ecx, [edi + ecx*8]
add ecx, 0xfffffff8
xor edi, edi
movdqu xmm0, xmmword [edx + edi*8 - 0x10]
movdqu xmm1, xmmword [edx + edi*8]
movdqu xmmword [ecx + edi*8], xmm1
movdqu xmmword [ecx + edi*8 - 0x10], xmm0
add edi, 0xfffffffc
cmp ebx, edi
jne 0x49a86c
mov ecx, dword [esp + 4]
cmp dword [esp + 0x5c], ecx
jne 0x49a699
jmp 0x49a901
mov eax, dword [esp + 0x14]
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x38]
jmp 0x49a4c6
mov ecx, eax
cmp ebx, 3
jb 0x49a901
mov eax, dword [esp + 0x44]
lea eax, [esp + eax*8]
add eax, 0x2c8
mov edx, ecx
movsd xmm0, qword [esp + ecx*8 + 0x2c8]
movsd qword [eax + ecx*8], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x2c0]
movsd qword [eax + ecx*8 - 8], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x2b8]
movsd qword [eax + ecx*8 - 0x10], xmm0
movq xmm0, qword [esp + ecx*8 + 0x2b0]
movq qword [eax + ecx*8 - 0x18], xmm0
add edx, 0xfffffffc
mov ecx, edx
jne 0x49a8bf
mov eax, dword [esp + 0x44]
add dword [esp + 0x5c], eax
cmp dword [esp + 0x6c], 0x40
jae 0x499c7e
jmp 0x499c94
mov ecx, eax
cmp ebx, 3
jb 0x49a970
mov eax, dword [esp + 0x44]
lea eax, [esp + eax*8]
add eax, 0xc0
mov edx, ecx
movsd xmm0, qword [esp + ecx*8 + 0xc0]
movsd qword [eax + ecx*8], xmm0
movsd xmm0, qword [esp + ecx*8 + 0xb8]
movsd qword [eax + ecx*8 - 8], xmm0
movsd xmm0, qword [esp + ecx*8 + 0xb0]
movsd qword [eax + ecx*8 - 0x10], xmm0
movq xmm0, qword [esp + ecx*8 + 0xa8]
movq qword [eax + ecx*8 - 0x18], xmm0
add edx, 0xfffffffc
mov ecx, edx
jne 0x49a92e
mov eax, dword [esp + 0x50]
add eax, dword [esp + 0x44]
mov dword [esp + 0xc0], eax
cmp dword [esp + 0x6c], 0x40
jb 0x499c94
lea eax, [esp + 0xc8]
mov dword [esp + 0x70], eax
jmp 0x499c7e
mov eax, dword [esp + 0x30]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 4]
mov eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x14]
jmp 0x49714c
xor eax, eax
cmp bl, 0x2d
sete al
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0x14
shl eax, 0x1f
mov dword [ecx + 0x1c], eax
mov dword [ecx + 0x18], 0
mov eax, dword [esp + 0x30]
jmp 0x4974f7
xor ecx, ecx
mov eax, ebx
cmp al, 0x2d
sete al
lea edx, [edi - 0x49]
cmp edx, 0x25
ja case.0x49aa00.74
mov cl, al
mov eax, dword [esp + 0x1c]
sub eax, ecx
jmp dword [edx*4 + 0x501188]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [ecx + 1]
or ecx, 0x20
cmp ecx, 0x6e
jne 0x49ab14
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [ecx + 2]
or ecx, 0x20
cmp ecx, 0x66
jne 0x49ab14
mov edx, dword [esp + 0x1c]
lea ecx, [edx + 3]
movzx edx, byte [edx + 3]
or edx, 0x20
cmp edx, 0x69
jne 0x49aa89
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 4]
or edx, 0x20
cmp edx, 0x6e
jne 0x49aa89
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 5]
or edx, 0x20
cmp edx, 0x69
jne 0x49aa89
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 6]
or edx, 0x20
cmp edx, 0x74
jne 0x49aa89
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 7]
or edx, 0x20
cmp edx, 0x79
jne 0x49aa89
mov ecx, dword [esp + 0x1c]
add ecx, 8
cmp byte [esp + 0x48], 0
je 0x49abc3
mov edx, dword [esp + 0x28]
mov edx, dword [edx]
test edx, edx
je 0x49aaa1
mov byte [edx], 0
mov edx, dword [esp + 0x28]
mov dword [edx], ecx
mov edx, ecx
sub edx, eax
mov esi, edx
sar esi, 0x1f
shld esi, edx, 8
mov edi, dword [esp + 0x20]
mov dword [edi + 0x14], esi
shl edx, 8
or edx, 1
mov dword [edi + 0x10], edx
mov dword [edi + 0x18], eax
jmp 0x49abef
mov edi, dword [esp + 0x1c]
test cl, 3
jne 0x49ab03
test cl, 0x20
jne 0x49abf7
xor eax, eax
cmp bl, 0x2d
sete al
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0x14
shl eax, 0x1f
mov dword [ecx + 0x1c], eax
jmp 0x497f44
mov dword [esp + 0x64], str.number_with_leading_zero_is_not_allowed
dec edi
mov dword [esp], edi
jmp 0x495e44
cmp edi, 0x4e
jne case.0x49aa00.74
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [ecx + 1]
or ecx, 0x20
cmp ecx, 0x61
jne case.0x49aa00.74
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [ecx + 2]
or ecx, 0x20
cmp ecx, 0x6e
jne case.0x49aa00.74
add dword [esp + 0x1c], 3
cmp byte [esp + 0x48], 0
je 0x49ab8e
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
test ecx, ecx
je 0x49ab5e
mov byte [ecx], 0
cmp bl, 0x2d
mov ecx, 0x401
mov edx, 0x301
cmove edx, ecx
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov dword [ecx], esi
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x10], edx
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x18], eax
jmp 0x496e80
cmp bl, 0x2d
mov edx, dword [esp + 0x20]
mov dword [edx + 0x14], 0
mov eax, 0xfff80000
mov ecx, 0x7ff80000
cmove ecx, eax
mov dword [edx + 0x10], 0x14
mov dword [edx + 0x1c], ecx
mov dword [edx + 0x18], 0
mov eax, dword [esp + 0x1c]
jmp 0x4974f7
cmp bl, 0x2d
mov esi, dword [esp + 0x20]
mov dword [esi + 0x14], 0
mov eax, 0xfff00000
mov edx, 0x7ff00000
cmove edx, eax
mov dword [esi + 0x10], 0x14
mov dword [esi + 0x1c], edx
mov dword [esi + 0x18], 0
mov dword [esp], ecx
jmp 0x4968bc
movzx eax, byte [edi + 1]
movzx eax, byte [eax + 0x4fe4d8]
and al, 0xc
cmp al, 1
sbb edi, 0
movzx eax, byte [edi + 2]
add edi, 2
test byte [eax + 0x4fe4d8], 3
je 0x49ac2c
movzx eax, byte [edi + 1]
inc edi
test byte [eax + 0x4fe4d8], 3
jne 0x49ac19
jmp 0x49aade
mov dword [esp + 0x64], str.no_digit_after_exponent_sign
mov dword [esp], edi
jmp 0x495e44
mov ebx, dword [esp + 0x38]
mov eax, edx
jmp 0x4976a8
mov edi, esp
mov dword [esp + 8], ecx
mov esi, dword [esp]
movzx eax, byte [esi]
cmp eax, 0x5d
je 0x49acc7
cmp eax, 0x2c
je 0x49acb2
test byte [eax + 0x4fdfe6], 1
jne 0x49ac90
mov eax, dword [ebp + 0x10]
test al, 8
je 0x4969f2
mov ecx, edi
mov esi, edx
call dbg.skip_spaces_and_comments
mov edx, esi
test al, al
mov ecx, dword [esp + 8]
jne 0x49ac4d
jmp 0x491933
inc esi
nop word cs:[eax + eax]
mov dword [esp], esi
movzx eax, byte [esi]
inc esi
test byte [eax + 0x4fdfe6], 1
jne 0x49aca0
jmp 0x49ac4d
inc esi
mov dword [esp], esi
mov dword [esp + 0x10], edx
mov esi, dword [esp + 0x54]
mov edx, dword [esp + 0x1c]
jmp 0x4888f7
inc esi
mov dword [esp], esi
mov edi, esi
mov esi, dword [esp + 0x1c]
mov eax, dword [ebx + 8]
mov ecx, dword [esp + 0x54]
sub ecx, ebx
add ecx, 0x10
mov dword [ebx + 8], ecx
shl esi, 8
or esi, 6
mov dword [ebx], esi
mov dword [ebx + 4], 0
test eax, eax
je 0x49ad86
sub ebx, eax
mov eax, dword [ebx]
mov ecx, dword [ebx + 1]
not eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x48], ecx
test al, 7
mov ecx, dword [esp + 8]
jne 0x49ac47
mov edi, esp
mov esi, dword [esp]
movzx eax, byte [esi]
cmp eax, 0x2c
je 0x49ad79
mov dword [esp + 8], ecx
cmp eax, 0x7d
je 0x49adfb
mov dword [esp + 4], edx
test byte [eax + 0x4fdfe6], 1
jne 0x49ad5e
mov eax, dword [ebp + 0x10]
test al, 8
je 0x4969f2
mov ecx, edi
call dbg.skip_spaces_and_comments
test al, al
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
jne 0x49ad16
jmp 0x491933
inc esi
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
mov dword [esp], esi
movzx eax, byte [esi]
inc esi
test byte [eax + 0x4fdfe6], 1
jne 0x49ad67
jmp 0x49ad16
inc esi
mov dword [esp], esi
mov dword [esp + 0x10], edx
jmp 0x48d0f8
mov ebx, dword [esp + 8]
mov eax, dword [ebp + 0x10]
test al, 2
jne 0x49ad9e
cmp edi, dword [esp + 0x84]
jb 0x49ae1f
cmp byte [esp + 0x80], 0
je 0x49adb5
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test eax, eax
je 0x49adb5
mov byte [eax], 0
lea eax, [ebx + 0x20]
mov dword [ebx], eax
mov ecx, dword [esp + 0x68]
mov dword [ebx + 4], ecx
mov ecx, dword [esp + 0x94]
mov dword [ebx + 8], ecx
mov esi, dword [esp + 0x8c]
mov dword [ebx + 0xc], esi
mov ecx, dword [esp + 0x78]
mov dword [ebx + 0x10], ecx
mov ecx, dword [esp]
sub ecx, dword [esp + 0x88]
mov dword [ebx + 0x14], ecx
mov ecx, dword [esp + 0x54]
sub ecx, eax
sar ecx, 4
inc ecx
mov dword [ebx + 0x18], ecx
jmp 0x49603e
inc esi
mov dword [esp], esi
mov edi, esi
mov esi, dword [esp + 0x48]
mov eax, dword [ebx + 8]
mov ecx, dword [esp + 0x54]
sub ecx, ebx
add ecx, 0x10
mov dword [ebx + 8], ecx
shl esi, 7
or esi, 7
jmp 0x49ace6
test al, 8
jne 0x49ae53
movzx eax, byte [edi]
test byte [eax + 0x4fdfe6], 1
je 0x49ae41
inc edi
mov dword [esp], edi
movzx eax, byte [edi]
inc edi
test byte [eax + 0x4fdfe6], 1
jne 0x49ae30
dec edi
cmp edi, dword [esp + 0x84]
jae 0x49ad9e
jmp 0x49605c
mov ecx, esp
call dbg.skip_spaces_and_comments
mov edi, dword [esp]
movzx eax, word [edi]
cmp eax, 0x2a2f
je 0x4960bf
jmp 0x49ae41