Function at 0x4884c0
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 0x489833
mov dword [esp + 0x68], 0x488350
mov dword [esp + 0x94], 0x488360
mov dword [esp + 0x8c], 0x488380
mov dword [esp + 0x78], 0
test esi, esi
je 0x48985c
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x489874
mov eax, dword [ebp + 0x10]
test al, 1
jne 0x48989e
cmp ecx, 0xfffffffb
jae 0x48936c
lea eax, [ecx + 4]
push eax
push dword [esp + 0x7c]
mov ebx, ecx
call dword [esp + 0x70]
add esp, 8
test eax, eax
je 0x48936c
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 sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov edx, esi
add esp, 0xc
mov dword [esi + ebx], 0
movzx eax, byte [esi]
movzx ecx, byte [eax + 0x4fdf06]
test cl, 0x21
mov dword [esp + 0x88], esi
jne 0x4898b6
and al, 0xdf
cmp al, 0x5b
jne 0x4898f7
lea edi, [esi + 1]
movzx eax, byte [esi + 1]
test byte [eax + 0x4fdf06], 1
mov dword [esp + 0xbc], edx
je 0x4885cd
movzx eax, byte [esi + 2]
test byte [eax + 0x4fdf06], 1
jne 0x48885e
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 0x4899e0
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 0x48e9fa
mov eax, dword [ebp + 0x10]
test al, 0x20
jne 0x4899ea
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 0x488671
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 0x4886ae
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 0x48cec8
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 0x48896e
cmp ecx, 0x7b
je 0x4889cd
movzx eax, byte [ecx + 0x4fdf06]
test al, 2
jne 0x488a36
lea edx, [ecx - 0x5d]
cmp edx, 0x17
ja case.default.0x48870f
jmp dword [edx*4 + 0x501a48]
cmp ecx, 0x22
je 0x488e8e
test al, 1
jne 0x488750
mov eax, dword [ebp + 0x10]
test al, 0x10
jne 0x488775
test al, 8
je 0x4967c2
mov ecx, edi
call fcn.0049ac40
test al, al
jne 0x4886e0
jmp 0x491703
inc esi
nop word cs:[eax + eax]
mov dword [esp], esi
movzx eax, byte [esi]
inc esi
test byte [eax + 0x4fdf06], 1
jne 0x488760
jmp 0x4886e0
cmp ecx, 0x49
je 0x488784
cmp ecx, 0x69
je 0x488784
cmp ecx, 0x4e
jne 0x488734
mov eax, dword [esp + 0x54]
add eax, 0x10
mov dword [esp + 0x54], eax
cmp eax, dword [esp + 0x74]
jae 0x48c151
mov edi, dword [esp + 0x10]
movzx eax, cl
add eax, 0xffffffb7
cmp eax, 0x25
ja case.0x4887b0.74
inc dword [esp + 0x1c]
jmp dword [eax*4 + 0x501bf8]
movzx eax, byte [esi + 1]
or eax, 0x20
cmp eax, 0x6e
jne 0x48a9d0
movzx eax, byte [esi + 2]
or eax, 0x20
cmp eax, 0x66
jne 0x48a9d0
mov ecx, esi
lea eax, [esi + 3]
movzx ecx, byte [esi + 3]
or ecx, 0x20
cmp ecx, 0x69
jne 0x48881b
movzx ecx, byte [esi + 4]
or ecx, 0x20
cmp ecx, 0x6e
jne 0x48881b
movzx ecx, byte [esi + 5]
or ecx, 0x20
cmp ecx, 0x69
jne 0x48881b
movzx ecx, byte [esi + 6]
or ecx, 0x20
cmp ecx, 0x74
jne 0x48881b
movzx ecx, byte [esi + 7]
or ecx, 0x20
cmp ecx, 0x79
jne 0x48881b
lea eax, [esi + 8]
mov dword [esp], eax
cmp dword [esp + 0x20], 0
je 0x48aac3
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
test ecx, ecx
je 0x488836
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 0x48aad3
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 0x489a07
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 0x489a11
mov edx, eax
mov eax, dword [ebp + 0x10]
test al, 0x20
jne 0x489a8b
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 0x4888ef
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 0x488931
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 0x488958
mov dword [esp], esi
jmp 0x48895a
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 0x488963
mov dword [esp], esi
jmp 0x488965
mov esi, edi
mov dword [esp + 0x10], eax
jmp 0x495f51
mov esi, edi
mov dword [esp + 0x10], eax
jmp 0x491918
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 0x489b42
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 0x4886c7
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 0x489ae4
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 0x48cec8
mov eax, dword [esp + 0x54]
add eax, 0x10
mov dword [esp + 0x54], eax
cmp eax, dword [esp + 0x74]
jae 0x489bd6
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 0x48a8f5
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 + 0x4fe3f8], 2
mov dword [esp + 0x10], ecx
je 0x489c42
add eax, 0xffffffd0
movzx edx, byte [ecx + 1]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x489c9a
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 0x489cf8
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 0x489d4f
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 0x489da6
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 0x489dfd
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 0x489e54
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 0x489eab
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 0x489f02
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 0x489f59
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 0x489fb0
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 0x48a007
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 0x48a05e
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 0x48a0b5
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 0x48a10c
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 0x48a163
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 0x48a1ba
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 0x48a211
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 0x48a264
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 + 0x4fe3f8]
test al, 0x33
je 0x489121
mov dword [esp + 0x34], edx
test al, 3
je 0x488d72
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 0x14]
test byte [ecx + 0x4fe3f8], 0x33
mov ecx, dword [esp + 0x10]
je 0x48920c
test al, 0x20
jne 0x4891ac
cmp byte [esp + 0x34], 0x2e
mov dword [esp + 0x2c], ebx
jne 0x4892dc
movzx eax, byte [ecx + 0x14]
add ecx, 0x14
mov dword [esp + 0x34], eax
test byte [eax + 0x4fe3f8], 3
mov edi, dword [esp + 0xc]
jne 0x4892e2
jmp 0x48e436
mov eax, dword [esp + 0x54]
add eax, 0x10
cmp eax, dword [esp + 0x74]
jae 0x48a2cb
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 8]
cmp dword [esi], 0x65757274
jne 0x48a451
inc dword [esp + 0x1c]
mov dword [eax + 4], 0
mov dword [esp + 0x54], eax
mov dword [eax], 0xb
jmp 0x488e21
mov edi, dword [esp + 0x54]
add edi, 0x10
cmp edi, dword [esp + 0x74]
jae 0x48a345
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 0x48a45a
mov dword [edi + 4], 0
mov dword [edi], 2
add esi, 4
mov dword [esp], esi
jmp 0x49aa17
lea edi, [esi + 1]
mov dword [esp], edi
cmp dword [esp + 0x1c], 0
jne 0x48a3b7
xor esi, esi
mov edx, dword [esp + 0x10]
jmp 0x49aaa1
mov eax, dword [esp + 0x54]
add eax, 0x10
cmp eax, dword [esp + 0x74]
jae 0x48a3db
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 8]
cmp dword [esi + 1], 0x65736c61
jne 0x48a451
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 0x49aa17
mov eax, dword [esp + 0x54]
add eax, 0x10
mov dword [esp + 0x54], eax
cmp eax, dword [esp + 0x74]
jae 0x48a924
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 + 0x4fdf06], 0xc
jne 0x48906d
add eax, 8
mov ebx, eax
nop dword [eax + eax]
movzx edx, byte [ebx - 7]
test byte [edx + 0x4fdf06], 0xc
jne 0x488fcf
movzx edx, byte [ebx - 6]
test byte [edx + 0x4fdf06], 0xc
jne 0x488fd4
movzx edx, byte [ebx - 5]
test byte [edx + 0x4fdf06], 0xc
jne 0x488fd9
movzx edx, byte [ebx - 4]
test byte [edx + 0x4fdf06], 0xc
jne 0x488fde
movzx edx, byte [ebx - 3]
test byte [edx + 0x4fdf06], 0xc
jne 0x488fe3
movzx edx, byte [ebx - 2]
test byte [edx + 0x4fdf06], 0xc
jne 0x488fe8
movzx edx, byte [ebx - 1]
test byte [edx + 0x4fdf06], 0xc
jne 0x488fed
movzx edx, byte [ebx]
test byte [edx + 0x4fdf06], 0xc
jne 0x48900f
movzx edx, byte [ebx + 1]
test byte [edx + 0x4fdf06], 0xc
jne 0x488ff0
movzx edx, byte [ebx + 2]
test byte [edx + 0x4fdf06], 0xc
jne 0x488ff3
movzx edx, byte [ebx + 3]
test byte [edx + 0x4fdf06], 0xc
jne 0x488ff8
movzx edx, byte [ebx + 4]
test byte [edx + 0x4fdf06], 0xc
jne 0x488ffd
movzx edx, byte [ebx + 5]
test byte [edx + 0x4fdf06], 0xc
jne 0x489002
movzx edx, byte [ebx + 6]
test byte [edx + 0x4fdf06], 0xc
jne 0x489007
movzx edx, byte [ebx + 7]
test byte [edx + 0x4fdf06], 0xc
jne 0x48900c
movzx edx, byte [ebx + 8]
add ebx, 0x10
test byte [edx + 0x4fdf06], 0xc
je 0x488ed0
add ebx, 0xfffffff8
jmp 0x48900f
add ebx, 0xfffffff9
jmp 0x48900f
add ebx, 0xfffffffa
jmp 0x48900f
add ebx, 0xfffffffb
jmp 0x48900f
add ebx, 0xfffffffc
jmp 0x48900f
add ebx, 0xfffffffd
jmp 0x48900f
add ebx, 0xfffffffe
jmp 0x48900f
dec ebx
jmp 0x48900f
inc ebx
jmp 0x48900f
add ebx, 2
jmp 0x48900f
add ebx, 3
jmp 0x48900f
add ebx, 4
jmp 0x48900f
add ebx, 5
jmp 0x48900f
add ebx, 6
jmp 0x48900f
add ebx, 7
mov dword [esp + 0x48], 0
mov eax, 0xd
cmp dl, 0x22
je 0x4890f1
mov dword [esp + 0x10], esi
test dl, dl
jns 0x48b1f0
mov ecx, dword [ebx]
mov eax, ecx
and eax, 0xc0c0f0
cmp eax, 0x8080e0
jne 0x489071
mov eax, ebx
mov edx, ecx
and edx, 0x200f
je 0x489073
cmp edx, 0x200d
je 0x489073
mov ecx, dword [eax + 3]
add eax, 3
mov edx, ecx
and edx, 0xc0c0f0
cmp edx, 0x8080e0
je 0x489043
jmp 0x489073
mov ebx, eax
jmp 0x48900f
mov eax, ebx
test cl, cl
mov esi, dword [esp + 0x10]
jns 0x488eb6
mov edx, ecx
and edx, 0xc0e0
cmp edx, 0x80c0
jne 0x4890a4
mov edx, ecx
and edx, 0x1e
je 0x4890a4
mov ecx, dword [eax + 2]
add eax, 2
jmp 0x48907f
mov ecx, dword [eax + 4]
add eax, 4
mov edx, ecx
and edx, 0xc0c0c0f8
cmp edx, 0x808080f0
jne 0x4890cb
mov edx, ecx
and edx, 0x3007
je 0x4890cb
test cl, 4
je 0x48909e
and ecx, 0x3003
je 0x48909e
cmp ebx, eax
mov esi, dword [esp + 0x10]
jne 0x488eb6
cmp byte [esp + 0x98], 0
je 0x49099c
inc ebx
mov eax, ebx
mov esi, dword [esp + 0x10]
jmp 0x488eb6
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 0x4893b4
cmp byte [esp + 0x24], 0x2d
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x28]
jne 0x4891cf
mov eax, 0x80000000
mov ecx, edx
neg ecx
sbb eax, edi
jae 0x4891cf
mov eax, dword [ebp + 0x10]
test al, al
mov edx, dword [esp + 4]
mov eax, dword [esp + 0x54]
js 0x48aa88
mov dword [eax + 4], 0
movd xmm0, dword [esp + 0x28]
movd xmm1, edi
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x4fdd90]
subpd xmm0, xmmword [0x4fdda0]
mov dword [eax], 0x14
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
xorpd xmm1, xmmword [0x4fddb0]
movlpd qword [eax + 8], xmm1
mov eax, dword [esp + 0xc]
mov dword [esp], eax
mov ecx, dword [esp + 8]
jmp 0x49aa17
mov dword [esp + 0x18], 0
mov edi, dword [esp + 0xc]
xor ecx, ecx
mov dword [esp + 0x40], 0
mov dword [esp + 0x14], 0
jmp 0x489439
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 0x4897dc
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 0x489259
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 0x488d72
cmp edi, 5
ja 0x488d72
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 0x489396
mov ebx, dword [ebp + 0x10]
test bl, bl
mov ecx, dword [esp + 0x54]
js 0x48adf2
mov dword [ecx + 4], 0
movd xmm0, eax
movd xmm1, edx
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x4fdd90]
subpd xmm0, xmmword [0x4fdda0]
mov dword [ecx], 0x14
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
xorpd xmm1, xmmword [0x4fddb0]
movlpd qword [ecx + 8], xmm1
jmp 0x4893ad
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 + 0x4fe3f8]
inc ecx
inc eax
test dl, 3
jne 0x4892eb
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 0x489321
mov ecx, edx
jmp 0x4893c7
mov edi, edx
mov edx, dword [ebp + 0x10]
test dl, dl
jns 0x489337
mov dh, byte [esp + 0x38]
and dh, 0x30
je 0x48ae24
cmp bl, 0x2e
jne 0x4893c5
movzx eax, byte [ecx]
test byte [eax + 0x4fe3f8], 3
je 0x48e436
mov ecx, edi
mov ebx, dword [esp + 0x2c]
movzx eax, byte [ecx + 1]
inc ecx
movzx eax, byte [eax + 0x4fe3f8]
test al, 3
jne 0x489356
mov byte [esp + 0x38], al
jmp 0x4893cb
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 0x496855
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 0x49aa17
mov ecx, edi
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x34], ecx
lea eax, [ecx - 1]
jmp 0x4893e1
dec eax
movzx ecx, byte [eax]
cmp ecx, 0x30
je 0x4893e0
cmp ecx, 0x2e
je 0x4893e0
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 0x4894fa
mov dword [esp + 0x4c], ecx
movzx ecx, byte [edi + 1]
xor eax, eax
mov dword [esp + 0x10], ecx
test byte [ecx + 0x4fe3f8], 0xc
setne al
movzx ecx, byte [edi + eax + 1]
test byte [ecx + 0x4fe3f8], 3
je 0x48ea6c
add edi, eax
mov ecx, edi
nop word [eax + eax]
movzx edx, byte [ecx + 1]
inc ecx
inc edi
cmp edx, 0x30
je 0x489470
mov dword [esp + 0x38], edi
mov dword [esp + 0x2c], ebx
xor eax, eax
test byte [edx + 0x4fe3f8], 3
je 0x4894bc
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 + 0x4fe3f8], 3
mov ecx, edi
jne 0x489492
jmp 0x4894c0
mov edi, ecx
xor ebx, ebx
mov dword [esp + 0x34], edi
mov ecx, edi
sub ecx, dword [esp + 0x38]
cmp ecx, 0x13
jge 0x48a994
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 0x48a51b
cmp edi, 0x135
sbb ecx, 0
jge 0x48a54c
mov dword [esp + 0x9c], edi
test dword [esp + 0x48], 0xffe00000
jne 0x489580
cmp edi, 0xffffffea
jl 0x489580
cmp edi, 0x16
jg 0x489580
movss xmm1, dword [esp + 0x28]
movss xmm0, dword [esp + 0x48]
unpcklps xmm1, xmm0
unpcklps xmm1, xmmword [0x4fdd90]
subpd xmm1, xmmword [0x4fdda0]
movapd xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm0, xmm1
test edi, edi
mov ecx, dword [esp + 8]
js 0x4897ec
mulsd xmm0, qword [edi*8 + 0x4fe340]
jmp 0x4897fa
cmp dword [esp + 0x14], 0
sete cl
cmp edi, 0xfffffece
setge dl
cmp edi, 0x120
setl al
test cl, dl
je 0x48a591
test al, al
je 0x48a59b
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 + 0x4ffa68]
mov dword [esp + 0x58], eax
mul edi
mov dword [esp + 0x70], eax
mov dword [esp + 0x30], edx
mov eax, dword [ecx + 0x4ffa6c]
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 0x48968c
mov esi, dword [esp + 0x60]
jmp 0x489758
mov dword [esp + 0xa0], edx
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x18]
add eax, eax
mov ebx, dword [eax*8 + 0x4ffa74]
mov dword [esp + 0x5c], ebx
mov eax, dword [eax*8 + 0x4ffa70]
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 0x48a612
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 0x49aa17
shl edi, 3
mov eax, 0x4fe340
sub eax, edi
divsd xmm0, qword [eax]
mov eax, dword [esp + 0x54]
mov dword [eax + 4], 0
mov dword [eax], 0x14
movapd xmm1, xmmword [0x4fddb0]
xorpd xmm1, xmm0
cmp byte [esp + 0x24], 0x2d
je 0x489822
movapd xmm1, xmm0
movsd qword [eax + 8], xmm1
mov eax, dword [esp + 0x34]
mov dword [esp], eax
jmp 0x49aa17
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 0x488521
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 0x48988a
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 0x496855
lea eax, [esi + ecx]
mov dword [esp + 0x84], eax
mov dword [esp + 0xb4], esi
xor edx, edx
jmp 0x488581
mov eax, dword [ebp + 0x10]
test al, 8
jne 0x48ae5a
test cl, 1
je 0x4898e2
mov esi, dword [esp + 0x88]
movzx eax, byte [esi + 1]
inc esi
test byte [eax + 0x4fdf06], 1
jne 0x4898cd
mov dword [esp + 0xb4], esi
cmp esi, dword [esp + 0x84]
jae 0x48ae86
movzx eax, byte [esi]
jmp 0x48859b
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 fcn.0049ace0
add esp, 0x1c
mov ebx, eax
test ebx, ebx
jne 0x49683a
mov eax, dword [ebp + 0x18]
test eax, eax
cmove eax, edi
cmp dword [eax + 8], 0
mov edx, dword [esp + 0x88]
jne 0x48a4ff
mov eax, dword [esp + 0x90]
cmp dword [eax], 2
je 0x48a4ff
movzx eax, byte [edx]
cmp eax, 0xef
jne 0x489985
cmp byte [edx + 1], 0xbb
jne 0x489985
mov ecx, str.byte_order_mark__BOM__is_not_supported
cmp byte [edx + 2], 0xbf
je 0x48a4f4
mov ecx, dword [ebp + 0xc]
cmp ecx, 4
jb 0x489aa8
cmp eax, 0xff
je 0x489ba0
cmp eax, 0xfe
mov edx, dword [esp + 0x88]
mov esi, dword [esp + 0x8c]
je 0x489ad5
test eax, eax
jne 0x48a4ff
cmp byte [edx + 1], 0
jne 0x48a4ff
cmp byte [edx + 2], 0xfe
jne 0x48a4ff
cmp byte [edx + 3], 0xff
jne 0x48a4ff
jmp 0x489bcc
mov ebx, 0x30
jmp 0x4885ff
and eax, 0x40
shr eax, 6
mov dword [esp + 0x98], eax
mov dword [esp + 0xb0], 0
jmp 0x48865d
mov ebx, 0x16
jmp 0x488888
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 fcn.0049ea60
add esp, 0xc
test al, al
cmovne esi, ebx
mov ecx, 0x4fe006
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 0x48ea66
mov esi, dword [esp + 0x8c]
jmp 0x496830
and eax, 0x40
shr eax, 6
mov dword [esp + 0x98], eax
mov dword [esp + 0xb0], 0
jmp 0x4888de
cmp ecx, 2
jb 0x48a4ff
cmp eax, 0xff
je 0x48a4db
cmp eax, 0xfe
mov edx, dword [esp + 0x88]
mov esi, dword [esp + 0x8c]
jne 0x48a4ff
cmp byte [edx + 1], 0xff
jne 0x48a4ff
jmp 0x48a4ef
mov ecx, edx
shr ecx, 1
add ecx, edx
mov dword [esp + 0x10], ecx
cmp ecx, 0xffffffe
ja 0x48c1ba
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 0x48c1ba
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 0x488a0f
mov ecx, edx
shr ecx, 1
add ecx, edx
mov dword [esp + 0x10], ecx
cmp ecx, 0xffffffe
ja 0x48c1ba
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 0x48c1ba
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 0x4889b0
mov edx, dword [esp + 0x88]
cmp byte [edx + 1], 0xfe
mov esi, dword [esp + 0x8c]
jne 0x48a4ff
cmp byte [edx + 2], 0
jne 0x48a4ef
cmp byte [edx + 3], 0
jne 0x48a4ef
mov ecx, str.UTF_32_encoding_is_not_supported
jmp 0x48a4f4
mov ecx, dword [esp + 0x10]
mov eax, ecx
shr eax, 1
add eax, ecx
cmp eax, 0xffffffe
ja 0x48c1ba
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 0x48c1ba
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 0x488a4f
cmp eax, 0x30
jne 0x48c1c3
mov eax, dword [esp + 0x10]
lea edi, [eax + 1]
movzx eax, byte [eax + 1]
movzx ecx, byte [eax + 0x4fe3f8]
test cl, 0x33
jne 0x48c2bc
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 0x4897df
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 + 0x4fe3f8], 0x30
jne 0x48c319
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 0x48a2c2
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 + 0x4fe3f8], 0x30
je 0x48a288
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 0x48c399
jmp 0x489439
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 + 0x4fe3f8], 0x30
je 0x48a288
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 0x48c3e0
jmp 0x489439
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 + 0x4fe3f8], 0x30
je 0x48a288
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 0x48c427
jmp 0x489439
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 + 0x4fe3f8], 0x30
je 0x48a288
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 0x48c46e
jmp 0x489439
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 + 0x4fe3f8], 0x30
je 0x48a288
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 0x48c4b5
jmp 0x489439
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 + 0x4fe3f8], 0x30
je 0x48a288
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 0x48c4fc
jmp 0x489439
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 + 0x4fe3f8], 0x30
je 0x48a288
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 0x48c543
jmp 0x489439
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 + 0x4fe3f8], 0x30
je 0x48a288
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 0x48c58a
jmp 0x489439
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 + 0x4fe3f8], 0x30
je 0x48a288
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 0x48c5d1
jmp 0x489439
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 + 0x4fe3f8], 0x30
je 0x48a288
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 0x48c618
jmp 0x489439
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 + 0x4fe3f8], 0x30
je 0x48a288
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 0x48c65f
jmp 0x489439
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 + 0x4fe3f8], 0x30
je 0x48a288
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 0x48c6a6
jmp 0x489439
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 + 0x4fe3f8], 0x30
je 0x48a288
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 0x48c6ed
jmp 0x489439
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 + 0x4fe3f8], 0x30
je 0x48a288
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 0x48c734
jmp 0x489439
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 + 0x4fe3f8], 0x30
je 0x48a288
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 0x48c77b
jmp 0x489439
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 + 0x4fe3f8], 0x30
je 0x48a288
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 0x48c7c2
jmp 0x489439
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 + 0x4fe3f8], 0x30
jne 0x48c8e4
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 0x4893b1
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x10]
mov eax, ecx
shr eax, 1
add eax, ecx
cmp eax, 0xffffffe
ja 0x48c1ba
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 0x48c1ba
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 0x488dcf
jmp 0x48a451
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 0x48c1ba
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 0x48c1ba
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 0x488dff
mov eax, dword [ebp + 0x10]
test al, 4
jne 0x48c917
cmp byte [edi], 0x2c
je 0x491771
mov dword [esp], esi
cmp byte [esi], 0x2c
lea esi, [esi - 1]
jne 0x48a3cb
jmp 0x49176e
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x10]
mov eax, ecx
shr eax, 1
add eax, ecx
cmp eax, 0xffffffe
ja 0x48c1ba
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 0x48c1ba
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 0x488e6e
mov dword [esp + 8], ecx
jmp 0x4917cd
mov dword [esp + 8], ecx
mov ecx, dword [ebp + 0x10]
test cl, 0x10
je 0x4917cd
movzx ecx, al
or ecx, 0x20
cmp ecx, 0x6e
jne 0x4917cd
movzx ecx, ah
or ecx, 0x20
cmp ecx, 0x61
jne 0x4917cd
shr eax, 0x10
movzx eax, al
or eax, 0x20
cmp eax, 0x6e
jne 0x4917cd
lea eax, [esi + 3]
mov dword [esp], eax
cmp dword [esp + 0x20], 0
je 0x48c936
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
test ecx, ecx
je 0x48a4b8
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 0x49aa17
mov edx, dword [esp + 0x88]
cmp byte [edx + 1], 0xfe
mov esi, dword [esp + 0x8c]
jne 0x48a4ff
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 0x496855
push edx
push dword [esp + 0x7c]
call esi
add esp, 8
jmp 0x496855
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 0x4891a0
mov eax, dword [ebp + 0x10]
test al, al
js 0x48c920
test al, 0x10
je 0x48f88d
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 0x4897d8
xor eax, eax
test al, al
jne 0x4895aa
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 + 0x4ffa6c]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x4ffa68]
mov dword [esp + 0x58], eax
mov eax, dword [edi + 0x4ffa74]
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 0x48aade
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 0x48a87f
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 0x48ab4e
shrd edi, eax, 0xb
shr eax, 0xb
cmp edx, 0xfffffbc2
jle 0x48adbd
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 0x48ab4e
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 0x48a8b3
cmp edx, dword [esp + 0x6c]
sbb eax, dword [esp + 0x70]
jb 0x48ab97
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 0x49aa17
lea eax, [esp + 0x64]
mov ecx, esp
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x58]
push dword [ebp + 0x10]
call fcn.0049ed80
mov edx, dword [esp + 0x10]
add esp, 0xc
test al, al
mov ecx, dword [esp + 8]
jne 0x49aa17
jmp 0x48e445
mov ecx, dword [esp + 0x10]
mov eax, ecx
shr eax, 1
add eax, ecx
cmp eax, 0xffffffe
ja 0x48c1ba
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 0x48c1ba
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 0x488eab
cmp byte [esp + 0x10], 0x2d
jne 0x48aa3f
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 0x4893b1
cmp cl, 0x4e
jne case.0x4887b0.74
movzx eax, byte [esi + 1]
or eax, 0x20
cmp eax, 0x61
jne case.0x4887b0.74
movzx eax, byte [esi + 2]
or eax, 0x20
cmp eax, 0x6e
jne case.0x4887b0.74
lea eax, [esi + 3]
mov dword [esp], eax
cmp dword [esp + 0x20], 0
je 0x48aa32
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
test ecx, ecx
je 0x48aa13
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 0x48aad3
movapd xmm0, xmmword [0x4fddc0]
jmp 0x48aacb
mov eax, dword [ebp + 0x10]
test al, al
js 0x48c94f
test al, 0x10
je 0x48f88d
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 0x4893b1
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test eax, eax
je 0x48aa95
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 0x489c92
movapd xmm0, xmmword [0x4fddd0]
mov eax, dword [esp + 0x54]
movupd xmmword [eax], xmm0
mov ecx, dword [esp + 8]
mov edx, edi
jmp 0x49aa17
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 0x48cec1
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 0x48a74d
mov dword [esp + 0x10], esi
mov eax, dword [ebp + 0x10]
test al, al
js 0x48c9c5
test al, 0x10
je 0x48f9fe
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 0x48be8a
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 fcn.0049efa0
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 0x48aeae
cmp eax, 0x13
jb 0x48b047
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x28], ecx
jmp 0x48ac64
mov ecx, dword [esp + 0x44]
lea eax, [ecx - 0x13]
cmp ecx, 0x25
jle 0x48b03c
mov dword [esp + 0x44], eax
cmp dword [esp + 0x28], 0
je 0x48ac8a
xor edi, edi
mov eax, dword [esp + edi*8 + 0xc8]
or eax, dword [esp + edi*8 + 0xcc]
jne 0x48ac8c
inc edi
cmp dword [esp + 0x28], edi
jne 0x48ac71
jmp 0x48ac54
xor edi, edi
cmp edi, dword [esp + 0x28]
jae 0x48ac54
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 0x48aca2
mov eax, dword [esp + 0x18]
or eax, dword [esp + 0xc]
je 0x48ac54
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 0x48ac54
xor ecx, ecx
mov dword [esp + 0x4c], 0
cmp edx, 0xfffffb8f
jb 0x48a87f
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 0x48a87f
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test eax, eax
je 0x48adff
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 0x48ae4c
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
test ecx, ecx
je 0x48ae31
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 0x4893b4
mov ebx, edx
lea ecx, [esp + 0xb4]
call fcn.0049ac40
mov esi, dword [esp + 0xb4]
test al, al
je 0x48b1a0
mov edx, ebx
cmp esi, dword [esp + 0x84]
jb 0x4898ef
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 0x48b1c6
neg eax
mov dword [esp + 0x50], 1
cmp eax, 0x13
jb 0x48b794
mov dword [esp + 0x50], 1
mov dword [esp + 0x28], 1
jmp 0x48aee3
mov ecx, dword [esp + 0x44]
lea eax, [ecx - 0x13]
cmp ecx, 0x25
jle 0x48b779
mov dword [esp + 0x44], eax
cmp dword [esp + 0x28], 0
je 0x48af09
xor edi, edi
mov eax, dword [esp + edi*8 + 0x2d0]
or eax, dword [esp + edi*8 + 0x2d4]
jne 0x48af0b
inc edi
cmp dword [esp + 0x28], edi
jne 0x48aef0
jmp 0x48aed3
xor edi, edi
cmp edi, dword [esp + 0x28]
jae 0x48aed3
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 0x48af21
mov eax, dword [esp + 0x18]
or eax, dword [esp + 0xc]
je 0x48aed3
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 0x48aed3
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x30], 1
test eax, eax
je 0x48b8ca
mov ecx, dword [eax*8 + 0x500ebc]
mov dword [esp + 0x5c], ecx
mov eax, dword [eax*8 + 0x500eb8]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xc0]
xor ecx, ecx
mov dword [esp + 0x18], eax
test eax, eax
je 0x48b09c
xor ecx, ecx
mov eax, dword [esp + ecx*8 + 0xc8]
or eax, dword [esp + ecx*8 + 0xcc]
jne 0x48b09c
inc ecx
cmp dword [esp + 0x18], ecx
jne 0x48b080
jmp 0x48b8ca
cmp ecx, dword [esp + 0x18]
jae 0x48b8ca
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 0x48b0b6
mov eax, dword [esp + 0x28]
or eax, dword [esp + 0xc]
je 0x48b8ca
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 0x48b8ca
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 0x48b1d4
xor ebx, ebx
jmp 0x496855
push dword [esp + 0x88]
push dword [esp + 0x7c]
call dword [esp + 0x94]
add esp, 8
xor ebx, ebx
jmp 0x496855
mov edi, ebx
cmp dl, 0x5c
jne 0x48b64e
movzx eax, byte [ebx + 1]
add eax, 0xffffffde
cmp eax, 0x53
ja case.0x48f183.35
jmp dword [eax*4 + 0x501aa8]
mov byte [edi], 0x22
jmp 0x48b2d0
mov byte [edi], 0xa
jmp 0x48b2d0
mov byte [edi], 0x2f
jmp 0x48b2d0
mov byte [edi], 8
jmp 0x48b2d0
movzx eax, byte [ebx + 2]
movzx edx, byte [eax + 0x4fe17d]
movzx eax, byte [ebx + 3]
movzx ecx, byte [eax + 0x4fe17d]
movzx eax, byte [ebx + 4]
movzx esi, byte [eax + 0x4fe17d]
movzx eax, byte [ebx + 5]
movzx eax, byte [eax + 0x4fe17d]
shl edx, 8
or edx, esi
shl ecx, 8
or ecx, eax
mov eax, ecx
or eax, edx
test eax, 0xf0f0
jne 0x48fcb0
shl edx, 4
or ecx, edx
lea edx, [ebx + 6]
mov eax, ecx
and eax, 0xf800
cmp eax, 0xd800
je 0x48b67e
movzx ebx, cx
cmp ebx, 0x800
jb 0x48b2d8
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 0x48b304
mov byte [edi], 0x5c
jmp 0x48b2d0
mov byte [edi], 0xd
jmp 0x48b2d0
mov byte [edi], 0xc
jmp 0x48b2d0
mov byte [edi], 9
inc edi
add ebx, 2
mov edx, ebx
jmp 0x48b304
cmp ebx, 0x80
jb 0x48b2f7
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 0x48b304
mov byte [edi], cl
inc edi
jmp 0x48b304
cmp ebx, edx
je 0x48b631
movzx eax, byte [edx]
test byte [eax + 0x4fdf06], 0xc
jne 0x48b54a
movzx eax, byte [edx + 1]
test byte [eax + 0x4fdf06], 0xc
jne 0x48b641
movzx eax, byte [edx + 2]
test byte [eax + 0x4fdf06], 0xc
jne 0x48b426
movzx eax, byte [edx + 3]
test byte [eax + 0x4fdf06], 0xc
jne 0x48b437
movzx eax, byte [edx + 4]
test byte [eax + 0x4fdf06], 0xc
jne 0x48b446
movzx eax, byte [edx + 5]
test byte [eax + 0x4fdf06], 0xc
jne 0x48b455
movzx eax, byte [edx + 6]
test byte [eax + 0x4fdf06], 0xc
jne 0x48b46c
movzx eax, byte [edx + 7]
test byte [eax + 0x4fdf06], 0xc
jne 0x48b483
movzx eax, byte [edx + 8]
test byte [eax + 0x4fdf06], 0xc
jne 0x48b496
movzx eax, byte [edx + 9]
test byte [eax + 0x4fdf06], 0xc
jne 0x48b4a9
movzx eax, byte [edx + 0xa]
test byte [eax + 0x4fdf06], 0xc
jne 0x48b4c4
movzx eax, byte [edx + 0xb]
test byte [eax + 0x4fdf06], 0xc
jne 0x48b4dc
movzx eax, byte [edx + 0xc]
test byte [eax + 0x4fdf06], 0xc
jne 0x48b4f2
movzx eax, byte [edx + 0xd]
test byte [eax + 0x4fdf06], 0xc
jne 0x48b508
movzx eax, byte [edx + 0xe]
test byte [eax + 0x4fdf06], 0xc
jne 0x48b526
movzx eax, byte [edx + 0xf]
test byte [eax + 0x4fdf06], 0xc
movupd xmm0, xmmword [edx]
movupd xmmword [edi], xmm0
jne 0x48b544
add edx, 0x10
add edi, 0x10
jmp 0x48b304
movzx eax, word [edx]
add edx, 2
mov word [edi], ax
add edi, 2
jmp 0x48b54a
mov eax, dword [edx]
add edx, 3
mov dword [edi], eax
add edi, 3
jmp 0x48b54a
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
jmp 0x48b54a
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 0x48b54c
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 0x48b54c
movsd xmm0, qword [edx]
add edx, 7
movsd qword [edi], xmm0
add edi, 7
jmp 0x48b54a
movsd xmm0, qword [edx]
add edx, 8
movsd qword [edi], xmm0
add edi, 8
jmp 0x48b54a
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 0x48b54c
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 0x48b54c
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 0x48b54c
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 0x48b54c
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 0x48b54c
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 0x48b54c
add edx, 0xf
add edi, 0xf
mov ebx, edx
movzx edx, byte [ebx]
test dl, dl
jns 0x48b1f2
mov eax, dword [ebx]
mov ecx, eax
and eax, 0xc0c0f0
mov edx, ebx
cmp eax, 0x8080e0
jne 0x48b5a6
mov dword [esp + 0x28], edi
mov edi, ecx
and ecx, 0x200f
je 0x48b5a0
cmp ecx, 0x200d
je 0x48b5a0
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 0x48b569
jmp 0x48b5a6
mov ecx, edi
mov edi, dword [esp + 0x28]
test cl, cl
jns 0x48b304
mov dword [esp + 0x28], edi
mov eax, ecx
and eax, 0xc0e0
cmp eax, 0x80c0
jne 0x48b5ee
mov eax, ecx
and eax, 0x1e
mov edi, dword [esp + 0x28]
je 0x48b5ff
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 0x48b5ff
mov eax, ecx
and eax, 0x1e
jne 0x48b5cb
jmp 0x48b5ff
mov edi, dword [esp + 0x28]
jmp 0x48b5ff
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 0x48b2fc
mov eax, ecx
and eax, 0x3007
je 0x48b2fc
test cl, 4
je 0x48b5f4
mov eax, ecx
and eax, 0x3003
je 0x48b5f4
jmp 0x48b2fc
cmp byte [esp + 0x98], 0
je 0x49099c
mov edx, ebx
movzx eax, word [edx]
mov word [edi], ax
inc edx
inc edi
jmp 0x48b54a
movzx eax, dl
cmp eax, 0x22
je 0x48c141
cmp byte [esp + 0x98], 0
je 0x490fc0
cmp ebx, dword [esp + 0x84]
jae 0x490fd5
inc ebx
mov byte [edi], dl
inc edi
jmp 0x48b2d4
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x490fea
movzx eax, word [edx]
cmp eax, 0x755c
jne 0x490fff
movzx eax, byte [ebx + 8]
movzx eax, byte [eax + 0x4fe17d]
mov dword [esp + 0x28], eax
movzx eax, byte [ebx + 9]
movzx esi, byte [eax + 0x4fe17d]
movzx eax, byte [ebx + 0xa]
movzx eax, byte [eax + 0x4fe17d]
mov dword [esp + 0xc], eax
movzx eax, byte [ebx + 0xb]
movzx eax, byte [eax + 0x4fe17d]
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 0x491011
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 0x491023
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 0x48b2d4
test eax, eax
je 0x48b8c2
mov dword [esp + 0x30], 0
cmp dword [esp + 0x50], 0
je 0x48b8ca
mov ecx, dword [eax*8 + 0x500ebc]
mov dword [esp + 0x30], ecx
mov eax, dword [eax*8 + 0x500eb8]
mov dword [esp + 0x60], eax
xor ecx, ecx
mov eax, dword [esp + ecx*8 + 0x2d0]
or eax, dword [esp + ecx*8 + 0x2d4]
jne 0x48b7c8
inc ecx
cmp dword [esp + 0x50], ecx
jne 0x48b7ac
jmp 0x48b8c2
cmp ecx, dword [esp + 0x50]
jae 0x48b8c2
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 0x48b7e2
mov eax, dword [esp + 0x28]
or eax, dword [esp + 0xc]
je 0x48b8c2
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 0x48b8ca
mov eax, dword [esp + 0x50]
mov dword [esp + 0x30], eax
cmp dword [esp + 0x6c], 0
jle 0x48bb3b
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 0x48ca0c
mov eax, dword [esp + 0x30]
mov dword [esp + eax*8 + 0x2d4], 0
mov dword [esp + eax*8 + 0x2d0], 0
test eax, eax
je 0x48bad6
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 0x48be93
mov esi, ebx
test bl, 1
je 0x48b9a4
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 0x48bad6
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 0x48b9c1
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 0x48bdcc
jmp 0x48bde2
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 0x48ca5c
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 0x48bd6d
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 0x48bfea
mov eax, dword [esp + 0x48]
mov edi, eax
test al, 1
je 0x48bc31
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 0x48bd6d
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 0x48bc50
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 0x48bde2
mov eax, dword [esp + 0x5c]
shl eax, 3
push eax
push 0
push dword [esp + 0x78]
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0xc], 0
mov eax, 0
cmp ecx, dword [esp + 0x30]
jb 0x48be46
mov al, 1
ja 0x48be46
mov edx, ecx
sub edx, 1
jb 0x48bfd6
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 0x48be02
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 0x48c983
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 0x48a8e1
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 0x48b92d
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 0x48b92d
mov ebx, dword [esp + 0x30]
lea ecx, [esp + ebx*8]
add ecx, 0x2d0
mov edi, ecx
sub edi, eax
cmp edi, ecx
ja 0x48b92d
mov ebx, dword [esp + 0x30]
lea eax, [ebx - 1]
cmp eax, 0x1fffffff
ja 0x48b92d
lea eax, [esp + esi*8]
add eax, 0x2c8
sub edx, eax
mov ebx, dword [esp + 0x30]
cmp edx, 0x20
jb 0x48b92d
add edx, 0xfffffff8
mov ebx, dword [esp + 0x30]
cmp edx, 0x20
jb 0x48b92d
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 0x48bf64
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x30], eax
jne 0x48b92d
jmp 0x48bad6
mov ecx, dword [esp + 0x3c]
and ecx, 1
mov dword [esp + 0xc], 0
jmp 0x48be49
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 0x48bbb3
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 0x48bbb3
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 0x48bbb3
mov edi, dword [esp + 0x44]
lea eax, [edi - 1]
mov dword [esp + 0x48], edi
cmp eax, 0x1fffffff
ja 0x48bbb3
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 0x48bbb3
add edx, 0xfffffff8
mov eax, dword [esp + 0x44]
mov dword [esp + 0x48], eax
cmp edx, 0x20
jb 0x48bbb3
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 0x48c0d3
cmp dword [esp + 0x44], edx
jne 0x48bbb3
jmp 0x48bd6d
mov eax, 5
mov ecx, edi
mov esi, dword [esp + 0x10]
jmp 0x4890f3
mov ecx, dword [esp + 0x10]
mov eax, ecx
shr eax, 1
add eax, ecx
cmp eax, 0xffffffe
ja 0x48c1ba
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 0x48c1ba
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 0x48879d
mov eax, dword [esp + 8]
jmp 0x48e9fa
mov edi, eax
mov eax, dword [ebp + 0x10]
test al, 0x10
je case.0x4914ab.74
xor ecx, ecx
cmp byte [esp + 0x24], 0x2d
sete al
lea edx, [edi - 0x49]
cmp edx, 0x25
ja case.0x4914ab.74
mov cl, al
mov eax, dword [esp + 0x10]
sub eax, ecx
jmp dword [edx*4 + 0x5019b0]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 1]
or ecx, 0x20
cmp ecx, 0x6e
jne 0x48cd90
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 2]
or ecx, 0x20
cmp ecx, 0x66
jne 0x48cd90
mov edx, dword [esp + 0x10]
lea ecx, [edx + 3]
movzx edx, byte [edx + 3]
or edx, 0x20
cmp edx, 0x69
jne 0x48c277
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 4]
or edx, 0x20
cmp edx, 0x6e
jne 0x48c277
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 5]
or edx, 0x20
cmp edx, 0x69
jne 0x48c277
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 6]
or edx, 0x20
cmp edx, 0x74
jne 0x48c277
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 7]
or edx, 0x20
cmp edx, 0x79
jne 0x48c277
mov ecx, dword [esp + 0x10]
add ecx, 8
cmp byte [esp + 0x80], 0
je 0x48ce47
mov edx, dword [esp + 0x20]
mov edx, dword [edx]
test edx, edx
je 0x48c292
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 0x48ce74
cmp al, 0x2e
jne 0x48cd4e
mov eax, dword [esp + 0x10]
movzx ecx, byte [eax + 2]
test byte [ecx + 0x4fe3f8], 3
je 0x49104e
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 0x48c2e1
mov eax, ecx
movzx ecx, byte [ecx + 0x4fe3f8]
test cl, 3
je 0x48cd4a
add eax, 0xffffffd0
mov dword [esp + 0x28], eax
sar eax, 0x1f
mov dword [esp + 0x48], eax
dec dword [esp + 0x10]
jmp 0x48c352
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 0x489439
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 0x48c969
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 0x48c969
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 0x48c969
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 0x48c969
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 0x48c969
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 0x48c969
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 0x48c969
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 0x48c969
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 0x48c969
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 0x48c969
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 0x48c969
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 0x48c969
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 0x48c969
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 0x48c969
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 0x48c969
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 0x48c969
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 0x48c969
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 0x48c969
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 + 0x4fe3f8], 3
mov dword [esp + 0x40], ecx
mov dword [esp + 0xc], edi
jne 0x4892e2
mov eax, dword [esp + 0xc]
inc eax
cmp eax, dword [esp + 0x40]
je 0x48c972
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 + 0x4fe3f8], 0x20
jne 0x48cd0a
mov dword [esp + 0x14], 0
cmp eax, 0x159
jge 0x48cd19
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 0x489521
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 0x48c809
jmp 0x489439
mov edx, dword [esp + 0x10]
jmp 0x49aa9d
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test eax, eax
je 0x48c92d
mov byte [eax], 0
mov edi, dword [esp + 0x34]
jmp 0x48aa99
movapd xmm0, xmmword [0x4fddc0]
mov eax, dword [esp + 0x54]
movupd xmmword [eax], xmm0
mov ecx, dword [esp + 8]
jmp 0x49aa17
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test eax, eax
je 0x48c95c
mov byte [eax], 0
mov edi, dword [esp + 0x34]
mov eax, edi
sub eax, esi
jmp 0x48ae31
mov dword [esp + 0xc], edi
jmp 0x48c870
mov dword [esp + 0x64], str.no_digit_after_decimal_point
mov eax, dword [esp + 0x40]
jmp 0x48ea77
mov eax, dword [ebp + 0x10]
test al, al
js 0x48c9c5
test al, 0x10
je 0x48f9fe
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 0x48be8a
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test eax, eax
je 0x48c9d2
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 0x48a8e9
cmp dword [esp + 0x30], 0
je 0x48cc71
mov ecx, dword [esp + 0x30]
mov eax, ecx
cmp ecx, 0x20
jae 0x48cb5c
lea edx, [eax - 1]
mov edi, eax
and edi, 3
je 0x48cc1a
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 0x48ca41
jmp 0x48cc1c
cmp dword [esp + 0x44], 0
je 0x48cce0
mov ecx, dword [esp + 0x44]
mov eax, ecx
cmp ecx, 0x20
jb 0x48cb26
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 0x48cb26
mov eax, dword [esp + 0x44]
lea edx, [esp + eax*8]
add edx, 0xc0
mov ebx, edx
sub ebx, edi
cmp ebx, edx
ja 0x48cb26
mov eax, dword [esp + 0x44]
lea edi, [eax - 1]
cmp edi, 0x1fffffff
ja 0x48cb26
sub edx, ecx
mov eax, dword [esp + 0x44]
cmp edx, 0x20
jb 0x48cb26
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 0x48caff
cmp dword [esp + 0x44], esi
je 0x48cce0
lea edx, [eax - 1]
mov edi, eax
and edi, 3
je 0x48cc89
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 0x48cb41
jmp 0x48cc8b
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 0x48ca26
mov eax, dword [esp + 0x30]
lea edx, [esp + eax*8]
add edx, 0x2c8
mov ebx, edx
sub ebx, edi
cmp ebx, edx
ja 0x48ca26
mov eax, dword [esp + 0x30]
lea edi, [eax - 1]
cmp edi, 0x1fffffff
ja 0x48ca26
sub edx, ecx
mov eax, dword [esp + 0x30]
cmp edx, 0x20
jb 0x48ca26
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 0x48cbf1
cmp dword [esp + 0x30], esi
jne 0x48ca26
jmp 0x48cc71
mov ecx, eax
cmp edx, 3
jb 0x48cc71
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 0x48cc2f
mov eax, dword [esp + 0x5c]
add dword [esp + 0x30], eax
cmp dword [esp + 0x6c], 0x40
jae 0x48bdcc
jmp 0x48bde2
mov ecx, eax
cmp edx, 3
jb 0x48cce0
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 0x48cc9e
mov eax, dword [esp + 0x44]
add eax, dword [esp + 0x5c]
mov dword [esp + 0xc0], eax
cmp dword [esp + 0x6c], 0x40
jb 0x48bde2
lea eax, [esp + 0xc8]
mov dword [esp + 0x70], eax
jmp 0x48bdcc
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x2c]
mov ecx, edx
jmp 0x489439
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 0x4893b1
mov edi, dword [esp + 0x10]
test cl, 3
jne 0x48cd82
test cl, 0x20
jne 0x48ce7c
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 0x489c8b
mov dword [esp + 0x64], str.number_with_leading_zero_is_not_allowed
dec edi
jmp 0x48ceb9
cmp edi, 0x4e
jne case.0x4914ab.74
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 1]
or ecx, 0x20
cmp ecx, 0x61
jne case.0x4914ab.74
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 2]
or ecx, 0x20
cmp ecx, 0x6e
jne case.0x4914ab.74
add dword [esp + 0x10], 3
cmp byte [esp + 0x80], 0
je 0x48ce11
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
test ecx, ecx
je 0x48cddd
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 0x4897df
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 0x4897dc
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 0x4897df
movzx eax, byte [edi + 1]
movzx eax, byte [eax + 0x4fe3f8]
and al, 0xc
cmp al, 1
sbb edi, 0
movzx eax, byte [edi + 2]
add edi, 2
test byte [eax + 0x4fe3f8], 3
je 0x48ceb1
movzx eax, byte [edi + 1]
inc edi
test byte [eax + 0x4fe3f8], 3
jne 0x48ce9e
jmp 0x48cd5c
mov dword [esp + 0x64], str.no_digit_after_exponent_sign
mov dword [esp], edi
jmp 0x48e441
mov ecx, ebx
jmp 0x48a74d
mov edi, esp
mov esi, dword [esp]
movzx eax, byte [esi]
cmp eax, 0x22
mov dword [esp + 8], ecx
je 0x48cf21
cmp eax, 0x7d
je 0x48e3ae
test byte [eax + 0x4fdf06], 1
jne 0x48cf0a
mov eax, dword [ebp + 0x10]
test al, 8
je 0x4967c2
mov ecx, edi
call fcn.0049ac40
test al, al
mov ecx, dword [esp + 8]
jne 0x48ceca
jmp 0x491703
inc esi
mov ecx, dword [esp + 8]
mov dword [esp], esi
movzx eax, byte [esi]
inc esi
test byte [eax + 0x4fdf06], 1
jne 0x48cf0f
jmp 0x48ceca
mov eax, dword [esp + 0x54]
add eax, 0x10
cmp eax, dword [esp + 0x74]
jae 0x48e3ca
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 + 0x4fdf06], 0xc
jne 0x48d172
add esi, 8
mov ebx, esi
nop word cs:[eax + eax]
movzx edx, byte [ebx - 7]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d06f
movzx edx, byte [ebx - 6]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d074
movzx edx, byte [ebx - 5]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d079
movzx edx, byte [ebx - 4]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d07e
movzx edx, byte [ebx - 3]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d083
movzx edx, byte [ebx - 2]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d088
movzx edx, byte [ebx - 1]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d08d
movzx edx, byte [ebx]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d0b0
movzx edx, byte [ebx + 1]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d090
movzx edx, byte [ebx + 2]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d093
movzx edx, byte [ebx + 3]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d098
movzx edx, byte [ebx + 4]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d09d
movzx edx, byte [ebx + 5]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d0a2
movzx edx, byte [ebx + 6]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d0a7
movzx edx, byte [ebx + 7]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d0ac
movzx edx, byte [ebx + 8]
add ebx, 0x10
test byte [edx + 0x4fdf06], 0xc
je 0x48cf70
add ebx, 0xfffffff8
jmp 0x48d0b0
add ebx, 0xfffffff9
jmp 0x48d0b0
add ebx, 0xfffffffa
jmp 0x48d0b0
add ebx, 0xfffffffb
jmp 0x48d0b0
add ebx, 0xfffffffc
jmp 0x48d0b0
add ebx, 0xfffffffd
jmp 0x48d0b0
add ebx, 0xfffffffe
jmp 0x48d0b0
dec ebx
jmp 0x48d0b0
inc ebx
jmp 0x48d0b0
add ebx, 2
jmp 0x48d0b0
add ebx, 3
jmp 0x48d0b0
add ebx, 4
jmp 0x48d0b0
add ebx, 5
jmp 0x48d0b0
add ebx, 6
jmp 0x48d0b0
add ebx, 7
nop
mov eax, 0xd
cmp dl, 0x22
je 0x48d179
test dl, dl
jns 0x48e44e
mov ecx, dword [ebx]
mov eax, ecx
and eax, 0xc0c0f0
mov esi, ebx
cmp eax, 0x8080e0
jne 0x48d100
mov edx, ecx
and edx, 0x200f
je 0x48d100
cmp edx, 0x200d
je 0x48d100
mov ecx, dword [esi + 3]
add esi, 3
mov edx, ecx
and edx, 0xc0c0f0
cmp edx, 0x8080e0
je 0x48d0d8
test cl, cl
jns 0x48cf50
mov edx, ecx
and edx, 0xc0e0
cmp edx, 0x80c0
jne 0x48d12d
mov edx, ecx
and edx, 0x1e
je 0x48d12d
mov ecx, dword [esi + 2]
add esi, 2
jmp 0x48d108
mov ecx, dword [esi + 4]
add esi, 4
mov edx, ecx
and edx, 0xc0c0c0f8
cmp edx, 0x808080f0
jne 0x48d154
mov edx, ecx
and edx, 0x3007
je 0x48d154
test cl, 4
je 0x48d127
and ecx, 0x3003
je 0x48d127
cmp ebx, esi
jne 0x48cf50
cmp byte [esp + 0x98], 0
je 0x49099c
inc ebx
mov esi, ebx
jmp 0x48cf50
mov ebx, esi
jmp 0x48d0b0
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 0x48d421
mov ebx, dword [esp + 0x2c]
mov eax, esi
inc esi
mov dword [esp], esi
movzx eax, byte [eax + 1]
cmp al, 0x22
jne 0x48d4b7
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 + 0x4fdf06], 0xc
jne 0x48d39d
add eax, 8
mov ebx, eax
nop word [eax + eax]
movzx edx, byte [ebx - 7]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d2ff
movzx edx, byte [ebx - 6]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d304
movzx edx, byte [ebx - 5]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d309
movzx edx, byte [ebx - 4]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d30e
movzx edx, byte [ebx - 3]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d313
movzx edx, byte [ebx - 2]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d318
movzx edx, byte [ebx - 1]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d31d
movzx edx, byte [ebx]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d33f
movzx edx, byte [ebx + 1]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d320
movzx edx, byte [ebx + 2]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d323
movzx edx, byte [ebx + 3]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d328
movzx edx, byte [ebx + 4]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d32d
movzx edx, byte [ebx + 5]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d332
movzx edx, byte [ebx + 6]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d337
movzx edx, byte [ebx + 7]
test byte [edx + 0x4fdf06], 0xc
jne 0x48d33c
movzx edx, byte [ebx + 8]
add ebx, 0x10
test byte [edx + 0x4fdf06], 0xc
je 0x48d200
add ebx, 0xfffffff8
jmp 0x48d33f
add ebx, 0xfffffff9
jmp 0x48d33f
add ebx, 0xfffffffa
jmp 0x48d33f
add ebx, 0xfffffffb
jmp 0x48d33f
add ebx, 0xfffffffc
jmp 0x48d33f
add ebx, 0xfffffffd
jmp 0x48d33f
add ebx, 0xfffffffe
jmp 0x48d33f
dec ebx
jmp 0x48d33f
inc ebx
jmp 0x48d33f
add ebx, 2
jmp 0x48d33f
add ebx, 3
jmp 0x48d33f
add ebx, 4
jmp 0x48d33f
add ebx, 5
jmp 0x48d33f
add ebx, 6
jmp 0x48d33f
add ebx, 7
mov dword [esp + 0x1c], 0
mov eax, 0xd
cmp dl, 0x22
je 0x48d47a
mov dword [esp + 0x10], esi
test dl, dl
jns 0x48f168
mov ecx, dword [ebx]
mov eax, ecx
and eax, 0xc0c0f0
cmp eax, 0x8080e0
jne 0x48d3a1
mov eax, ebx
mov edx, ecx
and edx, 0x200f
je 0x48d3a3
cmp edx, 0x200d
je 0x48d3a3
mov ecx, dword [eax + 3]
add eax, 3
mov edx, ecx
and edx, 0xc0c0f0
cmp edx, 0x8080e0
je 0x48d373
jmp 0x48d3a3
mov ebx, eax
jmp 0x48d33f
mov eax, ebx
test cl, cl
mov esi, dword [esp + 0x10]
jns 0x48d1e5
mov edx, ecx
and edx, 0xc0e0
cmp edx, 0x80c0
jne 0x48d3d4
mov edx, ecx
and edx, 0x1e
je 0x48d3d4
mov ecx, dword [eax + 2]
add eax, 2
jmp 0x48d3af
mov ecx, dword [eax + 4]
add eax, 4
mov edx, ecx
and edx, 0xc0c0c0f8
cmp edx, 0x808080f0
jne 0x48d3fb
mov edx, ecx
and edx, 0x3007
je 0x48d3fb
test cl, 4
je 0x48d3ce
and ecx, 0x3003
je 0x48d3ce
cmp ebx, eax
mov esi, dword [esp + 0x10]
jne 0x48d1e5
cmp byte [esp + 0x98], 0
je 0x49099c
inc ebx
mov eax, ebx
mov esi, dword [esp + 0x10]
jmp 0x48d1e5
mov edi, esp
mov ebx, dword [esp + 0x2c]
movzx eax, al
test byte [eax + 0x4fdf06], 1
jne 0x48d459
mov eax, dword [ebp + 0x10]
test al, 8
je 0x4967c2
mov ecx, edi
call fcn.0049ac40
mov esi, dword [esp]
test al, al
je 0x491706
movzx eax, byte [esi]
mov edx, dword [esp + 0x28]
jmp 0x48d471
inc esi
nop word [eax + eax]
mov dword [esp], esi
movzx eax, byte [esi]
inc esi
test byte [eax + 0x4fdf06], 1
jne 0x48d460
dec esi
cmp al, 0x3a
jne 0x48d427
jmp 0x48d1c4
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 0x49aae4
mov edi, esp
mov dword [esp + 0x24], eax
movzx eax, al
movzx ecx, byte [eax + 0x4fdf06]
test cl, 2
jne 0x48d585
lea edx, [eax - 0x5b]
cmp edx, 0x20
ja case.0x48d4d8.92
jmp dword [edx*4 + 0x5017dc]
test cl, 1
jne 0x48d510
mov ecx, dword [ebp + 0x10]
test cl, 0x10
jne 0x48d53e
test cl, 8
je 0x4967c0
mov ecx, edi
call fcn.0049ac40
mov esi, dword [esp]
test al, al
je 0x491706
movzx eax, byte [esi]
mov ebx, dword [esp + 0x2c]
jmp 0x48d531
inc esi
nop word cs:[eax + eax]
mov dword [esp], esi
movzx eax, byte [esi]
inc esi
test byte [eax + 0x4fdf06], 1
jne 0x48d520
dec esi
mov edx, dword [esp + 0x28]
cmp al, 0x22
jne 0x48d4b9
jmp 0x48d1d6
cmp byte [esp + 0x24], 0x49
je 0x48d54f
cmp eax, 0x69
je 0x48d54f
cmp eax, 0x4e
jne 0x48d4ec
mov ecx, dword [esp + 0x28]
add ecx, 0x10
mov dword [esp + 0x54], ecx
add dword [esp + 0x48], 2
cmp byte [esp + 0x24], 0x49
je 0x48f0be
cmp eax, 0x69
je 0x48f0be
cmp eax, 0x4e
jne case.0x4887b0.74
movzx eax, byte [esi + 1]
jmp 0x48f7e1
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 0x48f7aa
xor edx, edx
cmp byte [esp + 0x24], 0x2d
sete dl
lea ecx, [esi + edx]
movzx eax, byte [esi + edx]
test byte [eax + 0x4fe3f8], 2
mov dword [esp + 0x10], ecx
je 0x48ea7f
add eax, 0xffffffd0
movzx ecx, byte [ecx + 1]
lea edi, [ecx - 0x30]
cmp edi, 9
ja 0x48ead5
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 0x48eb30
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 0x48eb7f
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 0x48ebce
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 0x48ec1d
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 0x48ec6c
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 0x48ecbb
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 0x48ed0a
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 0x48ed59
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 0x48eda8
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 0x48edf7
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 0x48ee46
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 0x48ee95
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 0x48eee4
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 0x48ef33
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 0x48ef82
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 0x48efd1
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 0x48f01c
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 + 0x4fe3f8]
test dl, 0x33
je 0x48d993
mov dword [esp + 0x34], eax
test dl, 3
je 0x48d8a5
mov eax, ecx
movzx ecx, byte [ecx + 0x14]
test byte [ecx + 0x4fe3f8], 0x33
mov ecx, eax
je 0x48da82
xor edi, edi
test dl, 0x20
jne 0x48da1f
xor edi, edi
cmp byte [esp + 0x34], 0x2e
mov dword [esp + 0x2c], ebx
jne 0x48db54
movzx eax, byte [ecx + 0x14]
add ecx, 0x14
test byte [eax + 0x4fe3f8], 3
je 0x48e436
mov dword [esp + 0x34], eax
mov edi, dword [esp + 0x18]
jmp 0x48db58
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 0x48f07d
mov dword [ecx + 4], 0
mov dword [ecx], 2
jmp 0x48d938
cmp dword [esi], 0x65757274
jne 0x4917cd
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 0x48e02c
mov edx, dword [esp + 4]
mov edi, dword [esp + 0x28]
jmp 0x4889d5
mov edx, dword [esp + 4]
mov edi, dword [esp + 0x28]
jmp 0x488976
cmp dword [esi + 1], 0x65736c61
jne 0x4917cd
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 0x48e02c
cmp byte [esp + 0x24], 0x2d
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
jne 0x48da44
mov eax, 0x80000000
mov ecx, edx
neg ecx
sbb eax, edi
jae 0x48da44
mov eax, dword [ebp + 0x10]
test al, al
mov edx, dword [esp + 4]
js 0x48f932
mov eax, dword [esp + 0x28]
mov dword [eax + 0x14], 0
movd xmm0, dword [esp + 0xc]
movd xmm1, edi
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x4fdd90]
subpd xmm0, xmmword [0x4fdda0]
mov dword [eax + 0x10], 0x14
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
xorpd xmm1, xmmword [0x4fddb0]
movlpd qword [eax + 0x18], xmm1
mov eax, dword [esp + 0x18]
mov dword [esp], eax
mov ecx, dword [esp + 8]
jmp 0x49aae4
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 0x48dc84
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 0x48e029
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 0x48dad4
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 0x48d8a5
cmp edi, 5
ja 0x48d8a5
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 0x48dbe8
mov ecx, dword [ebp + 0x10]
test cl, cl
js 0x48fc62
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x14], 0
movd xmm0, eax
movd xmm1, edx
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x4fdd90]
subpd xmm0, xmmword [0x4fdda0]
mov dword [ecx + 0x10], 0x14
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
xorpd xmm1, xmmword [0x4fddb0]
movlpd qword [ecx + 0x18], xmm1
jmp 0x48e025
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 + 0x4fe3f8]
inc ecx
inc eax
test bl, 3
jne 0x48db61
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 0x48db9c
mov ecx, ebx
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0x2c]
jmp 0x48dc0f
mov edi, ebx
mov ebx, dword [ebp + 0x10]
test bl, bl
jns 0x48dbb3
movzx ebx, byte [esp + 0x3c]
and bl, 0x30
je 0x48fca1
cmp dl, 0x2e
jne 0x48dc05
movzx eax, byte [ecx]
test byte [eax + 0x4fe3f8], 3
je 0x48e436
mov ecx, edi
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 4]
movzx eax, byte [ecx + 1]
inc ecx
movzx eax, byte [eax + 0x4fe3f8]
test al, 3
jne 0x48dbd2
mov byte [esp + 0x3c], al
jmp 0x48dc0f
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 0x48e025
mov ecx, edi
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 4]
mov dword [esp + 0x38], ecx
lea eax, [ecx - 1]
jmp 0x48dc19
dec eax
movzx ecx, byte [eax]
cmp ecx, 0x30
je 0x48dc18
cmp ecx, 0x2e
je 0x48dc18
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 0x48dd42
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 + 0x4fe3f8], 0xc
setne al
movzx ecx, byte [edi + eax + 1]
test byte [ecx + 0x4fe3f8], 3
je 0x48ea6c
add edi, eax
mov ecx, edi
movzx edx, byte [ecx + 1]
inc ecx
inc edi
cmp edx, 0x30
je 0x48dcb6
mov dword [esp + 0x3c], edi
mov dword [esp + 0x1c], ebx
xor eax, eax
test byte [edx + 0x4fe3f8], 3
je 0x48dd02
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 + 0x4fe3f8], 3
mov ecx, ebx
jne 0x48dcd8
jmp 0x48dd06
mov ebx, ecx
xor edi, edi
mov dword [esp + 0x38], ebx
mov ecx, ebx
sub ecx, dword [esp + 0x3c]
cmp ecx, 0x13
jge 0x48f83e
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 0x48f771
cmp edi, 0x135
sbb dword [esp + 0x14], 0
jge 0x48f87a
mov dword [esp + 0x9c], edi
test ecx, 0xffe00000
jne 0x48ddc6
cmp edi, 0xffffffea
jl 0x48ddc6
cmp edi, 0x16
jg 0x48ddc6
movd xmm1, dword [esp + 0xc]
movd xmm0, ecx
punpckldq xmm1, xmm0
punpckldq xmm1, xmmword [0x4fdd90]
subpd xmm1, xmmword [0x4fdda0]
movapd xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm0, xmm1
test edi, edi
mov ecx, dword [esp + 8]
js 0x48e035
mulsd xmm0, qword [edi*8 + 0x4fe340]
jmp 0x48e043
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 0x48f7a3
test al, al
mov ecx, dword [esp + 0xc]
je 0x48f8b1
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 + 0x4ffa68]
mov dword [esp + 0x60], eax
mul edi
mov dword [esp + 0x7c], eax
mov dword [esp + 0x50], edx
mov eax, dword [ecx + 0x4ffa6c]
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 0x48ded8
mov esi, dword [esp + 0x44]
jmp 0x48dfa6
mov dword [esp + 0xb8], edx
mov eax, dword [esp + 0x34]
add eax, eax
mov ebx, dword [eax*8 + 0x4ffa74]
mov dword [esp + 0x6c], ebx
mov eax, dword [eax*8 + 0x4ffa70]
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 0x48e07a
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 0x48d4ae
shl edi, 3
mov eax, 0x4fe340
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 [0x4fddb0]
xorpd xmm1, xmm0
cmp byte [esp + 0x24], 0x2d
je 0x48e06c
movapd xmm1, xmm0
mov eax, dword [esp + 0x28]
movsd qword [eax + 0x18], xmm1
jmp 0x48e3a2
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 0x48f96c
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 0x48e33b
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 0x48f9e7
shrd edx, edi, 0xb
shr edi, 0xb
cmp eax, 0xfffffbc2
jle 0x48fc2c
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 0x48f9e7
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 0x48e36f
cmp edx, dword [esp + 0x7c]
sbb eax, dword [esp + 0x40]
jb 0x48fa0f
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 0x49aae4
lea edi, [esi + 1]
mov dword [esp], edi
cmp dword [esp + 0x48], 0
jne 0x48fcc5
xor esi, esi
mov edx, dword [esp + 0x10]
jmp 0x49abd5
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x10]
mov esi, eax
shr esi, 1
add esi, eax
cmp esi, 0xffffffe
ja 0x48e9f4
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 0x48e9f8
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 0x48cf42
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 0x495c1c
mov dword [esp + 0x54], 0
mov esi, ebx
cmp dl, 0x5c
jne 0x48e8c9
movzx eax, byte [ebx + 1]
add eax, 0xffffffde
cmp eax, 0x53
ja case.0x48f183.35
jmp dword [eax*4 + 0x5015f4]
mov byte [esi], 0x22
jmp 0x48e536
mov byte [esi], 0xa
jmp 0x48e536
mov byte [esi], 0x2f
jmp 0x48e536
mov byte [esi], 8
jmp 0x48e536
movzx eax, byte [ebx + 2]
movzx edx, byte [eax + 0x4fe17d]
movzx eax, byte [ebx + 3]
movzx ecx, byte [eax + 0x4fe17d]
movzx eax, byte [ebx + 4]
movzx edi, byte [eax + 0x4fe17d]
movzx eax, byte [ebx + 5]
movzx eax, byte [eax + 0x4fe17d]
shl edx, 8
or edx, edi
shl ecx, 8
or ecx, eax
mov eax, ecx
or eax, edx
test eax, 0xf0f0
jne 0x48fcb0
shl edx, 4
or ecx, edx
lea edx, [ebx + 6]
mov eax, ecx
and eax, 0xf800
cmp eax, 0xd800
je 0x48e8f9
movzx ebx, cx
cmp ebx, 0x800
jb 0x48e53e
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 0x48e570
mov byte [esi], 0x5c
jmp 0x48e536
mov byte [esi], 0xd
jmp 0x48e536
mov byte [esi], 0xc
jmp 0x48e536
mov byte [esi], 9
inc esi
add ebx, 2
mov edx, ebx
jmp 0x48e570
cmp ebx, 0x80
jb 0x48e55d
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 0x48e570
mov byte [esi], cl
inc esi
jmp 0x48e570
cmp ebx, edx
je 0x48e8ac
nop word [eax + eax]
movzx eax, byte [edx]
test byte [eax + 0x4fdf06], 0xc
jne 0x48e7b6
movzx eax, byte [edx + 1]
test byte [eax + 0x4fdf06], 0xc
jne 0x48e8bc
movzx eax, byte [edx + 2]
test byte [eax + 0x4fdf06], 0xc
jne 0x48e692
movzx eax, byte [edx + 3]
test byte [eax + 0x4fdf06], 0xc
jne 0x48e6a3
movzx eax, byte [edx + 4]
test byte [eax + 0x4fdf06], 0xc
jne 0x48e6b2
movzx eax, byte [edx + 5]
test byte [eax + 0x4fdf06], 0xc
jne 0x48e6c1
movzx eax, byte [edx + 6]
test byte [eax + 0x4fdf06], 0xc
jne 0x48e6d8
movzx eax, byte [edx + 7]
test byte [eax + 0x4fdf06], 0xc
jne 0x48e6ef
movzx eax, byte [edx + 8]
test byte [eax + 0x4fdf06], 0xc
jne 0x48e702
movzx eax, byte [edx + 9]
test byte [eax + 0x4fdf06], 0xc
jne 0x48e715
movzx eax, byte [edx + 0xa]
test byte [eax + 0x4fdf06], 0xc
jne 0x48e730
movzx eax, byte [edx + 0xb]
test byte [eax + 0x4fdf06], 0xc
jne 0x48e748
movzx eax, byte [edx + 0xc]
test byte [eax + 0x4fdf06], 0xc
jne 0x48e75e
movzx eax, byte [edx + 0xd]
test byte [eax + 0x4fdf06], 0xc
jne 0x48e774
movzx eax, byte [edx + 0xe]
test byte [eax + 0x4fdf06], 0xc
jne 0x48e792
movzx eax, byte [edx + 0xf]
test byte [eax + 0x4fdf06], 0xc
movupd xmm0, xmmword [edx]
movupd xmmword [esi], xmm0
jne 0x48e7b0
add edx, 0x10
add esi, 0x10
jmp 0x48e570
movzx eax, word [edx]
add edx, 2
mov word [esi], ax
add esi, 2
jmp 0x48e7b6
mov eax, dword [edx]
add edx, 3
mov dword [esi], eax
add esi, 3
jmp 0x48e7b6
mov eax, dword [edx]
add edx, 4
mov dword [esi], eax
add esi, 4
jmp 0x48e7b6
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 0x48e7b8
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 0x48e7b8
movsd xmm0, qword [edx]
add edx, 7
movsd qword [esi], xmm0
add esi, 7
jmp 0x48e7b6
movsd xmm0, qword [edx]
add edx, 8
movsd qword [esi], xmm0
add esi, 8
jmp 0x48e7b6
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 0x48e7b8
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 0x48e7b8
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 0x48e7b8
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 0x48e7b8
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 0x48e7b8
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 0x48e7b8
add edx, 0xf
add esi, 0xf
mov ebx, edx
movzx edx, byte [ebx]
test dl, dl
jns 0x48e458
mov eax, dword [ebx]
mov ecx, eax
and eax, 0xc0c0f0
mov edx, ebx
cmp eax, 0x8080e0
jne 0x48e80f
nop word cs:[eax + eax]
mov edi, ecx
and ecx, 0x200f
je 0x48e80d
cmp ecx, 0x200d
je 0x48e80d
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 0x48e7e0
jmp 0x48e80f
mov ecx, edi
test cl, cl
jns 0x48e570
mov eax, ecx
and eax, 0xc0e0
cmp eax, 0x80c0
jne 0x48e853
mov eax, ecx
and eax, 0x1e
mov edi, ecx
je 0x48e855
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 0x48e855
mov eax, edi
and eax, 0x1e
jne 0x48e830
jmp 0x48e855
mov edi, ecx
mov eax, edi
and eax, 0xc0c0c0f8
cmp eax, 0x808080f0
jne 0x48e562
mov ecx, edi
jmp 0x48e888
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 0x48e562
mov eax, ecx
and eax, 0x3007
je 0x48e562
test cl, 4
mov eax, ecx
je 0x48e86b
mov ecx, eax
and eax, 0x3003
mov eax, ecx
je 0x48e86b
jmp 0x48e562
cmp byte [esp + 0x98], 0
je 0x49099c
mov edx, ebx
movzx eax, word [edx]
mov word [esi], ax
inc edx
inc esi
jmp 0x48e7b6
movzx eax, dl
cmp eax, 0x22
je 0x48f8a7
cmp byte [esp + 0x98], 0
je 0x490fc0
cmp ebx, dword [esp + 0x84]
jae 0x490fd5
inc ebx
mov byte [esi], dl
inc esi
jmp 0x48e53a
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x490fea
movzx eax, word [edx]
cmp eax, 0x755c
jne 0x490fff
movzx eax, byte [ebx + 8]
movzx eax, byte [eax + 0x4fe17d]
mov dword [esp + 0x24], eax
movzx eax, byte [ebx + 9]
movzx edi, byte [eax + 0x4fe17d]
movzx eax, byte [ebx + 0xa]
movzx eax, byte [eax + 0x4fe17d]
mov dword [esp + 0x18], eax
movzx eax, byte [ebx + 0xb]
movzx eax, byte [eax + 0x4fe17d]
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 0x491011
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 0x491023
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 0x48e53a
mov eax, ecx
jmp 0x48e9fa
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 fcn.0049ea60
add esp, 0xc
test al, al
cmovne esi, ebx
mov ecx, 0x4fe006
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 0x489a7f
push eax
jmp 0x496820
add eax, edi
inc eax
mov dword [esp + 0x64], str.no_digit_after_exponent_sign
mov dword [esp], eax
jmp 0x48e441
cmp eax, 0x30
jne 0x4909b1
mov eax, dword [esp + 0x10]
lea ebx, [eax + 1]
movzx eax, byte [eax + 1]
movzx ecx, byte [eax + 0x4fe3f8]
test cl, 0x33
jne 0x4909cb
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 0x48d4a3
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x3c], eax
test byte [ecx + 0x4fe3f8], 0x30
jne 0x490a28
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 0x48f071
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 2
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x48f03a
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 0x490a99
jmp 0x48dc84
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 3
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x48f03a
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 0x490ad8
jmp 0x48dc84
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 4
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x48f03a
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 0x490b17
jmp 0x48dc84
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 5
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x48f03a
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 0x490b56
jmp 0x48dc84
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 6
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x48f03a
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 0x490b95
jmp 0x48dc84
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 7
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x48f03a
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 0x490bd4
jmp 0x48dc84
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 8
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x48f03a
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 0x490c13
jmp 0x48dc84
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 9
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x48f03a
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 0x490c52
jmp 0x48dc84
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 0xa
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x48f03a
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 0x490c91
jmp 0x48dc84
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 0xb
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x48f03a
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 0x490cd0
jmp 0x48dc84
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 0xc
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x48f03a
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 0x490d0f
jmp 0x48dc84
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 0xd
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x48f03a
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 0x490d4e
jmp 0x48dc84
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 0xe
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x48f03a
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 0x490d8d
jmp 0x48dc84
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 0xf
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x48f03a
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 0x490dcc
jmp 0x48dc84
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 0x10
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x48f03a
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 0x490e0b
jmp 0x48dc84
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 0x11
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x48f03a
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 0x490e4a
jmp 0x48dc84
mov dword [esp + 0xc], eax
mov edi, ecx
mov eax, dword [esp + 0x10]
add eax, 0x12
mov dword [esp + 0x3c], eax
test byte [edx + 0x4fe3f8], 0x30
jne 0x490f5c
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 0x48d4a6
mov ecx, dword [ebp + 0x10]
test cl, 0x10
je 0x4917cd
movzx ecx, al
or ecx, 0x20
cmp ecx, 0x6e
jne 0x4917cd
movzx ecx, ah
or ecx, 0x20
cmp ecx, 0x61
jne 0x4917cd
shr eax, 0x10
movzx eax, al
or eax, 0x20
cmp eax, 0x6e
je 0x48f800
jmp 0x4917cd
movzx eax, byte [esi + 1]
mov ecx, eax
or ecx, 0x20
cmp ecx, 0x6e
jne 0x48f7d6
movzx ecx, byte [esi + 2]
or ecx, 0x20
cmp ecx, 0x66
jne 0x48f7d6
mov ecx, esi
lea eax, [esi + 3]
movzx ecx, byte [esi + 3]
or ecx, 0x20
cmp ecx, 0x69
jne 0x48f124
movzx ecx, byte [esi + 4]
or ecx, 0x20
cmp ecx, 0x6e
jne 0x48f124
movzx ecx, byte [esi + 5]
or ecx, 0x20
cmp ecx, 0x69
jne 0x48f124
movzx ecx, byte [esi + 6]
or ecx, 0x20
cmp ecx, 0x74
jne 0x48f124
movzx ecx, byte [esi + 7]
or ecx, 0x20
cmp ecx, 0x79
jne 0x48f124
lea eax, [esi + 8]
mov dword [esp], eax
cmp dword [esp + 0x20], 0
je 0x48f948
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
test ecx, ecx
je 0x48f13f
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 0x48d4a6
mov esi, ebx
cmp dl, 0x5c
jne 0x48f5e1
movzx eax, byte [ebx + 1]
add eax, 0xffffffde
cmp eax, 0x53
ja case.0x48f183.35
jmp dword [eax*4 + 0x501860]
mov byte [esi], 0x22
jmp 0x48f248
mov byte [esi], 0xa
jmp 0x48f248
mov byte [esi], 0x2f
jmp 0x48f248
mov byte [esi], 8
jmp 0x48f248
movzx eax, byte [ebx + 2]
movzx edx, byte [eax + 0x4fe17d]
movzx eax, byte [ebx + 3]
movzx ecx, byte [eax + 0x4fe17d]
movzx eax, byte [ebx + 4]
movzx edi, byte [eax + 0x4fe17d]
movzx eax, byte [ebx + 5]
movzx eax, byte [eax + 0x4fe17d]
shl edx, 8
or edx, edi
shl ecx, 8
or ecx, eax
mov eax, ecx
or eax, edx
test eax, 0xf0f0
jne 0x48fcb0
shl edx, 4
or ecx, edx
lea edx, [ebx + 6]
mov eax, ecx
and eax, 0xf800
cmp eax, 0xd800
je 0x48f615
movzx ebx, cx
cmp ebx, 0x800
jb 0x48f250
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 0x48f280
mov byte [esi], 0x5c
jmp 0x48f248
mov byte [esi], 0xd
jmp 0x48f248
mov byte [esi], 0xc
jmp 0x48f248
mov byte [esi], 9
inc esi
add ebx, 2
mov edx, ebx
jmp 0x48f280
cmp ebx, 0x80
jb 0x48f26f
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 0x48f280
mov byte [esi], cl
inc esi
jmp 0x48f280
mov esi, edi
cmp ebx, edx
je 0x48f5c4
nop
movzx eax, byte [edx]
test byte [eax + 0x4fdf06], 0xc
jne 0x48f4c6
movzx eax, byte [edx + 1]
test byte [eax + 0x4fdf06], 0xc
jne 0x48f5d4
movzx eax, byte [edx + 2]
test byte [eax + 0x4fdf06], 0xc
jne 0x48f3a2
movzx eax, byte [edx + 3]
test byte [eax + 0x4fdf06], 0xc
jne 0x48f3b3
movzx eax, byte [edx + 4]
test byte [eax + 0x4fdf06], 0xc
jne 0x48f3c2
movzx eax, byte [edx + 5]
test byte [eax + 0x4fdf06], 0xc
jne 0x48f3d1
movzx eax, byte [edx + 6]
test byte [eax + 0x4fdf06], 0xc
jne 0x48f3e8
movzx eax, byte [edx + 7]
test byte [eax + 0x4fdf06], 0xc
jne 0x48f3ff
movzx eax, byte [edx + 8]
test byte [eax + 0x4fdf06], 0xc
jne 0x48f412
movzx eax, byte [edx + 9]
test byte [eax + 0x4fdf06], 0xc
jne 0x48f425
movzx eax, byte [edx + 0xa]
test byte [eax + 0x4fdf06], 0xc
jne 0x48f440
movzx eax, byte [edx + 0xb]
test byte [eax + 0x4fdf06], 0xc
jne 0x48f458
movzx eax, byte [edx + 0xc]
test byte [eax + 0x4fdf06], 0xc
jne 0x48f46e
movzx eax, byte [edx + 0xd]
test byte [eax + 0x4fdf06], 0xc
jne 0x48f484
movzx eax, byte [edx + 0xe]
test byte [eax + 0x4fdf06], 0xc
jne 0x48f4a2
movzx eax, byte [edx + 0xf]
test byte [eax + 0x4fdf06], 0xc
movupd xmm0, xmmword [edx]
movupd xmmword [esi], xmm0
jne 0x48f4c0
add edx, 0x10
add esi, 0x10
jmp 0x48f280
movzx eax, word [edx]
add edx, 2
mov word [esi], ax
add esi, 2
jmp 0x48f4c6
mov eax, dword [edx]
add edx, 3
mov dword [esi], eax
add esi, 3
jmp 0x48f4c6
mov eax, dword [edx]
add edx, 4
mov dword [esi], eax
add esi, 4
jmp 0x48f4c6
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 0x48f4c8
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 0x48f4c8
movsd xmm0, qword [edx]
add edx, 7
movsd qword [esi], xmm0
add esi, 7
jmp 0x48f4c6
movsd xmm0, qword [edx]
add edx, 8
movsd qword [esi], xmm0
add esi, 8
jmp 0x48f4c6
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 0x48f4c8
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 0x48f4c8
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 0x48f4c8
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 0x48f4c8
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 0x48f4c8
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 0x48f4c8
add edx, 0xf
add esi, 0xf
mov ebx, edx
movzx edx, byte [ebx]
test dl, dl
jns 0x48f16a
mov eax, dword [ebx]
mov ecx, eax
and eax, 0xc0c0f0
mov edx, ebx
cmp eax, 0x8080e0
jne 0x48f51a
mov edi, esi
mov esi, ecx
and ecx, 0x200f
je 0x48f516
cmp ecx, 0x200d
je 0x48f516
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 0x48f4e5
jmp 0x48f51a
mov ecx, esi
mov esi, edi
test cl, cl
jns 0x48f280
mov edi, esi
mov eax, ecx
and eax, 0xc0e0
cmp eax, 0x80c0
jne 0x48f55e
mov eax, ecx
and eax, 0x1e
mov esi, ecx
je 0x48f560
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 0x48f560
mov eax, esi
and eax, 0x1e
jne 0x48f53b
jmp 0x48f560
mov esi, ecx
mov eax, esi
and eax, 0xc0c0c0f8
cmp eax, 0x808080f0
jne 0x48f274
mov ecx, esi
mov eax, esi
and eax, 0x3007
mov esi, edi
je 0x48f276
test cl, 4
mov eax, ecx
je 0x48f599
mov ecx, eax
and eax, 0x3003
mov eax, ecx
jne 0x48f276
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 0x48f276
mov eax, ecx
and eax, 0x3007
jne 0x48f583
jmp 0x48f276
cmp byte [esp + 0x98], 0
je 0x49099c
mov edx, ebx
movzx eax, word [edx]
mov word [esi], ax
inc edx
inc esi
jmp 0x48f4c6
mov ecx, esi
movzx eax, dl
cmp eax, 0x22
je 0x48f95e
cmp byte [esp + 0x98], 0
je 0x490fc0
cmp ebx, dword [esp + 0x84]
jae 0x490fd5
inc ebx
mov esi, ecx
mov byte [ecx], dl
inc esi
jmp 0x48f24c
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x490fea
movzx eax, word [edx]
cmp eax, 0x755c
jne 0x490fff
movzx eax, byte [ebx + 8]
movzx eax, byte [eax + 0x4fe17d]
mov dword [esp + 0x24], eax
movzx eax, byte [ebx + 9]
movzx edi, byte [eax + 0x4fe17d]
movzx eax, byte [ebx + 0xa]
movzx eax, byte [eax + 0x4fe17d]
mov dword [esp + 0x18], eax
movzx eax, byte [ebx + 0xb]
movzx eax, byte [eax + 0x4fe17d]
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 0x491011
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 0x491023
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 0x48f24c
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 fcn.0049ea60
add esp, 0xc
mov ecx, eax
xor cl, 1
test al, al
cmovne ebx, esi
mov eax, 0x4fe006
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 0x498977
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 0x48da13
xor eax, eax
jmp 0x48ddec
lea eax, [esp + 0x64]
mov ecx, esp
mov edx, dword [esp + 0x20]
push eax
push edi
push dword [ebp + 0x10]
call fcn.0049ed80
add esp, 0xc
test al, al
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
jne 0x49aae4
jmp 0x48e445
cmp byte [esp + 0x24], 0x4e
jne case.0x4887b0.74
movzx eax, al
or eax, 0x20
cmp eax, 0x61
jne case.0x4887b0.74
movzx eax, byte [esi + 2]
or eax, 0x20
cmp eax, 0x6e
jne case.0x4887b0.74
lea eax, [esi + 3]
mov dword [esp], eax
cmp dword [esp + 0x20], 0
je 0x48f89a
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
test ecx, ecx
je 0x48f81e
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 0x48d4a6
cmp byte [esp + 0x10], 0x2d
jne 0x48f87a
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 0x48d4a6
mov eax, dword [ebp + 0x10]
test al, al
js 0x48fc62
test al, 0x10
jne 0x490f8d
mov dword [esp + 0x64], str.number_is_infinity_when_parsed_as_double
jmp 0x48e441
movapd xmm0, xmmword [0x4fddc0]
jmp 0x48f950
mov eax, 5
jmp 0x48d183
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 + 0x4ffa6c]
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0x4ffa68]
mov dword [esp + 0x60], eax
mov eax, dword [edi + 0x4ffa74]
mov dword [esp + 0x6c], eax
jmp 0x48e07e
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test eax, eax
je 0x48f93f
mov byte [eax], 0
mov edi, dword [esp + 0x18]
jmp 0x48fc73
movapd xmm0, xmmword [0x4fddd0]
mov eax, dword [esp + 0x28]
movupd xmmword [eax + 0x10], xmm0
jmp 0x48d4a6
mov eax, 5
mov esi, dword [esp + 0x10]
jmp 0x48d47c
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 0x4916f8
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 0x48e1e4
mov dword [esp + 0x10], esi
mov eax, dword [ebp + 0x10]
test al, al
js 0x4910b2
test al, 0x10
jne 0x4910f2
mov dword [esp + 0x64], str.number_is_infinity_when_parsed_as_double
mov eax, dword [esp + 0x10]
jmp 0x48ea77
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 fcn.0049efa0
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 0x48fce9
cmp eax, 0x13
jb 0x48fe79
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x18], ecx
jmp 0x48fadc
mov ecx, dword [esp + 0x44]
lea eax, [ecx - 0x13]
cmp ecx, 0x25
jle 0x48fe6e
mov dword [esp + 0x44], eax
cmp dword [esp + 0x18], 0
je 0x48fb02
xor edi, edi
mov eax, dword [esp + edi*8 + 0xc8]
or eax, dword [esp + edi*8 + 0xcc]
jne 0x48fb04
inc edi
cmp dword [esp + 0x18], edi
jne 0x48fae9
jmp 0x48facc
xor edi, edi
cmp edi, dword [esp + 0x18]
jae 0x48facc
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 0x48fb1a
mov eax, dword [esp + 0x14]
or eax, dword [esp + 0x34]
je 0x48facc
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 0x48facc
xor ecx, ecx
mov dword [esp + 0x58], 0
cmp eax, 0xfffffb8f
jb 0x48e33b
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 0x48e33b
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test eax, eax
je 0x48fc6f
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 0x48d4a6
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
test ecx, ecx
je 0x48fc77
mov byte [ecx], 0
jmp 0x48fc77
mov dword [esp + 0x64], str.invalid_escaped_sequence_in_string
mov dword [esp + 0x68], str.invalid_escaped_sequence_in_string
jmp 0x48f721
mov eax, dword [ebp + 0x10]
test al, 4
jne 0x491175
cmp byte [edi], 0x2c
je 0x491771
mov dword [esp], esi
cmp byte [esi], 0x2c
lea esi, [esi - 1]
jne 0x48fcd9
jmp 0x49176e
neg eax
mov dword [esp + 0x50], 1
cmp eax, 0x13
jb 0x48ffed
mov dword [esp + 0x50], 1
mov dword [esp + 0x18], 1
jmp 0x48fd1e
mov ecx, dword [esp + 0x44]
lea eax, [ecx - 0x13]
cmp ecx, 0x25
jle 0x48ffd2
mov dword [esp + 0x44], eax
cmp dword [esp + 0x18], 0
je 0x48fd44
xor edi, edi
mov eax, dword [esp + edi*8 + 0x2d0]
or eax, dword [esp + edi*8 + 0x2d4]
jne 0x48fd46
inc edi
cmp dword [esp + 0x18], edi
jne 0x48fd2b
jmp 0x48fd0e
xor edi, edi
cmp edi, dword [esp + 0x18]
jae 0x48fd0e
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 0x48fd5c
mov eax, dword [esp + 0x14]
or eax, dword [esp + 0x34]
je 0x48fd0e
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 0x48fd0e
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x44], 1
test eax, eax
je 0x49011d
mov ecx, dword [eax*8 + 0x500ebc]
mov dword [esp + 0x5c], ecx
mov eax, dword [eax*8 + 0x500eb8]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xc0]
xor edi, edi
mov dword [esp + 0x34], eax
test eax, eax
je 0x48fece
xor edi, edi
mov eax, dword [esp + edi*8 + 0xc8]
or eax, dword [esp + edi*8 + 0xcc]
jne 0x48fece
inc edi
cmp dword [esp + 0x34], edi
jne 0x48feb2
jmp 0x49011d
cmp edi, dword [esp + 0x34]
jae 0x49011d
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 0x48fee8
mov eax, dword [esp + 0xc]
or eax, dword [esp + 0x18]
je 0x49011d
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 0x49011d
test eax, eax
je 0x490115
mov dword [esp + 0x44], 0
cmp dword [esp + 0x50], 0
je 0x49011d
mov ecx, dword [eax*8 + 0x500ebc]
mov dword [esp + 0x30], ecx
mov eax, dword [eax*8 + 0x500eb8]
mov dword [esp + 0x40], eax
xor edi, edi
mov eax, dword [esp + edi*8 + 0x2d0]
or eax, dword [esp + edi*8 + 0x2d4]
jne 0x490021
inc edi
cmp dword [esp + 0x50], edi
jne 0x490005
jmp 0x490115
cmp edi, dword [esp + 0x50]
jae 0x490115
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 0x49003b
mov eax, dword [esp + 0xc]
or eax, dword [esp + 0x18]
je 0x490115
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 0x49011d
mov eax, dword [esp + 0x50]
mov dword [esp + 0x44], eax
cmp dword [esp + 0x6c], 0
jle 0x49038d
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 0x491125
mov eax, dword [esp + 0x44]
mov dword [esp + eax*8 + 0x2d4], 0
mov dword [esp + eax*8 + 0x2d0], 0
test eax, eax
je 0x490328
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 0x4906d6
mov eax, dword [esp + 0x18]
mov esi, eax
test al, 1
je 0x4901f8
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 0x490328
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 0x490217
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 0x49060a
jmp 0x490620
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 0x49117e
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 0x4905ab
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 0x490844
mov eax, dword [esp + 0x18]
mov esi, eax
test al, 1
je 0x49047b
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 0x4905ab
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 0x49049a
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 0x490620
mov eax, dword [esp + 0x50]
shl eax, 3
push eax
push 0
push dword [esp + 0x78]
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x18], 0
mov eax, 0
cmp ecx, dword [esp + 0x44]
jb 0x490684
mov al, 1
ja 0x490684
mov edx, ecx
sub edx, 1
jb 0x490830
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 0x490640
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 0x49106f
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 0x48e39e
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 0x490182
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 0x490182
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 0x490182
mov eax, dword [esp + 0x44]
lea edx, [eax - 1]
mov dword [esp + 0x18], eax
cmp edx, 0x1fffffff
ja 0x490182
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 0x490182
add ecx, 0xfffffff8
mov eax, dword [esp + 0x44]
mov dword [esp + 0x18], eax
cmp ecx, 0x20
jb 0x490182
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 0x4907c2
cmp dword [esp + 0x44], ebx
jne 0x490182
jmp 0x490328
mov ecx, dword [esp + 0x60]
and ecx, 1
mov dword [esp + 0x18], 0
jmp 0x490687
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 0x490405
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 0x490405
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 0x490405
mov edi, dword [esp + 0x7c]
lea edx, [edi - 1]
mov dword [esp + 0x18], edi
cmp edx, 0x1fffffff
ja 0x490405
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 0x490405
add ecx, 0xfffffff8
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x18], edx
cmp ecx, 0x20
jb 0x490405
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 0x49092e
cmp dword [esp + 0x7c], esi
jne 0x490405
jmp 0x4905ab
mov dword [esp + 0x64], str.invalid_UTF_8_encoding_in_string
mov dword [esp + 0x68], str.invalid_UTF_8_encoding_in_string
jmp 0x48f721
mov edi, eax
mov eax, dword [ebp + 0x10]
test al, 0x10
jne 0x49148d
mov dword [esp + 0x64], str.no_digit_after_minus_sign
jmp 0x48fa06
cmp al, 0x2e
jne 0x49157e
mov eax, dword [esp + 0x10]
movzx ecx, byte [eax + 2]
test byte [ecx + 0x4fe3f8], 3
je 0x49104e
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 0x4909f0
mov edi, eax
movzx ecx, byte [eax + 0x4fe3f8]
test cl, 3
je 0x49157a
add edi, 0xffffffd0
mov dword [esp + 0xc], edi
mov ecx, edi
sar ecx, 0x1f
dec dword [esp + 0x10]
mov eax, ebx
jmp 0x490a5a
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 0x48dc84
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 0x491062
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 0x491062
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 0x491062
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 0x491062
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 0x491062
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 0x491062
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 0x491062
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 0x491062
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 0x491062
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 0x491062
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 0x491062
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 0x491062
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 0x491062
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 0x491062
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 0x491062
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 0x491062
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 0x491062
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 0x49128c
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 + 0x4fe3f8], 3
mov dword [esp + 0x30], ecx
mov dword [esp + 0x18], edi
jne 0x48db58
mov eax, dword [esp + 0x18]
inc eax
cmp eax, dword [esp + 0x30]
je 0x49103d
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 + 0x4fe3f8], 0x20
jne 0x491447
mov dword [esp + 0x4c], 0
cmp eax, 0x159
jge 0x491458
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 0x48dd69
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 0x490e89
jmp 0x48dc84
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 0x48f86e
mov dword [esp + 0x64], str.unexpected_control_character_in_string
mov dword [esp + 0x68], str.unexpected_control_character_in_string
jmp 0x48f721
mov dword [esp + 0x64], str.unclosed_string
mov dword [esp + 0x68], str.unclosed_string
jmp 0x48f721
mov dword [esp + 0x64], str.invalid_high_surrogate_in_string
mov dword [esp + 0x68], str.invalid_high_surrogate_in_string
jmp 0x48f721
mov dword [esp + 0x64], str.no_low_surrogate_in_string
mov dword [esp + 0x68], str.no_low_surrogate_in_string
jmp 0x491033
mov dword [esp + 0x64], str.invalid_escaped_sequence_in_string
mov dword [esp + 0x68], str.invalid_escaped_sequence_in_string
jmp 0x491033
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 0x48f724
mov dword [esp + 0x64], str.no_digit_after_decimal_point
mov eax, dword [esp + 0x30]
jmp 0x48ea77
mov eax, dword [esp + 0x10]
add eax, 2
mov dword [esp + 0x64], str.no_digit_after_decimal_point
jmp 0x48ea77
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], edi
jmp 0x490eec
mov eax, dword [ebp + 0x10]
test al, al
js 0x4910b2
test al, 0x10
je 0x48f9fe
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 0x4906c9
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test eax, eax
je 0x4910bf
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 0x4906c9
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 0x4906c9
cmp dword [esp + 0x44], 0
je 0x4912f0
mov ecx, dword [esp + 0x44]
mov eax, ecx
cmp ecx, 0x20
jae 0x4911ce
lea esi, [eax - 1]
mov edi, eax
and edi, 3
je 0x491299
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 0x49115a
jmp 0x49129b
mov edx, dword [esp + 0x10]
jmp 0x49abd1
cmp dword [esp + 0x7c], 0
je 0x49141d
mov ecx, dword [esp + 0x7c]
mov eax, ecx
cmp ecx, 0x20
jae 0x491308
lea esi, [eax - 1]
mov edi, eax
and edi, 3
je 0x4913c6
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 0x4911b3
jmp 0x4913c8
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 0x49113f
mov eax, dword [esp + 0x44]
lea edx, [esp + eax*8]
add edx, 0x2c8
mov ebx, edx
sub ebx, edi
cmp ebx, edx
ja 0x49113f
mov eax, dword [esp + 0x44]
lea edi, [eax - 1]
cmp edi, 0x1fffffff
ja 0x49113f
sub edx, ecx
mov eax, dword [esp + 0x44]
cmp edx, 0x20
jb 0x49113f
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 0x491263
cmp dword [esp + 0x44], esi
jne 0x49113f
jmp 0x4912f0
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], ebx
jmp 0x490eec
mov ecx, eax
cmp esi, 3
jb 0x4912f0
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 0x4912ae
mov eax, dword [esp + 0x50]
add dword [esp + 0x44], eax
cmp dword [esp + 0x6c], 0x40
jae 0x49060a
jmp 0x490620
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 0x491198
mov eax, dword [esp + 0x7c]
lea edx, [esp + eax*8]
add edx, 0xc0
mov ebx, edx
sub ebx, edi
cmp ebx, edx
ja 0x491198
mov eax, dword [esp + 0x7c]
lea edi, [eax - 1]
cmp edi, 0x1fffffff
ja 0x491198
sub edx, ecx
mov eax, dword [esp + 0x7c]
cmp edx, 0x20
jb 0x491198
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 0x49139d
cmp dword [esp + 0x7c], esi
jne 0x491198
jmp 0x49141d
mov ecx, eax
cmp esi, 3
jb 0x49141d
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 0x4913db
mov eax, dword [esp + 0x7c]
add eax, dword [esp + 0x50]
mov dword [esp + 0xc0], eax
cmp dword [esp + 0x6c], 0x40
jb 0x490620
lea eax, [esp + 0xc8]
mov dword [esp + 0x70], eax
jmp 0x49060a
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x14], edx
jmp 0x48dc84
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 0x48d4a6
xor ecx, ecx
cmp byte [esp + 0x24], 0x2d
sete al
lea edx, [edi - 0x49]
cmp edx, 0x25
ja case.0x4914ab.74
mov cl, al
mov eax, dword [esp + 0x10]
sub eax, ecx
jmp dword [edx*4 + 0x501744]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 1]
or ecx, 0x20
cmp ecx, 0x6e
jne 0x4915c1
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 2]
or ecx, 0x20
cmp ecx, 0x66
jne 0x4915c1
mov edx, dword [esp + 0x10]
lea ecx, [edx + 3]
movzx edx, byte [edx + 3]
or edx, 0x20
cmp edx, 0x69
jne 0x491534
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 4]
or edx, 0x20
cmp edx, 0x6e
jne 0x491534
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 5]
or edx, 0x20
cmp edx, 0x69
jne 0x491534
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 6]
or edx, 0x20
cmp edx, 0x74
jne 0x491534
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + 7]
or edx, 0x20
cmp edx, 0x79
jne 0x491534
mov ecx, dword [esp + 0x10]
add ecx, 8
cmp byte [esp + 0x80], 0
je 0x49167d
mov edx, dword [esp + 0x20]
mov edx, dword [edx]
test edx, edx
je 0x49154f
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 0x4916ab
mov ebx, dword [esp + 0x10]
test cl, 3
jne 0x4915b3
test cl, 0x20
jne 0x4916b3
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 0x48eac9
mov dword [esp + 0x64], str.number_with_leading_zero_is_not_allowed
dec ebx
jmp 0x4916f0
cmp edi, 0x4e
jne case.0x4914ab.74
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 1]
or ecx, 0x20
cmp ecx, 0x61
jne case.0x4914ab.74
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + 2]
or ecx, 0x20
cmp ecx, 0x6e
jne case.0x4914ab.74
add dword [esp + 0x10], 3
cmp byte [esp + 0x80], 0
je 0x491643
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
test ecx, ecx
je 0x49160e
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 0x48d4a6
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 0x48d4a6
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 0x48d4a6
movzx eax, byte [ebx + 1]
movzx eax, byte [eax + 0x4fe3f8]
and al, 0xc
cmp al, 1
sbb ebx, 0
movzx eax, byte [ebx + 2]
add ebx, 2
test byte [eax + 0x4fe3f8], 3
je 0x4916e8
movzx eax, byte [ebx + 1]
inc ebx
test byte [eax + 0x4fe3f8], 3
jne 0x4916d5
jmp 0x49158c
mov dword [esp + 0x64], str.no_digit_after_exponent_sign
mov dword [esp], ebx
jmp 0x48e441
mov ebx, dword [esp + 0x2c]
mov eax, edx
jmp 0x48e1e4
mov esi, dword [esp]
movzx eax, word [esi]
cmp eax, 0x2a2f
mov eax, dword [ebp + 0x10]
jne 0x4967c2
mov edi, dword [esp + 0x88]
mov ecx, edi
mov edx, esi
push eax
push 8
mov ebx, dword [esp + 0x8c]
push ebx
call fcn.0049ea60
add esp, 0xc
mov ecx, eax
xor cl, 1
test al, al
cmovne esi, ebx
mov eax, 0x4fe006
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 0x496810
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 fcn.0049ea60
add esp, 0xc
mov ecx, eax
xor cl, 1
test al, al
cmovne edi, ebx
mov eax, 0x4fe006
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 0x496810
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 fcn.0049ea60
add esp, 0xc
test al, al
cmovne esi, ebx
mov ecx, 5
mov eax, 0xb
cmovne eax, ecx
mov ecx, 0x4fe006
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 0x49681c
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 0x4918a3
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 0x491899
inc esi
mov dword [esp], esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], edi
jmp 0x491918
mov dword [esp + 8], edx
mov eax, dword [esp + 0x2c]
mov edi, eax
shr edi, 1
add edi, eax
cmp edi, 0xffffffe
ja 0x489a19
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 0x489a19
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 0x491872
mov edi, esp
mov dword [esp + 8], edx
mov dword [esp + 0x74], eax
movzx ecx, word [esi]
cmp ecx, 0x2020
jne 0x491a92
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 0x491a90
lea eax, [esi - 0xc]
mov dword [esp], eax
movzx ecx, word [esi - 0xc]
cmp ecx, 0x2020
jne 0x491a90
lea eax, [esi - 0xa]
mov dword [esp], eax
movzx ecx, word [esi - 0xa]
cmp ecx, 0x2020
jne 0x491a90
lea eax, [esi - 8]
mov dword [esp], eax
movzx ecx, word [esi - 8]
cmp ecx, 0x2020
jne 0x491a90
lea eax, [esi - 6]
mov dword [esp], eax
movzx ecx, word [esi - 6]
cmp ecx, 0x2020
jne 0x491a90
lea eax, [esi - 4]
mov dword [esp], eax
movzx ecx, word [esi - 4]
cmp ecx, 0x2020
jne 0x491a90
lea eax, [esi - 2]
mov dword [esp], eax
movzx ecx, word [esi - 2]
cmp ecx, 0x2020
jne 0x491a90
mov dword [esp], esi
movzx ecx, word [esi]
cmp ecx, 0x2020
jne 0x491a92
lea eax, [esi + 2]
mov dword [esp], eax
movzx ecx, word [esi + 2]
cmp ecx, 0x2020
jne 0x491a90
lea eax, [esi + 4]
mov dword [esp], eax
movzx ecx, word [esi + 4]
cmp ecx, 0x2020
jne 0x491a90
lea eax, [esi + 6]
mov dword [esp], eax
movzx ecx, word [esi + 6]
cmp ecx, 0x2020
jne 0x491a90
lea eax, [esi + 8]
mov dword [esp], eax
movzx ecx, word [esi + 8]
cmp ecx, 0x2020
jne 0x491a90
lea eax, [esi + 0xa]
mov dword [esp], eax
movzx ecx, word [esi + 0xa]
cmp ecx, 0x2020
jne 0x491a90
lea eax, [esi + 0xc]
mov dword [esp], eax
movzx ecx, word [esi + 0xc]
cmp ecx, 0x2020
jne 0x491a90
lea eax, [esi + 0xe]
mov dword [esp], eax
movzx ecx, word [esi + 0xe]
cmp ecx, 0x2020
jne 0x491a90
lea eax, [esi + 0x10]
mov dword [esp], eax
movzx ecx, word [esi + 0x10]
add esi, 0x20
cmp ecx, 0x2020
je 0x491940
add esi, 0xfffffff0
jmp 0x491a92
mov esi, eax
cmp cl, 0x5b
je 0x491c17
movzx eax, cl
cmp eax, 0x7b
je 0x491c28
movzx eax, cl
movzx edx, byte [eax + 0x4fdf06]
test dl, 2
jne 0x491ca5
movzx eax, cl
lea ebx, [eax - 0x5d]
cmp ebx, 0x17
ja case.default.0x491ac5
jmp dword [ebx*4 + 0x5013ac]
cmp eax, 0x22
je 0x4920de
test dl, 1
jne 0x491b06
mov edx, dword [ebp + 0x10]
test dl, 0x10
jne 0x491b2a
test dl, 8
je 0x491c10
mov ecx, edi
call fcn.0049ac40
mov esi, dword [esp]
test al, al
mov edx, dword [esp + 8]
jne 0x491922
jmp 0x491706
inc esi
nop word [eax + eax]
mov dword [esp], esi
movzx eax, byte [esi]
inc esi
test byte [eax + 0x4fdf06], 1
jne 0x491b10
dec esi
mov edx, dword [esp + 8]
jmp 0x491922
cmp cl, 0x49
je 0x491b39
cmp eax, 0x69
je 0x491b39
cmp eax, 0x4e
jne 0x491ae2
mov eax, dword [esp + 0x10]
add eax, 0x10
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x80]
jae 0x494ef0
movzx eax, cl
add eax, 0xffffffb7
cmp eax, 0x25
ja case.0x4887b0.74
inc dword [esp + 0x54]
jmp dword [eax*4 + 0x50155c]
movzx eax, byte [esi + 1]
or eax, 0x20
cmp eax, 0x6e
jne 0x493412
movzx eax, byte [esi + 2]
or eax, 0x20
cmp eax, 0x66
jne 0x493412
lea eax, [esi + 3]
movzx ecx, byte [esi + 3]
or ecx, 0x20
cmp ecx, 0x69
jne 0x491bcd
movzx ecx, byte [esi + 4]
or ecx, 0x20
cmp ecx, 0x6e
jne 0x491bcd
movzx ecx, byte [esi + 5]
or ecx, 0x20
cmp ecx, 0x69
jne 0x491bcd
movzx ecx, byte [esi + 6]
or ecx, 0x20
cmp ecx, 0x74
jne 0x491bcd
movzx ecx, byte [esi + 7]
or ecx, 0x20
cmp ecx, 0x79
jne 0x491bcd
lea eax, [esi + 8]
mov dword [esp], eax
cmp dword [esp + 0x28], 0
je 0x493855
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
test ecx, ecx
je 0x491be8
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 0x4929af
mov eax, edx
jmp 0x4967c2
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], eax
mov edi, dword [esp + 0x54]
jmp 0x491839
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 0x4929fb
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 0x491c98
inc esi
mov dword [esp], esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], edi
jmp 0x495f51
mov eax, dword [esp + 0x10]
add eax, 0x10
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x80]
jae 0x492a70
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 0x493328
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 + 0x4fe3f8], 2
mov dword [esp + 0x20], edx
je 0x492af7
add eax, 0xffffffd0
movzx ecx, byte [edx + 1]
lea edi, [ecx - 0x30]
cmp edi, 9
ja 0x492b50
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 0x492baa
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 0x492bf6
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 0x492c42
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 0x492c8e
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 0x492cda
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 0x492d26
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 0x492d72
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 0x492dbe
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 0x492e0a
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 0x492e56
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 0x492ea2
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 0x492eee
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 0x492f3a
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 0x492f86
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 0x492fd2
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 0x49301e
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 0x493066
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 + 0x4fe3f8]
test al, 0x33
je 0x49235c
mov dword [esp + 0x34], ecx
test al, 3
je 0x491f9f
movzx ecx, byte [edx + 0x14]
test byte [ecx + 0x4fe3f8], 0x33
je 0x492424
xor edi, edi
test al, 0x20
jne 0x4923c7
mov dword [esp + 0x18], 0
cmp byte [esp + 0x34], 0x2e
jne 0x4924e7
movzx ecx, byte [edx + 0x14]
add edx, 0x14
mov eax, edx
test byte [ecx + 0x4fe3f8], 3
je 0x495bfc
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x18], ecx
jmp 0x4924eb
mov eax, dword [esp + 0x10]
add eax, 0x10
cmp eax, dword [esp + 0x80]
jae 0x4930c6
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 8]
cmp dword [esi], 0x65757274
jne 0x493289
inc dword [esp + 0x54]
mov dword [eax + 4], 0
mov dword [esp + 0x10], eax
mov dword [eax], 0xb
add esi, 4
jmp 0x4920d2
mov eax, dword [esp + 0x10]
add eax, 0x10
cmp eax, dword [esp + 0x80]
mov dword [esp + 0x10], eax
jae 0x493155
mov edx, dword [esp + 8]
inc dword [esp + 0x54]
mov eax, dword [esi]
cmp eax, 0x6c6c756e
jne 0x493292
mov eax, dword [esp + 0x10]
mov dword [eax + 4], 0
mov dword [eax], 2
add esi, 4
mov dword [esp], esi
jmp 0x495c7f
lea edi, [esi + 1]
mov dword [esp], edi
cmp dword [esp + 0x54], 0
jne 0x4931da
xor ebx, ebx
mov edx, dword [esp + 8]
mov esi, dword [esp + 0x74]
jmp 0x495d0e
mov eax, dword [esp + 0x10]
add eax, 0x10
cmp eax, dword [esp + 0x80]
jae 0x4931fe
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 8]
cmp dword [esi + 1], 0x65736c61
jne 0x493289
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 0x495c7f
mov eax, dword [esp + 0x10]
add eax, 0x10
cmp eax, dword [esp + 0x80]
mov dword [esp + 0x10], eax
jae 0x493353
inc dword [esp + 0x54]
inc esi
mov eax, esi
mov ebx, 0xd
movzx edx, byte [eax]
test byte [edx + 0x4fdf06], 0xc
jne 0x4922b4
add eax, 8
mov edi, eax
nop word [eax + eax]
movzx edx, byte [edi - 7]
test byte [edx + 0x4fdf06], 0xc
jne 0x49221f
movzx edx, byte [edi - 6]
test byte [edx + 0x4fdf06], 0xc
jne 0x492224
movzx edx, byte [edi - 5]
test byte [edx + 0x4fdf06], 0xc
jne 0x492229
movzx edx, byte [edi - 4]
test byte [edx + 0x4fdf06], 0xc
jne 0x49222e
movzx edx, byte [edi - 3]
test byte [edx + 0x4fdf06], 0xc
jne 0x492233
movzx edx, byte [edi - 2]
test byte [edx + 0x4fdf06], 0xc
jne 0x492238
movzx edx, byte [edi - 1]
test byte [edx + 0x4fdf06], 0xc
jne 0x49223d
movzx edx, byte [edi]
test byte [edx + 0x4fdf06], 0xc
jne 0x49225f
movzx edx, byte [edi + 1]
test byte [edx + 0x4fdf06], 0xc
jne 0x492240
movzx edx, byte [edi + 2]
test byte [edx + 0x4fdf06], 0xc
jne 0x492243
movzx edx, byte [edi + 3]
test byte [edx + 0x4fdf06], 0xc
jne 0x492248
movzx edx, byte [edi + 4]
test byte [edx + 0x4fdf06], 0xc
jne 0x49224d
movzx edx, byte [edi + 5]
test byte [edx + 0x4fdf06], 0xc
jne 0x492252
movzx edx, byte [edi + 6]
test byte [edx + 0x4fdf06], 0xc
jne 0x492257
movzx edx, byte [edi + 7]
test byte [edx + 0x4fdf06], 0xc
jne 0x49225c
movzx edx, byte [edi + 8]
add edi, 0x10
test byte [edx + 0x4fdf06], 0xc
je 0x492120
add edi, 0xfffffff8
jmp 0x49225f
add edi, 0xfffffff9
jmp 0x49225f
add edi, 0xfffffffa
jmp 0x49225f
add edi, 0xfffffffb
jmp 0x49225f
add edi, 0xfffffffc
jmp 0x49225f
add edi, 0xfffffffd
jmp 0x49225f
add edi, 0xfffffffe
jmp 0x49225f
dec edi
jmp 0x49225f
inc edi
jmp 0x49225f
add edi, 2
jmp 0x49225f
add edi, 3
jmp 0x49225f
add edi, 4
jmp 0x49225f
add edi, 5
jmp 0x49225f
add edi, 6
jmp 0x49225f
add edi, 7
mov dword [esp + 0x20], 0
cmp dl, 0x22
je 0x49232c
test dl, dl
jns 0x493f2f
mov ecx, dword [edi]
mov eax, ecx
and eax, 0xc0c0f0
cmp eax, 0x8080e0
jne 0x4922b8
mov eax, edi
mov edx, ecx
and edx, 0x200f
je 0x4922ba
cmp edx, 0x200d
je 0x4922ba
mov ecx, dword [eax + 3]
add eax, 3
mov edx, ecx
and edx, 0xc0c0f0
cmp edx, 0x8080e0
je 0x49228a
jmp 0x4922ba
mov edi, eax
jmp 0x49225f
mov eax, edi
test cl, cl
jns 0x492102
mov edx, ecx
and edx, 0xc0e0
cmp edx, 0x80c0
jne 0x4922e7
mov edx, ecx
and edx, 0x1e
je 0x4922e7
mov ecx, dword [eax + 2]
add eax, 2
jmp 0x4922c2
mov ecx, dword [eax + 4]
add eax, 4
mov edx, ecx
and edx, 0xc0c0c0f8
cmp edx, 0x808080f0
jne 0x49230e
mov edx, ecx
and edx, 0x3007
je 0x49230e
test cl, 4
je 0x4922e1
and ecx, 0x3003
je 0x4922e1
cmp edi, eax
jne 0x492102
cmp byte [esp + 0x98], 0
je 0x495eb2
inc edi
mov eax, edi
jmp 0x492102
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 0x4929af
cmp byte [esp + 0x24], 0x2d
mov edx, dword [esp + 0x1c]
jne 0x4923e4
mov eax, 0x80000000
mov ecx, edx
neg ecx
sbb eax, ebx
jae 0x4923e4
mov eax, dword [ebp + 0x10]
test al, al
js 0x49381a
mov eax, dword [esp + 0x10]
mov dword [eax + 4], 0
movd xmm0, edx
movd xmm1, ebx
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x4fdd90]
subpd xmm0, xmmword [0x4fdda0]
mov dword [eax], 0x14
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
xorpd xmm1, xmmword [0x4fddb0]
movlpd qword [eax + 8], xmm1
jmp 0x492418
mov eax, dword [esp + 4]
xor ecx, ecx
mov dword [esp + 0x58], 0
mov dword [esp + 0x14], 0
mov edx, ebx
jmp 0x49260c
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 0x4929af
add edi, 0xffffffd0
cmp dword [esp + 0x1c], 0x99999999
mov ecx, ebx
sbb ecx, 0x19999999
lea ecx, [edx + 0x14]
jb 0x492469
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 0x491f9f
cmp edi, 5
ja 0x491f9f
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 0x492584
mov ebx, dword [ebp + 0x10]
test bl, bl
js 0x493ba0
mov esi, dword [esp + 0x10]
mov dword [esi + 4], 0
movd xmm0, eax
movd xmm1, edx
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x4fdd90]
subpd xmm0, xmmword [0x4fdda0]
mov dword [esi], 0x14
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
xorpd xmm1, xmmword [0x4fddb0]
movlpd qword [esi + 8], xmm1
mov dword [esp], ecx
jmp 0x4929af
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 + 0x4fe3f8]
inc ecx
inc eax
test dl, 3
jne 0x4924f8
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 0x492541
mov ebx, dword [esp + 4]
mov dword [esp + 4], edi
jmp 0x4925a7
mov edx, dword [ebp + 0x10]
test dl, dl
jns 0x492555
mov dh, byte [esp + 0x38]
and dh, 0x30
je 0x493bd2
cmp bl, 0x2e
jne 0x4925a3
movzx eax, byte [ecx]
test byte [eax + 0x4fe3f8], 3
mov ebx, dword [esp + 4]
je 0x495c09
movzx eax, byte [ebx + 1]
inc ebx
movzx eax, byte [eax + 0x4fe3f8]
test al, 3
jne 0x49256e
mov byte [esp + 0x38], al
jmp 0x4925a7
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 0x4929af
mov ebx, dword [esp + 4]
lea eax, [ebx - 1]
jmp 0x4925ad
dec eax
movzx ecx, byte [eax]
cmp ecx, 0x30
je 0x4925ac
cmp ecx, 0x2e
je 0x4925ac
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 0x4926c6
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 + 0x4fe3f8], 0xc
setne al
movzx ecx, byte [edi + eax + 1]
test byte [ecx + 0x4fe3f8], 3
je 0x497cb9
mov ebx, edx
add edi, eax
mov ecx, edi
movzx edx, byte [ecx + 1]
inc ecx
inc edi
cmp edx, 0x30
je 0x492642
mov dword [esp + 0x18], edi
mov dword [esp + 0xc], ebx
xor eax, eax
test byte [edx + 0x4fe3f8], 3
je 0x49268e
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 + 0x4fe3f8], 3
mov ecx, ebx
jne 0x492664
jmp 0x492692
mov ebx, ecx
xor edi, edi
mov ecx, ebx
sub ecx, dword [esp + 0x18]
cmp ecx, 0x13
jge 0x4933da
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 0x4933e5
cmp edi, 0x135
sbb ecx, 0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
jge 0x4932d7
mov dword [esp + 0x9c], edi
test edx, 0xffe00000
jne 0x49274c
cmp edi, 0xffffffea
jl 0x49274c
cmp edi, 0x16
jg 0x49274c
movd xmm1, ecx
movd xmm0, edx
punpckldq xmm1, xmm0
punpckldq xmm1, xmmword [0x4fdd90]
subpd xmm1, xmmword [0x4fdda0]
movapd xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm0, xmm1
test edi, edi
mov edx, dword [esp + 8]
js 0x4929b8
mulsd xmm0, qword [edi*8 + 0x4fe340]
jmp 0x4929ca
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 0x493321
test al, al
mov ecx, dword [esp + 0x1c]
je 0x493481
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 + 0x4ffa68]
mov dword [esp + 0x3c], eax
mul edi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x60], edx
mov eax, dword [ecx + 0x4ffa6c]
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 0x492862
mov esi, dword [esp + 0x40]
jmp 0x49292e
mov dword [esp + 0xa0], edx
mov dword [esp + 0x5c], ebx
mov eax, dword [esp + 0x20]
add eax, eax
mov ebx, dword [eax*8 + 0x4ffa74]
mov dword [esp + 0x30], ebx
mov eax, dword [eax*8 + 0x4ffa70]
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 0x4934f6
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 0x495c7f
shl edi, 3
mov eax, 0x4fe340
sub eax, edi
divsd xmm0, qword [eax]
mov eax, dword [esp + 0x10]
mov dword [eax + 4], 0
mov dword [eax], 0x14
movapd xmm1, xmmword [0x4fddb0]
xorpd xmm1, xmm0
cmp byte [esp + 0x24], 0x2d
je 0x4929ee
movapd xmm1, xmm0
movsd qword [eax + 8], xmm1
mov dword [esp], ebx
jmp 0x495c7f
mov dword [esp + 8], edx
mov eax, dword [esp + 0x2c]
mov edi, eax
shr edi, 1
add edi, eax
cmp edi, 0xffffffe
ja 0x489a19
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 0x489a19
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 0x491c71
mov eax, dword [esp + 0x2c]
mov edi, eax
shr edi, 1
add edi, eax
cmp edi, 0xffffffe
ja 0x489a19
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 0x489a19
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 0x491cbd
cmp eax, 0x30
jne 0x494f6d
mov ecx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [esp + 0x18], eax
movzx edx, byte [ecx + 1]
movzx ecx, byte [edx + 0x4fe3f8]
test cl, 0x33
jne 0x494f8e
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 0x4930ba
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x18], eax
test byte [ecx + 0x4fe3f8], 0x30
jne 0x494fee
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 0x4930ba
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 2
mov dword [esp + 0x18], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x493084
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 0x495058
jmp 0x49260c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 3
mov dword [esp + 0x18], eax
test byte [ecx + 0x4fe3f8], 0x30
je 0x493084
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 0x495097
jmp 0x49260c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 4
mov dword [esp + 0x18], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x493084
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 0x4950d6
jmp 0x49260c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 5
mov dword [esp + 0x18], eax
test byte [ecx + 0x4fe3f8], 0x30
je 0x493084
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 0x495115
jmp 0x49260c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 6
mov dword [esp + 0x18], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x493084
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 0x495154
jmp 0x49260c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 7
mov dword [esp + 0x18], eax
test byte [ecx + 0x4fe3f8], 0x30
je 0x493084
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 0x495193
jmp 0x49260c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 8
mov dword [esp + 0x18], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x493084
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 0x4951d2
jmp 0x49260c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 9
mov dword [esp + 0x18], eax
test byte [ecx + 0x4fe3f8], 0x30
je 0x493084
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 0x495211
jmp 0x49260c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 0xa
mov dword [esp + 0x18], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x493084
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 0x495250
jmp 0x49260c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 0xb
mov dword [esp + 0x18], eax
test byte [ecx + 0x4fe3f8], 0x30
je 0x493084
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 0x49528f
jmp 0x49260c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 0xc
mov dword [esp + 0x18], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x493084
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 0x4952ce
jmp 0x49260c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 0xd
mov dword [esp + 0x18], eax
test byte [ecx + 0x4fe3f8], 0x30
je 0x493084
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 0x49530d
jmp 0x49260c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 0xe
mov dword [esp + 0x18], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x493084
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 0x49534c
jmp 0x49260c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 0xf
mov dword [esp + 0x18], eax
test byte [ecx + 0x4fe3f8], 0x30
je 0x493084
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 0x49538b
jmp 0x49260c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 0x10
mov dword [esp + 0x18], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x493084
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 0x4953ca
jmp 0x49260c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 0x11
mov dword [esp + 0x18], eax
test byte [ecx + 0x4fe3f8], 0x30
je 0x493084
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 0x495409
jmp 0x49260c
mov dword [esp + 0x1c], eax
mov edi, ebx
mov eax, dword [esp + 0x20]
add eax, 0x12
mov dword [esp + 0x18], eax
test byte [edx + 0x4fe3f8], 0x30
jne 0x49551d
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 0x4929af
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2c]
mov edi, eax
shr edi, 1
add edi, eax
cmp edi, 0xffffffe
ja 0x489a19
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 0x489a19
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 0x49200b
jmp 0x493289
mov eax, dword [esp + 0x2c]
mov edi, eax
shr edi, 1
add edi, eax
cmp edi, 0xffffffe
ja 0x489a19
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 0x489a19
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 0x492044
mov eax, dword [ebp + 0x10]
test al, 4
jne 0x49554b
cmp byte [edi], 0x2c
je 0x491771
mov dword [esp], esi
cmp byte [esi], 0x2c
lea esi, [esi - 1]
jne 0x4931ee
jmp 0x49176e
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2c]
mov edi, eax
shr edi, 1
add edi, eax
cmp edi, 0xffffffe
ja 0x489a19
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 0x489a19
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 0x4920ba
mov dword [esp + 8], edx
jmp 0x4917cd
mov dword [esp + 8], edx
mov ecx, dword [ebp + 0x10]
test cl, 0x10
je 0x4917cd
movzx ecx, al
or ecx, 0x20
cmp ecx, 0x6e
jne 0x4917cd
movzx ecx, ah
or ecx, 0x20
cmp ecx, 0x61
jne 0x4917cd
shr eax, 0x10
movzx eax, al
or eax, 0x20
cmp eax, 0x6e
je 0x49343b
jmp 0x4917cd
mov edi, ebx
movzx ebx, byte [esp + 0x24]
mov eax, dword [ebp + 0x10]
test al, al
js 0x495554
test al, 0x10
je 0x498b26
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 0x492354
xor eax, eax
jmp 0x492776
lea eax, [esp + 0x64]
mov ecx, esp
mov edx, dword [esp + 0x28]
push eax
push dword [esp + 0x14]
push dword [ebp + 0x10]
call fcn.0049ed80
add esp, 0xc
test al, al
mov edx, dword [esp + 8]
jne 0x495c7f
jmp 0x495c18
mov eax, dword [esp + 0x2c]
mov edi, eax
shr edi, 1
add edi, eax
cmp edi, 0xffffffe
ja 0x489a19
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 0x489a19
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 0x4920f6
cmp byte [esp + 0x34], 0x2d
jne 0x4937d5
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 0x4929ac
cmp cl, 0x4e
jne case.0x4887b0.74
movzx eax, byte [esi + 1]
or eax, 0x20
cmp eax, 0x61
jne case.0x4887b0.74
movzx eax, byte [esi + 2]
or eax, 0x20
cmp eax, 0x6e
jne case.0x4887b0.74
lea eax, [esi + 3]
mov dword [esp], eax
cmp dword [esp + 0x28], 0
je 0x493474
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
test ecx, ecx
je 0x493455
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 0x4929af
movapd xmm0, xmmword [0x4fddc0]
jmp 0x49385d
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 + 0x4ffa6c]
mov dword [esp + 0x4c], eax
mov eax, dword [edi + 0x4ffa68]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x4ffa74]
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 0x49386a
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 0x49376e
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 0x4938dd
shrd ebx, eax, 0xb
shr eax, 0xb
cmp edx, 0xfffffbc2
jle 0x493b6b
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 0x4938dd
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 0x49379e
cmp ecx, dword [esp + 0x6c]
sbb eax, dword [esp + 0x70]
jb 0x493922
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 0x492354
mov eax, dword [ebp + 0x10]
test al, al
js 0x49556a
test al, 0x10
je 0x498b26
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 0x4929ac
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
test eax, eax
je 0x493827
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 0x492354
movapd xmm0, xmmword [0x4fddd0]
mov eax, dword [esp + 0x10]
movupd xmmword [eax], xmm0
jmp 0x4929af
lea eax, [ecx + 0x472]
cmp ecx, 0xfffffb8f
cmovb eax, edi
mov ebx, 0x40
sub ebx, eax
lea ecx, [eax - 0x44]
cmp ecx, 0xffffffbf
ja 0x49363a
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 0x49363a
mov eax, dword [ebp + 0x10]
test al, al
js 0x4955f0
test al, 0x10
je 0x498bfb
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 0x4937cc
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 fcn.0049efa0
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 0x493c0c
cmp eax, 0x13
jb 0x493dc2
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x14], ecx
jmp 0x4939f5
mov ecx, dword [esp + 0x44]
lea eax, [ecx - 0x13]
cmp ecx, 0x25
jle 0x493db7
mov dword [esp + 0x44], eax
cmp dword [esp + 0x14], 0
je 0x493a1b
xor ebx, ebx
mov eax, dword [esp + ebx*8 + 0xc8]
or eax, dword [esp + ebx*8 + 0xcc]
jne 0x493a1d
inc ebx
cmp dword [esp + 0x14], ebx
jne 0x493a02
jmp 0x4939e5
xor ebx, ebx
cmp ebx, dword [esp + 0x14]
jae 0x4939e5
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 0x493a33
mov eax, dword [esp + 0x38]
or eax, dword [esp + 0x4c]
je 0x4939e5
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 0x4939e5
xor ecx, ecx
mov dword [esp + 0x34], 0
cmp edx, 0xfffffb8f
jb 0x49376e
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 0x49376e
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
test eax, eax
je 0x493bad
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 0x493c02
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
test ecx, ecx
je 0x493bdf
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 0x4929af
neg eax
mov dword [esp + 0x50], 1
cmp eax, 0x13
jb 0x4944d2
mov dword [esp + 0x50], 1
mov dword [esp + 0x14], 1
jmp 0x493c41
mov ecx, dword [esp + 0x44]
lea eax, [ecx - 0x13]
cmp ecx, 0x25
jle 0x4944b7
mov dword [esp + 0x44], eax
cmp dword [esp + 0x14], 0
je 0x493c67
xor ebx, ebx
mov eax, dword [esp + ebx*8 + 0x2d0]
or eax, dword [esp + ebx*8 + 0x2d4]
jne 0x493c69
inc ebx
cmp dword [esp + 0x14], ebx
jne 0x493c4e
jmp 0x493c31
xor ebx, ebx
cmp ebx, dword [esp + 0x14]
jae 0x493c31
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 0x493c7f
mov eax, dword [esp + 0x38]
or eax, dword [esp + 0x4c]
je 0x493c31
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 0x493c31
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x60], 1
test eax, eax
je 0x49461c
mov ecx, dword [eax*8 + 0x500ebc]
mov dword [esp + 0x30], ecx
mov eax, dword [eax*8 + 0x500eb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc0]
xor ecx, ecx
mov dword [esp + 0x38], eax
test eax, eax
je 0x493e17
xor ecx, ecx
mov eax, dword [esp + ecx*8 + 0xc8]
or eax, dword [esp + ecx*8 + 0xcc]
jne 0x493e17
inc ecx
cmp dword [esp + 0x38], ecx
jne 0x493dfb
jmp 0x49461c
cmp ecx, dword [esp + 0x38]
jae 0x49461c
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 0x493e31
mov eax, dword [esp + 0xc]
or eax, dword [esp + 0x14]
je 0x49461c
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 0x49461c
mov ecx, edi
cmp dl, 0x5c
jne 0x494380
movzx edx, byte [edi + 1]
add edx, 0xffffffde
cmp edx, 0x53
ja case.0x49839d.35
jmp dword [edx*4 + 0x50140c]
mov byte [ecx], 0x22
jmp 0x494023
mov byte [ecx], 0xa
jmp 0x494023
mov byte [ecx], 0x2f
jmp 0x494023
mov byte [ecx], 8
jmp 0x494023
movzx eax, byte [edi + 2]
movzx edx, byte [eax + 0x4fe17d]
movzx eax, byte [edi + 3]
movzx ebx, byte [eax + 0x4fe17d]
movzx eax, byte [edi + 4]
movzx eax, byte [eax + 0x4fe17d]
mov dword [esp + 0x1c], eax
movzx eax, byte [edi + 5]
movzx eax, byte [eax + 0x4fe17d]
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 0x495ec7
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 0x4943b0
movzx eax, word [esp + 0x1c]
cmp eax, 0x800
jb 0x49402b
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 0x49405e
mov byte [ecx], 0x5c
jmp 0x494023
mov byte [ecx], 0xd
jmp 0x494023
mov byte [ecx], 0xc
jmp 0x494023
mov byte [ecx], 9
inc ecx
add edi, 2
mov edx, edi
jmp 0x49405e
cmp eax, 0x80
jb 0x49404d
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 0x49405e
mov eax, dword [esp + 0x1c]
mov byte [ecx], al
inc ecx
jmp 0x49405e
cmp edi, edx
je 0x494363
movzx eax, byte [edx]
test byte [eax + 0x4fdf06], 0xc
jne 0x4942a4
movzx eax, byte [edx + 1]
test byte [eax + 0x4fdf06], 0xc
jne 0x494373
movzx eax, byte [edx + 2]
test byte [eax + 0x4fdf06], 0xc
jne 0x494180
movzx eax, byte [edx + 3]
test byte [eax + 0x4fdf06], 0xc
jne 0x494191
movzx eax, byte [edx + 4]
test byte [eax + 0x4fdf06], 0xc
jne 0x4941a0
movzx eax, byte [edx + 5]
test byte [eax + 0x4fdf06], 0xc
jne 0x4941af
movzx eax, byte [edx + 6]
test byte [eax + 0x4fdf06], 0xc
jne 0x4941c6
movzx eax, byte [edx + 7]
test byte [eax + 0x4fdf06], 0xc
jne 0x4941dd
movzx eax, byte [edx + 8]
test byte [eax + 0x4fdf06], 0xc
jne 0x4941f0
movzx eax, byte [edx + 9]
test byte [eax + 0x4fdf06], 0xc
jne 0x494203
movzx eax, byte [edx + 0xa]
test byte [eax + 0x4fdf06], 0xc
jne 0x49421e
movzx eax, byte [edx + 0xb]
test byte [eax + 0x4fdf06], 0xc
jne 0x494236
movzx eax, byte [edx + 0xc]
test byte [eax + 0x4fdf06], 0xc
jne 0x49424c
movzx eax, byte [edx + 0xd]
test byte [eax + 0x4fdf06], 0xc
jne 0x494262
movzx eax, byte [edx + 0xe]
test byte [eax + 0x4fdf06], 0xc
jne 0x494280
movzx eax, byte [edx + 0xf]
test byte [eax + 0x4fdf06], 0xc
movupd xmm0, xmmword [edx]
movupd xmmword [ecx], xmm0
jne 0x49429e
add edx, 0x10
add ecx, 0x10
jmp 0x49405e
movzx eax, word [edx]
add edx, 2
mov word [ecx], ax
add ecx, 2
jmp 0x4942a4
mov eax, dword [edx]
add edx, 3
mov dword [ecx], eax
add ecx, 3
jmp 0x4942a4
mov eax, dword [edx]
add edx, 4
mov dword [ecx], eax
add ecx, 4
jmp 0x4942a4
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 0x4942a6
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 0x4942a6
movsd xmm0, qword [edx]
add edx, 7
movsd qword [ecx], xmm0
add ecx, 7
jmp 0x4942a4
movsd xmm0, qword [edx]
add edx, 8
movsd qword [ecx], xmm0
add ecx, 8
jmp 0x4942a4
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 0x4942a6
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 0x4942a6
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 0x4942a6
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 0x4942a6
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 0x4942a6
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 0x4942a6
add edx, 0xf
add ecx, 0xf
mov edi, edx
movzx edx, byte [edi]
test dl, dl
jns 0x493f31
mov eax, dword [edi]
mov edx, eax
and edx, 0xc0c0f0
cmp edx, 0x8080e0
jne 0x4942f4
mov edx, edi
mov ebx, eax
and ebx, 0x200f
je 0x4942f6
cmp ebx, 0x200d
je 0x4942f6
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 0x4942c5
jmp 0x4942f6
mov edx, edi
test al, al
jns 0x49405e
mov ebx, eax
and ebx, 0xc0e0
cmp ebx, 0x80c0
jne 0x49432e
mov ebx, eax
and ebx, 0x1e
je 0x49432e
mov word [ecx], ax
add ecx, 2
mov eax, dword [edx + 2]
add edx, 2
jmp 0x4942fe
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 0x494056
mov ebx, eax
and ebx, 0x3007
je 0x494056
test al, 4
je 0x494323
mov ebx, eax
and ebx, 0x3003
je 0x494323
jmp 0x494056
cmp byte [esp + 0x98], 0
je 0x495eb2
mov edx, edi
movzx eax, word [edx]
mov word [ecx], ax
inc edx
inc ecx
jmp 0x4942a4
movzx eax, dl
cmp eax, 0x22
je 0x494ee6
cmp byte [esp + 0x98], 0
je 0x495e9d
cmp edi, dword [esp + 0x84]
jae 0x495f2f
inc edi
mov byte [ecx], dl
inc ecx
jmp 0x494027
mov eax, dword [esp + 0x1c]
and eax, 0xfc00
cmp eax, 0xd800
jne 0x495edc
movzx eax, word [edx]
cmp eax, 0x755c
jne 0x495ef1
movzx eax, byte [edi + 8]
movzx eax, byte [eax + 0x4fe17d]
mov dword [esp + 0x24], eax
movzx eax, byte [edi + 9]
movzx eax, byte [eax + 0x4fe17d]
mov dword [esp + 4], eax
movzx eax, byte [edi + 0xa]
movzx eax, byte [eax + 0x4fe17d]
mov dword [esp + 0x18], eax
movzx eax, byte [edi + 0xb]
movzx eax, byte [eax + 0x4fe17d]
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 0x495f0b
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 0x495f1d
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 0x494027
test eax, eax
je 0x494614
mov dword [esp + 0x60], 0
cmp dword [esp + 0x50], 0
je 0x49461c
mov ecx, dword [eax*8 + 0x500ebc]
mov dword [esp + 0x40], ecx
mov eax, dword [eax*8 + 0x500eb8]
mov dword [esp + 4], eax
xor ecx, ecx
mov eax, dword [esp + ecx*8 + 0x2d0]
or eax, dword [esp + ecx*8 + 0x2d4]
jne 0x494506
inc ecx
cmp dword [esp + 0x50], ecx
jne 0x4944ea
jmp 0x494614
cmp ecx, dword [esp + 0x50]
jae 0x494614
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 0x494520
mov eax, dword [esp + 0xc]
or eax, dword [esp + 0x14]
je 0x494614
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 0x49461c
mov eax, dword [esp + 0x50]
mov dword [esp + 0x60], eax
cmp dword [esp + 0x6c], 0
jle 0x4948ad
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 0x495623
mov eax, dword [esp + 0x60]
mov dword [esp + eax*8 + 0x2d4], 0
mov dword [esp + eax*8 + 0x2d0], 0
test eax, eax
je 0x494848
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 0x494c25
mov ecx, ebx
test bl, 1
je 0x4946fc
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 0x494848
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 0x494719
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 0x494b5e
jmp 0x494b74
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 0x495726
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 0x494aff
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 0x494d87
mov eax, dword [esp + 0x1c]
mov edi, eax
test al, 1
je 0x4949ad
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 0x494aff
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 0x4949cc
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 0x494b74
mov eax, dword [esp + 0x30]
shl eax, 3
push eax
push 0
push dword [esp + 0x78]
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov ecx, dword [esp + 0xc0]
mov dword [esp + 4], 0
mov eax, 0
cmp ecx, dword [esp + 0x60]
jb 0x494bdc
mov al, 1
ja 0x494bdc
mov edx, ecx
sub edx, 1
jb 0x494d73
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 0x494b94
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 0x4955ae
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 0x4937cc
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 0x49467f
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 0x49467f
mov ebx, dword [esp + 0x60]
lea ecx, [esp + ebx*8]
add ecx, 0x2d0
mov edi, ecx
sub edi, eax
cmp edi, ecx
ja 0x49467f
mov ebx, dword [esp + 0x60]
lea eax, [ebx - 1]
cmp eax, 0x1fffffff
ja 0x49467f
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 0x49467f
add edx, 0xfffffff8
mov ebx, dword [esp + 0x60]
cmp edx, 0x20
jb 0x49467f
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 0x494d01
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x60], eax
jne 0x49467f
jmp 0x494848
mov ecx, dword [esp + 0x18]
and ecx, 1
mov dword [esp + 4], 0
jmp 0x494bdf
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 0x494925
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 0x494925
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 0x494925
mov edi, dword [esp + 0x44]
lea eax, [edi - 1]
mov dword [esp + 0x1c], edi
cmp eax, 0x1fffffff
ja 0x494925
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 0x494925
add edx, 0xfffffff8
mov eax, dword [esp + 0x44]
mov dword [esp + 0x1c], eax
cmp edx, 0x20
jb 0x494925
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 0x494e78
cmp dword [esp + 0x44], edx
jne 0x494925
jmp 0x494aff
mov ebx, 5
jmp 0x49232e
mov eax, dword [esp + 0x2c]
mov edi, eax
shr edi, 1
add edi, eax
cmp edi, 0xffffffe
ja 0x489a19
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 0x489a19
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 0x491b51
mov edi, eax
mov eax, dword [ebp + 0x10]
test al, 0x10
jne 0x49597a
mov dword [esp + 0x64], str.no_digit_after_minus_sign
mov eax, dword [esp + 0x20]
mov dword [esp], eax
jmp 0x495c14
cmp dl, 0x2e
jne 0x495a6e
mov eax, dword [esp + 0x20]
movzx ecx, byte [eax + 2]
test byte [ecx + 0x4fe3f8], 3
je 0x495606
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 0x494fb4
mov edi, eax
movzx ecx, byte [eax + 0x4fe3f8]
test cl, 3
je 0x495a66
add edi, 0xffffffd0
mov dword [esp + 0x1c], edi
mov edx, edi
sar edx, 0x1f
dec dword [esp + 0x20]
mov eax, dword [esp + 0x18]
jmp 0x495019
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 0x49260c
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 0x4955a3
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 0x4955a3
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 0x4955a3
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 0x4955a3
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 0x4955a3
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 0x4955a3
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 0x4955a3
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 0x4955a3
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 0x4955a3
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 0x4955a3
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 0x4955a3
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 0x4955a3
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 0x4955a3
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 0x4955a3
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 0x4955a3
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 0x4955a3
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 0x4955a3
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 0x495776
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 + 0x4fe3f8], 3
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 4], ecx
jne 0x4924eb
mov dword [esp + 0xc], ebx
mov eax, dword [esp + 4]
inc eax
cmp eax, dword [esp + 0x58]
je 0x49560f
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 + 0x4fe3f8], 0x20
jne 0x495937
mov dword [esp + 0x14], 0
cmp eax, 0x159
jge 0x495946
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
jmp 0x4926f1
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 0x495448
jmp 0x49260c
mov edx, dword [esp + 8]
jmp 0x495d06
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
test eax, eax
je 0x49382b
mov byte [eax], 0
jmp 0x49382b
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
test eax, eax
je 0x495577
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 0x4929ac
mov dword [esp + 4], ebx
mov ebx, edi
jmp 0x4954ad
mov eax, dword [ebp + 0x10]
test al, al
js 0x4955f0
test al, 0x10
je 0x498bfb
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 0x4937cc
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
test eax, eax
je 0x4955fd
mov byte [eax], 0
mov edi, dword [esp + 0x5c]
jmp 0x49382b
mov eax, dword [esp + 0x20]
jmp 0x495bf9
mov dword [esp + 0x64], str.no_digit_after_decimal_point
mov eax, dword [esp + 0x58]
mov dword [esp], eax
jmp 0x495c14
cmp dword [esp + 0x60], 0
je 0x4957da
mov ecx, dword [esp + 0x60]
mov eax, ecx
cmp ecx, 0x20
jb 0x4956f3
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 0x4956f3
mov eax, dword [esp + 0x60]
lea edx, [esp + eax*8]
add edx, 0x2c8
mov ebx, edx
sub ebx, edi
cmp ebx, edx
ja 0x4956f3
mov eax, dword [esp + 0x60]
lea edi, [eax - 1]
cmp edi, 0x1fffffff
ja 0x4956f3
sub edx, ecx
mov eax, dword [esp + 0x60]
cmp edx, 0x20
jb 0x4956f3
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 0x4956c8
mov ecx, dword [esp + 0x20]
cmp dword [esp + 0x60], ecx
je 0x4957da
lea edx, [eax - 1]
mov edi, eax
and edi, 3
je 0x495783
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 0x49570e
jmp 0x495785
cmp dword [esp + 0x44], 0
je 0x49590d
mov ecx, dword [esp + 0x44]
mov eax, ecx
cmp ecx, 0x20
jae 0x4957f2
lea edx, [eax - 1]
mov edi, eax
and edi, 3
je 0x4958b6
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 0x49575b
jmp 0x4958b8
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
jmp 0x4954ad
mov ecx, eax
cmp edx, 3
jb 0x4957da
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 0x495798
mov eax, dword [esp + 0x30]
add dword [esp + 0x60], eax
cmp dword [esp + 0x6c], 0x40
jae 0x494b5e
jmp 0x494b74
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 0x495740
mov eax, dword [esp + 0x44]
lea edx, [esp + eax*8]
add edx, 0xc0
mov ebx, edx
sub ebx, edi
cmp ebx, edx
ja 0x495740
mov eax, dword [esp + 0x44]
lea edi, [eax - 1]
cmp edi, 0x1fffffff
ja 0x495740
sub edx, ecx
mov eax, dword [esp + 0x44]
cmp edx, 0x20
jb 0x495740
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 0x495889
mov ecx, dword [esp + 0x20]
cmp dword [esp + 0x44], ecx
jne 0x495740
jmp 0x49590d
mov ecx, eax
cmp edx, 3
jb 0x49590d
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 0x4958cb
mov eax, dword [esp + 0x44]
add eax, dword [esp + 0x30]
mov dword [esp + 0xc0], eax
cmp dword [esp + 0x6c], 0x40
jb 0x494b74
lea eax, [esp + 0xc8]
mov dword [esp + 0x70], eax
jmp 0x494b5e
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0xc]
mov ecx, ebx
jmp 0x49260c
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 0x4929af
xor ecx, ecx
cmp byte [esp + 0x24], 0x2d
sete al
lea edx, [edi - 0x49]
cmp edx, 0x25
ja case.0x495998.74
mov cl, al
mov eax, dword [esp + 0x20]
sub eax, ecx
jmp dword [edx*4 + 0x501314]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ecx + 1]
or ecx, 0x20
cmp ecx, 0x6e
jne 0x495ab7
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ecx + 2]
or ecx, 0x20
cmp ecx, 0x66
jne 0x495ab7
mov edx, dword [esp + 0x20]
lea ecx, [edx + 3]
movzx edx, byte [edx + 3]
or edx, 0x20
cmp edx, 0x69
jne 0x495a21
mov edx, dword [esp + 0x20]
movzx edx, byte [edx + 4]
or edx, 0x20
cmp edx, 0x6e
jne 0x495a21
mov edx, dword [esp + 0x20]
movzx edx, byte [edx + 5]
or edx, 0x20
cmp edx, 0x69
jne 0x495a21
mov edx, dword [esp + 0x20]
movzx edx, byte [edx + 6]
or edx, 0x20
cmp edx, 0x74
jne 0x495a21
mov edx, dword [esp + 0x20]
movzx edx, byte [edx + 7]
or edx, 0x20
cmp edx, 0x79
jne 0x495a21
mov ecx, dword [esp + 0x20]
add ecx, 8
cmp byte [esp + 0x48], 0
je 0x495b6e
mov edx, dword [esp + 0x28]
mov edx, dword [edx]
test edx, edx
je 0x495a39
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 0x4929af
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], eax
test cl, 3
jne 0x495aa2
test cl, 0x20
jne 0x495ba3
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 0x492b44
mov dword [esp + 0x64], str.number_with_leading_zero_is_not_allowed
mov eax, dword [esp + 0x18]
dec eax
mov dword [esp], eax
jmp 0x495c14
cmp edi, 0x4e
jne case.0x495998.74
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ecx + 1]
or ecx, 0x20
cmp ecx, 0x61
jne case.0x495998.74
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ecx + 2]
or ecx, 0x20
cmp ecx, 0x6e
jne case.0x495998.74
add dword [esp + 0x20], 3
cmp byte [esp + 0x48], 0
je 0x495b35
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
test ecx, ecx
je 0x495b01
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 0x4929af
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 0x4929af
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 0x4929af
mov ecx, dword [esp + 0x18]
movzx eax, byte [ecx + 1]
movzx eax, byte [eax + 0x4fe3f8]
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 + 0x4fe3f8], 3
je 0x495be8
mov ecx, dword [esp + 0x18]
movzx eax, byte [ecx + 1]
inc ecx
mov dword [esp + 0x18], ecx
test byte [eax + 0x4fe3f8], 3
jne 0x495bcd
jmp 0x495a7c
mov dword [esp + 0x64], str.no_digit_after_exponent_sign
mov eax, dword [esp + 0x18]
mov dword [esp], eax
jmp 0x495c14
add eax, 2
mov dword [esp + 0x64], str.no_digit_after_decimal_point
mov dword [esp], eax
jmp 0x495c14
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 fcn.0049ea60
add esp, 0xc
test al, al
cmovne esi, ebx
mov ecx, 0x4fe006
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 0x49681c
mov esi, dword [esp]
movzx eax, word [esi]
cmp eax, 0xa2c
mov dword [esp + 8], edx
jne 0x495c9f
add esi, 2
mov dword [esp], esi
mov eax, dword [esp + 0x74]
jmp 0x491918
mov edi, esp
cmp al, 0x5d
je 0x495d00
movzx ecx, al
cmp ecx, 0x2c
je 0x495cfd
movzx eax, al
test byte [eax + 0x4fdf06], 1
jne 0x495cdc
mov eax, dword [ebp + 0x10]
test al, 8
je 0x4967c2
mov ecx, edi
call fcn.0049ac40
mov esi, dword [esp]
test al, al
je 0x491706
mov edx, dword [esp + 8]
jmp 0x495cf1
inc esi
nop dword [eax]
mov dword [esp], esi
movzx eax, byte [esi]
inc esi
test byte [eax + 0x4fdf06], 1
jne 0x495ce0
dec esi
movzx eax, word [esi]
cmp eax, 0xa2c
jne 0x495ca1
jmp 0x495c90
inc esi
jmp 0x495c93
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 0x495d5b
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 0x495d4c
inc edi
mov dword [esp], edi
not eax
test al, 7
jne 0x495c7f
jmp 0x496690
mov ebx, edx
mov eax, dword [ebp + 0x10]
test al, 2
jne 0x495d6d
cmp edi, dword [esp + 0x84]
jb 0x495dc4
cmp byte [esp + 0x48], 0
je 0x495d81
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
test eax, eax
je 0x495d81
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 0x495e0e
test al, 8
jne 0x495df5
movzx eax, byte [edi]
test byte [eax + 0x4fdf06], 1
je 0x495de6
inc edi
mov dword [esp], edi
movzx eax, byte [edi]
inc edi
test byte [eax + 0x4fdf06], 1
jne 0x495dd5
dec edi
cmp edi, dword [esp + 0x84]
jae 0x495d6d
jmp 0x495e2c
mov ecx, esp
call fcn.0049ac40
mov edi, dword [esp]
movzx eax, word [edi]
cmp eax, 0x2a2f
jne 0x495de6
jmp 0x495e8f
mov eax, dword [esp + 0xbc]
mov dword [ebx + 0x1c], eax
lea edi, [esp + 0xa4]
test ebx, ebx
jne 0x49683a
jmp 0x48993d
mov ecx, dword [esp + 0x88]
mov edx, edi
push dword [ebp + 0x10]
push 4
mov esi, dword [esp + 0x8c]
push esi
call fcn.0049ea60
add esp, 0xc
movzx ecx, al
or ecx, 4
test al, al
cmovne edi, esi
mov eax, 0x4fe006
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 0x496820
mov esi, edi
mov dword [esp + 8], ebx
mov eax, dword [ebp + 0x10]
jmp 0x491717
mov dword [esp + 0x64], str.unexpected_control_character_in_string
mov dword [esp + 0x68], str.unexpected_control_character_in_string
jmp 0x49892a
mov dword [esp + 0x64], str.invalid_UTF_8_encoding_in_string
mov dword [esp + 0x68], str.invalid_UTF_8_encoding_in_string
jmp 0x49892a
mov dword [esp + 0x64], str.invalid_escaped_sequence_in_string
mov dword [esp + 0x68], str.invalid_escaped_sequence_in_string
jmp 0x49892a
mov dword [esp + 0x64], str.invalid_high_surrogate_in_string
mov dword [esp + 0x68], str.invalid_high_surrogate_in_string
jmp 0x49892a
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 0x49892d
mov dword [esp + 0x64], str.invalid_escaped_sequence_in_string
mov dword [esp + 0x68], str.invalid_escaped_sequence_in_string
jmp 0x495f01
mov dword [esp + 0x64], str.invalid_low_surrogate_in_string
mov dword [esp + 0x68], str.invalid_low_surrogate_in_string
jmp 0x495f01
mov dword [esp + 0x64], str.unclosed_string
mov dword [esp + 0x68], str.unclosed_string
jmp 0x49892a
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x1c]
jmp 0x491c34
mov edi, esp
mov dword [esp + 0x74], eax
movzx eax, word [esi]
cmp eax, 0x2020
jne 0x4960ae
add esi, 0x10
nop dword [eax + eax]
lea ecx, [esi - 0xe]
mov dword [esp], ecx
movzx eax, word [esi - 0xe]
cmp eax, 0x2020
jne 0x4960ac
lea ecx, [esi - 0xc]
mov dword [esp], ecx
movzx eax, word [esi - 0xc]
cmp eax, 0x2020
jne 0x4960ac
lea ecx, [esi - 0xa]
mov dword [esp], ecx
movzx eax, word [esi - 0xa]
cmp eax, 0x2020
jne 0x4960ac
lea ecx, [esi - 8]
mov dword [esp], ecx
movzx eax, word [esi - 8]
cmp eax, 0x2020
jne 0x4960ac
lea ecx, [esi - 6]
mov dword [esp], ecx
movzx eax, word [esi - 6]
cmp eax, 0x2020
jne 0x4960ac
lea ecx, [esi - 4]
mov dword [esp], ecx
movzx eax, word [esi - 4]
cmp eax, 0x2020
jne 0x4960ac
lea ecx, [esi - 2]
mov dword [esp], ecx
movzx eax, word [esi - 2]
cmp eax, 0x2020
jne 0x4960ac
mov dword [esp], esi
movzx eax, word [esi]
cmp eax, 0x2020
jne 0x4960ae
lea ecx, [esi + 2]
mov dword [esp], ecx
movzx eax, word [esi + 2]
cmp eax, 0x2020
jne 0x4960ac
lea ecx, [esi + 4]
mov dword [esp], ecx
movzx eax, word [esi + 4]
cmp eax, 0x2020
jne 0x4960ac
lea ecx, [esi + 6]
mov dword [esp], ecx
movzx eax, word [esi + 6]
cmp eax, 0x2020
jne 0x4960ac
lea ecx, [esi + 8]
mov dword [esp], ecx
movzx eax, word [esi + 8]
cmp eax, 0x2020
jne 0x4960ac
lea ecx, [esi + 0xa]
mov dword [esp], ecx
movzx eax, word [esi + 0xa]
cmp eax, 0x2020
jne 0x4960ac
lea ecx, [esi + 0xc]
mov dword [esp], ecx
movzx eax, word [esi + 0xc]
cmp eax, 0x2020
jne 0x4960ac
lea ecx, [esi + 0xe]
mov dword [esp], ecx
movzx eax, word [esi + 0xe]
cmp eax, 0x2020
jne 0x4960ac
lea eax, [esi + 0x10]
mov dword [esp], eax
movzx eax, word [esi + 0x10]
add esi, 0x20
cmp eax, 0x2020
je 0x495f70
add esi, 0xfffffff0
jmp 0x4960ae
mov esi, ecx
cmp al, 0x22
je 0x496117
mov dword [esp + 8], edx
movzx ecx, al
cmp ecx, 0x7d
je 0x49763c
movzx eax, al
test byte [eax + 0x4fdf06], 1
jne 0x4960f8
mov eax, dword [ebp + 0x10]
test al, 8
je 0x4967c2
mov ecx, edi
call fcn.0049ac40
mov esi, dword [esp]
test al, al
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x74]
jne 0x495f53
jmp 0x491706
inc esi
mov dword [esp], esi
movzx eax, byte [esi]
inc esi
test byte [eax + 0x4fdf06], 1
jne 0x4960f9
dec esi
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x74]
jmp 0x495f53
mov eax, dword [esp + 0x10]
add eax, 0x10
cmp eax, dword [esp + 0x80]
jae 0x497654
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 + 0x4fdf06], 0xc
jne 0x4962f4
add eax, 8
mov edi, eax
nop dword [eax]
movzx edx, byte [edi - 7]
test byte [edx + 0x4fdf06], 0xc
jne 0x49625f
movzx edx, byte [edi - 6]
test byte [edx + 0x4fdf06], 0xc
jne 0x496264
movzx edx, byte [edi - 5]
test byte [edx + 0x4fdf06], 0xc
jne 0x496269
movzx edx, byte [edi - 4]
test byte [edx + 0x4fdf06], 0xc
jne 0x49626e
movzx edx, byte [edi - 3]
test byte [edx + 0x4fdf06], 0xc
jne 0x496273
movzx edx, byte [edi - 2]
test byte [edx + 0x4fdf06], 0xc
jne 0x496278
movzx edx, byte [edi - 1]
test byte [edx + 0x4fdf06], 0xc
jne 0x49627d
movzx edx, byte [edi]
test byte [edx + 0x4fdf06], 0xc
jne 0x49629f
movzx edx, byte [edi + 1]
test byte [edx + 0x4fdf06], 0xc
jne 0x496280
movzx edx, byte [edi + 2]
test byte [edx + 0x4fdf06], 0xc
jne 0x496283
movzx edx, byte [edi + 3]
test byte [edx + 0x4fdf06], 0xc
jne 0x496288
movzx edx, byte [edi + 4]
test byte [edx + 0x4fdf06], 0xc
jne 0x49628d
movzx edx, byte [edi + 5]
test byte [edx + 0x4fdf06], 0xc
jne 0x496292
movzx edx, byte [edi + 6]
test byte [edx + 0x4fdf06], 0xc
jne 0x496297
movzx edx, byte [edi + 7]
test byte [edx + 0x4fdf06], 0xc
jne 0x49629c
movzx edx, byte [edi + 8]
add edi, 0x10
test byte [edx + 0x4fdf06], 0xc
je 0x496160
add edi, 0xfffffff8
jmp 0x49629f
add edi, 0xfffffff9
jmp 0x49629f
add edi, 0xfffffffa
jmp 0x49629f
add edi, 0xfffffffb
jmp 0x49629f
add edi, 0xfffffffc
jmp 0x49629f
add edi, 0xfffffffd
jmp 0x49629f
add edi, 0xfffffffe
jmp 0x49629f
dec edi
jmp 0x49629f
inc edi
jmp 0x49629f
add edi, 2
jmp 0x49629f
add edi, 3
jmp 0x49629f
add edi, 4
jmp 0x49629f
add edi, 5
jmp 0x49629f
add edi, 6
jmp 0x49629f
add edi, 7
mov dword [esp + 0x10], 0
cmp dl, 0x22
je 0x49636c
test dl, dl
jns 0x497730
mov ecx, dword [edi]
mov eax, ecx
and eax, 0xc0c0f0
cmp eax, 0x8080e0
jne 0x4962f8
mov eax, edi
mov edx, ecx
and edx, 0x200f
je 0x4962fa
cmp edx, 0x200d
je 0x4962fa
mov ecx, dword [eax + 3]
add eax, 3
mov edx, ecx
and edx, 0xc0c0f0
cmp edx, 0x8080e0
je 0x4962ca
jmp 0x4962fa
mov edi, eax
jmp 0x49629f
mov eax, edi
test cl, cl
jns 0x496144
mov edx, ecx
and edx, 0xc0e0
cmp edx, 0x80c0
jne 0x496327
mov edx, ecx
and edx, 0x1e
je 0x496327
mov ecx, dword [eax + 2]
add eax, 2
jmp 0x496302
mov ecx, dword [eax + 4]
add eax, 4
mov edx, ecx
and edx, 0xc0c0c0f8
cmp edx, 0x808080f0
jne 0x49634e
mov edx, ecx
and edx, 0x3007
je 0x49634e
test cl, 4
je 0x496321
and ecx, 0x3003
je 0x496321
cmp edi, eax
jne 0x496144
cmp byte [esp + 0x98], 0
je 0x495eb2
inc edi
mov eax, edi
jmp 0x496144
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 0x4965fc
add esi, 2
mov dword [esp], esi
movzx ebx, byte [esi]
cmp bl, 0x22
jne 0x496711
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 + 0x4fdf06], 0xc
jne 0x496584
add eax, 8
mov edi, eax
nop word [eax + eax]
movzx edx, byte [edi - 7]
test byte [edx + 0x4fdf06], 0xc
jne 0x4964ef
movzx edx, byte [edi - 6]
test byte [edx + 0x4fdf06], 0xc
jne 0x4964f4
movzx edx, byte [edi - 5]
test byte [edx + 0x4fdf06], 0xc
jne 0x4964f9
movzx edx, byte [edi - 4]
test byte [edx + 0x4fdf06], 0xc
jne 0x4964fe
movzx edx, byte [edi - 3]
test byte [edx + 0x4fdf06], 0xc
jne 0x496503
movzx edx, byte [edi - 2]
test byte [edx + 0x4fdf06], 0xc
jne 0x496508
movzx edx, byte [edi - 1]
test byte [edx + 0x4fdf06], 0xc
jne 0x49650d
movzx edx, byte [edi]
test byte [edx + 0x4fdf06], 0xc
jne 0x49652f
movzx edx, byte [edi + 1]
test byte [edx + 0x4fdf06], 0xc
jne 0x496510
movzx edx, byte [edi + 2]
test byte [edx + 0x4fdf06], 0xc
jne 0x496513
movzx edx, byte [edi + 3]
test byte [edx + 0x4fdf06], 0xc
jne 0x496518
movzx edx, byte [edi + 4]
test byte [edx + 0x4fdf06], 0xc
jne 0x49651d
movzx edx, byte [edi + 5]
test byte [edx + 0x4fdf06], 0xc
jne 0x496522
movzx edx, byte [edi + 6]
test byte [edx + 0x4fdf06], 0xc
jne 0x496527
movzx edx, byte [edi + 7]
test byte [edx + 0x4fdf06], 0xc
jne 0x49652c
movzx edx, byte [edi + 8]
add edi, 0x10
test byte [edx + 0x4fdf06], 0xc
je 0x4963f0
add edi, 0xfffffff8
jmp 0x49652f
add edi, 0xfffffff9
jmp 0x49652f
add edi, 0xfffffffa
jmp 0x49652f
add edi, 0xfffffffb
jmp 0x49652f
add edi, 0xfffffffc
jmp 0x49652f
add edi, 0xfffffffd
jmp 0x49652f
add edi, 0xfffffffe
jmp 0x49652f
dec edi
jmp 0x49652f
inc edi
jmp 0x49652f
add edi, 2
jmp 0x49652f
add edi, 3
jmp 0x49652f
add edi, 4
jmp 0x49652f
add edi, 5
jmp 0x49652f
add edi, 6
jmp 0x49652f
add edi, 7
mov dword [esp + 0x1c], 0
cmp dl, 0x22
je 0x496660
test dl, dl
jns 0x498382
mov ecx, dword [edi]
mov eax, ecx
and eax, 0xc0c0f0
cmp eax, 0x8080e0
jne 0x496588
mov eax, edi
mov edx, ecx
and edx, 0x200f
je 0x49658a
cmp edx, 0x200d
je 0x49658a
mov ecx, dword [eax + 3]
add eax, 3
mov edx, ecx
and edx, 0xc0c0f0
cmp edx, 0x8080e0
je 0x49655a
jmp 0x49658a
mov edi, eax
jmp 0x49652f
mov eax, edi
test cl, cl
jns 0x4963d2
mov edx, ecx
and edx, 0xc0e0
cmp edx, 0x80c0
jne 0x4965b7
mov edx, ecx
and edx, 0x1e
je 0x4965b7
mov ecx, dword [eax + 2]
add eax, 2
jmp 0x496592
mov ecx, dword [eax + 4]
add eax, 4
mov edx, ecx
and edx, 0xc0c0c0f8
cmp edx, 0x808080f0
jne 0x4965de
mov edx, ecx
and edx, 0x3007
je 0x4965de
test cl, 4
je 0x4965b1
and ecx, 0x3003
je 0x4965b1
cmp edi, eax
jne 0x4963d2
cmp byte [esp + 0x98], 0
je 0x495eb2
inc edi
mov eax, edi
jmp 0x4963d2
mov edi, esp
movzx eax, al
cmp eax, 0x3a
je 0x49685f
test byte [eax + 0x4fdf06], 1
jne 0x496631
mov eax, dword [ebp + 0x10]
test al, 8
je 0x4967c2
mov ecx, edi
call fcn.0049ac40
mov esi, dword [esp]
test al, al
jne 0x496651
jmp 0x491706
inc esi
nop word cs:[eax + eax]
mov dword [esp], esi
movzx eax, byte [esi]
inc esi
test byte [eax + 0x4fdf06], 1
jne 0x496640
dec esi
movzx eax, word [esi]
cmp eax, 0x203a
jne 0x4965fe
jmp 0x4963a8
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 0x4966a2
add esi, 2
jmp 0x496705
mov edi, esp
cmp al, 0x2c
je 0x496704
mov dword [esp + 8], edx
movzx ecx, al
cmp ecx, 0x7d
je 0x4976cd
movzx eax, al
test byte [eax + 0x4fdf06], 1
jne 0x4966e2
mov eax, dword [ebp + 0x10]
test al, 8
je 0x4967c2
mov ecx, edi
call fcn.0049ac40
mov esi, dword [esp]
test al, al
jne 0x4966f4
jmp 0x491706
inc esi
mov dword [esp], esi
movzx eax, byte [esi]
inc esi
test byte [eax + 0x4fdf06], 1
jne 0x4966e3
dec esi
movzx eax, word [esi]
cmp eax, 0xa2c
mov edx, dword [esp + 8]
jne 0x4966a4
jmp 0x49669d
inc esi
mov dword [esp], esi
mov eax, dword [esp + 0x74]
jmp 0x495f51
mov edi, esp
movzx eax, bl
movzx ecx, byte [eax + 0x4fdf06]
test cl, 2
jne 0x496865
lea edx, [eax - 0x5b]
cmp edx, 0x20
ja case.0x49672e.92
jmp dword [edx*4 + 0x501140]
test cl, 1
jne 0x49675e
mov ecx, dword [ebp + 0x10]
test cl, 0x10
jne 0x49677b
test cl, 8
je 0x4967c0
mov ecx, edi
call fcn.0049ac40
mov esi, dword [esp]
test al, al
je 0x491706
movzx ebx, byte [esi]
jmp 0x496771
inc esi
nop
mov dword [esp], esi
movzx ebx, byte [esi]
inc esi
test byte [ebx + 0x4fdf06], 1
jne 0x496760
dec esi
cmp bl, 0x22
jne 0x496713
jmp 0x4963ba
cmp bl, 0x49
je 0x49678a
cmp eax, 0x69
je 0x49678a
cmp eax, 0x4e
jne 0x496742
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 0x4982da
cmp eax, 0x69
je 0x4982da
cmp eax, 0x4e
jne case.0x4887b0.74
movzx eax, byte [esi + 1]
jmp 0x498a71
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 fcn.0049ea60
add esp, 0xc
movzx edx, al
mov ecx, 6
sub ecx, edx
test al, al
cmovne esi, ebx
mov eax, 0x4fe006
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 0x48993d
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 0x4963ab
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 0x498a41
xor edx, edx
cmp bl, 0x2d
sete dl
lea ecx, [esi + edx]
movzx eax, byte [esi + edx]
test byte [eax + 0x4fe3f8], 2
mov dword [esp + 0x1c], ecx
je 0x497ccc
add eax, 0xffffffd0
movzx edx, byte [ecx + 1]
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x497d20
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 0x497d7b
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 0x497dc7
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 0x497e13
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 0x497e5f
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 0x497eab
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 0x497ef7
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 0x497f43
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 0x497f8f
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 0x497fdb
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 0x498027
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 0x498073
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 0x4980bf
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 0x49810b
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 0x498157
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 0x4981a3
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 0x4981ef
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 0x498237
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 + 0x4fe3f8]
test dl, 0x33
je 0x496c58
mov dword [esp + 0x18], eax
test dl, 3
je 0x496b84
mov eax, ecx
movzx ecx, byte [ecx + 0x14]
test byte [ecx + 0x4fe3f8], 0x33
mov ecx, eax
je 0x496d25
xor edi, edi
test dl, 0x20
jne 0x496cca
mov dword [esp + 0x14], 0
cmp byte [esp + 0x18], 0x2e
jne 0x496df9
movzx eax, byte [ecx + 0x14]
add ecx, 0x14
test byte [eax + 0x4fe3f8], 3
je 0x495c09
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], eax
jmp 0x496dfd
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 0x498299
mov dword [ecx + 4], 0
mov dword [ecx], 2
jmp 0x496c1d
cmp dword [esi], 0x65757274
jne 0x4917cd
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 0x496c50
cmp dword [esi + 1], 0x65736c61
jne 0x4917cd
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 0x49668c
cmp bl, 0x2d
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 4]
jne 0x496ce9
mov eax, 0x80000000
mov ecx, edx
neg ecx
sbb eax, edi
jae 0x496ce9
mov eax, dword [ebp + 0x10]
test al, al
mov eax, dword [esp + 0x20]
js 0x498b33
mov dword [eax + 0x14], 0
movd xmm0, edx
movd xmm1, edi
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x4fdd90]
subpd xmm0, xmmword [0x4fdda0]
mov dword [eax + 0x10], 0x14
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
xorpd xmm1, xmmword [0x4fddb0]
movlpd qword [eax + 0x18], xmm1
jmp 0x496d1c
mov ecx, dword [esp + 0xc]
xor eax, eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x4c], 0
mov edx, dword [esp + 4]
jmp 0x496f1c
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 0x4972c7
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 0x496d77
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 0x496b84
cmp edi, 5
ja 0x496b84
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 0x496e8f
mov ecx, dword [ebp + 0x10]
test cl, cl
js 0x498e85
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x14], 0
movd xmm0, eax
movd xmm1, edx
punpckldq xmm0, xmm1
punpckldq xmm0, xmmword [0x4fdd90]
subpd xmm0, xmmword [0x4fdda0]
mov dword [ecx + 0x10], 0x14
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
xorpd xmm1, xmmword [0x4fddb0]
movlpd qword [ecx + 0x18], xmm1
mov eax, dword [esp + 0x14]
jmp 0x4972c7
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 + 0x4fe3f8]
inc ecx
inc edi
test dl, 3
jne 0x496e06
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 0x496e41
mov ecx, edx
jmp 0x496eb8
mov dword [esp + 0x38], ebx
mov ebx, dword [ebp + 0x10]
test bl, bl
jns 0x496e5a
movzx ebx, byte [esp + 0x3c]
and bl, 0x30
je 0x498eca
cmp byte [esp + 0xc], 0x2e
jne 0x496eb0
movzx eax, byte [ecx]
test byte [eax + 0x4fe3f8], 3
je 0x495c09
mov ecx, edx
movzx eax, byte [ecx + 1]
inc ecx
movzx eax, byte [eax + 0x4fe3f8]
test al, 3
jne 0x496e73
mov byte [esp + 0x3c], al
mov ebx, dword [esp + 0x38]
mov eax, edx
jmp 0x496eb8
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 0x4972c7
mov eax, edx
mov ecx, edx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x34], ecx
lea edx, [ecx - 1]
jmp 0x496ec2
dec edx
movzx ecx, byte [edx]
cmp ecx, 0x30
je 0x496ec1
cmp ecx, 0x2e
je 0x496ec1
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 0x496fde
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 + 0x4fe3f8], 0xc
setne al
mov edi, ecx
movzx ecx, byte [ecx + eax + 1]
test byte [ecx + 0x4fe3f8], 3
je 0x497cb9
add edi, eax
mov ecx, edi
movzx edx, byte [ecx + 1]
inc ecx
inc edi
cmp edx, 0x30
je 0x496f54
mov dword [esp + 0x14], edi
mov dword [esp + 0x38], ebx
xor eax, eax
test byte [edx + 0x4fe3f8], 3
je 0x496fa0
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 + 0x4fe3f8], 3
mov ecx, ebx
jne 0x496f76
jmp 0x496fa4
mov ebx, ecx
xor edi, edi
mov dword [esp + 0x34], ebx
mov ecx, ebx
sub ecx, dword [esp + 0x14]
cmp ecx, 0x13
jge 0x498aca
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 0x498991
cmp edi, 0x135
sbb eax, 0
jge 0x49899b
mov dword [esp + 0x9c], edi
test dword [esp + 0x24], 0xffe00000
jne 0x497060
cmp edi, 0xffffffea
jl 0x497060
cmp edi, 0x16
jg 0x497060
movd xmm1, edx
movd xmm0, dword [esp + 0x24]
punpckldq xmm1, xmm0
punpckldq xmm1, xmmword [0x4fdd90]
subpd xmm1, xmmword [0x4fdda0]
movapd xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm0, xmm1
test edi, edi
mov edx, dword [esp + 8]
js 0x4972cf
mulsd xmm0, qword [edi*8 + 0x4fe340]
jmp 0x4972dd
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 0x4989b6
test al, al
je 0x4989c0
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 + 0x4ffa68]
mov dword [esp + 0x60], eax
mul edi
mov dword [esp + 0x7c], eax
mov dword [esp + 0x50], edx
mov eax, dword [ecx + 0x4ffa6c]
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 0x497174
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x44]
jmp 0x49724a
mov dword [esp + 0xb8], edx
mov dword [esp + 0x38], ebx
mov eax, dword [esp + 0x18]
add eax, eax
mov ebx, dword [eax*8 + 0x4ffa74]
mov dword [esp + 0x6c], ebx
mov eax, dword [eax*8 + 0x4ffa70]
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 0x49730e
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 0x49668c
shl edi, 3
mov eax, 0x4fe340
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 [0x4fddb0]
xorpd xmm1, xmm0
cmp bl, 0x2d
je 0x497304
movapd xmm1, xmm0
movsd qword [eax + 0x18], xmm1
jmp 0x497630
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 0x498b69
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 0x4975cf
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 0x498be8
shrd edx, edi, 0xb
shr edi, 0xb
cmp eax, 0xfffffbc2
jle 0x498e4f
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 0x498be8
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 0x4975ff
cmp ecx, dword [esp + 0x7c]
sbb eax, dword [esp + 0x40]
jb 0x498c0b
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 0x496690
lea edi, [esi + 1]
mov dword [esp], edi
cmp dword [esp + 0x54], 0
jne 0x498f01
xor esi, esi
jmp 0x4976d7
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 0x489a19
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 0x489a19
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 0x49612f
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 0x498ec1
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 0x49771d
inc edi
mov dword [esp], edi
not eax
test al, 7
mov edx, dword [esp + 8]
jne 0x495c7f
jmp 0x496690
mov ecx, edi
cmp dl, 0x5c
jne 0x497b82
movzx edx, byte [edi + 1]
add edx, 0xffffffde
cmp edx, 0x53
ja case.0x49839d.35
jmp dword [edx*4 + 0x500f58]
mov byte [ecx], 0x22
jmp 0x497824
mov byte [ecx], 0xa
jmp 0x497824
mov byte [ecx], 0x2f
jmp 0x497824
mov byte [ecx], 8
jmp 0x497824
movzx eax, byte [edi + 2]
movzx edx, byte [eax + 0x4fe17d]
movzx eax, byte [edi + 3]
movzx ebx, byte [eax + 0x4fe17d]
movzx eax, byte [edi + 4]
movzx eax, byte [eax + 0x4fe17d]
mov dword [esp + 4], eax
movzx eax, byte [edi + 5]
movzx eax, byte [eax + 0x4fe17d]
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 0x495ec7
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 0x497bb2
movzx eax, word [esp + 4]
cmp eax, 0x800
jb 0x49782c
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 0x497860
mov byte [ecx], 0x5c
jmp 0x497824
mov byte [ecx], 0xd
jmp 0x497824
mov byte [ecx], 0xc
jmp 0x497824
mov byte [ecx], 9
inc ecx
add edi, 2
mov edx, edi
jmp 0x497860
cmp eax, 0x80
jb 0x49784e
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 0x497860
mov eax, dword [esp + 4]
mov byte [ecx], al
inc ecx
jmp 0x497860
cmp edi, edx
je 0x497b65
nop
movzx eax, byte [edx]
test byte [eax + 0x4fdf06], 0xc
jne 0x497aa6
movzx eax, byte [edx + 1]
test byte [eax + 0x4fdf06], 0xc
jne 0x497b75
movzx eax, byte [edx + 2]
test byte [eax + 0x4fdf06], 0xc
jne 0x497982
movzx eax, byte [edx + 3]
test byte [eax + 0x4fdf06], 0xc
jne 0x497993
movzx eax, byte [edx + 4]
test byte [eax + 0x4fdf06], 0xc
jne 0x4979a2
movzx eax, byte [edx + 5]
test byte [eax + 0x4fdf06], 0xc
jne 0x4979b1
movzx eax, byte [edx + 6]
test byte [eax + 0x4fdf06], 0xc
jne 0x4979c8
movzx eax, byte [edx + 7]
test byte [eax + 0x4fdf06], 0xc
jne 0x4979df
movzx eax, byte [edx + 8]
test byte [eax + 0x4fdf06], 0xc
jne 0x4979f2
movzx eax, byte [edx + 9]
test byte [eax + 0x4fdf06], 0xc
jne 0x497a05
movzx eax, byte [edx + 0xa]
test byte [eax + 0x4fdf06], 0xc
jne 0x497a20
movzx eax, byte [edx + 0xb]
test byte [eax + 0x4fdf06], 0xc
jne 0x497a38
movzx eax, byte [edx + 0xc]
test byte [eax + 0x4fdf06], 0xc
jne 0x497a4e
movzx eax, byte [edx + 0xd]
test byte [eax + 0x4fdf06], 0xc
jne 0x497a64
movzx eax, byte [edx + 0xe]
test byte [eax + 0x4fdf06], 0xc
jne 0x497a82
movzx eax, byte [edx + 0xf]
test byte [eax + 0x4fdf06], 0xc
movupd xmm0, xmmword [edx]
movupd xmmword [ecx], xmm0
jne 0x497aa0
add edx, 0x10
add ecx, 0x10
jmp 0x497860
movzx eax, word [edx]
add edx, 2
mov word [ecx], ax
add ecx, 2
jmp 0x497aa6
mov eax, dword [edx]
add edx, 3
mov dword [ecx], eax
add ecx, 3
jmp 0x497aa6
mov eax, dword [edx]
add edx, 4
mov dword [ecx], eax
add ecx, 4
jmp 0x497aa6
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 0x497aa8
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 0x497aa8
movsd xmm0, qword [edx]
add edx, 7
movsd qword [ecx], xmm0
add ecx, 7
jmp 0x497aa6
movsd xmm0, qword [edx]
add edx, 8
movsd qword [ecx], xmm0
add ecx, 8
jmp 0x497aa6
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 0x497aa8
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 0x497aa8
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 0x497aa8
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 0x497aa8
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 0x497aa8
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 0x497aa8
add edx, 0xf
add ecx, 0xf
mov edi, edx
movzx edx, byte [edi]
test dl, dl
jns 0x497732
mov eax, dword [edi]
mov edx, eax
and edx, 0xc0c0f0
cmp edx, 0x8080e0
jne 0x497af6
mov edx, edi
mov ebx, eax
and ebx, 0x200f
je 0x497af8
cmp ebx, 0x200d
je 0x497af8
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 0x497ac7
jmp 0x497af8
mov edx, edi
test al, al
jns 0x497860
mov ebx, eax
and ebx, 0xc0e0
cmp ebx, 0x80c0
jne 0x497b30
mov ebx, eax
and ebx, 0x1e
je 0x497b30
mov word [ecx], ax
add ecx, 2
mov eax, dword [edx + 2]
add edx, 2
jmp 0x497b00
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 0x497857
mov ebx, eax
and ebx, 0x3007
je 0x497857
test al, 4
je 0x497b25
mov ebx, eax
and ebx, 0x3003
je 0x497b25
jmp 0x497857
cmp byte [esp + 0x98], 0
je 0x495eb2
mov edx, edi
movzx eax, word [edx]
mov word [ecx], ax
inc edx
inc ecx
jmp 0x497aa6
movzx eax, dl
cmp eax, 0x22
je 0x498b09
cmp byte [esp + 0x98], 0
je 0x495e9d
cmp edi, dword [esp + 0x84]
jae 0x495f2f
inc edi
mov byte [ecx], dl
inc ecx
jmp 0x497828
mov eax, dword [esp + 4]
and eax, 0xfc00
cmp eax, 0xd800
jne 0x495edc
movzx eax, word [edx]
cmp eax, 0x755c
jne 0x495ef1
movzx eax, byte [edi + 8]
movzx eax, byte [eax + 0x4fe17d]
mov dword [esp + 0xc], eax
movzx eax, byte [edi + 9]
movzx eax, byte [eax + 0x4fe17d]
mov dword [esp + 0x24], eax
movzx eax, byte [edi + 0xa]
movzx eax, byte [eax + 0x4fe17d]
mov dword [esp + 0x34], eax
movzx eax, byte [edi + 0xb]
movzx eax, byte [eax + 0x4fe17d]
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 0x495f0b
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 0x495f1d
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 0x497828
add eax, edi
inc eax
mov dword [esp + 0x64], str.no_digit_after_exponent_sign
mov dword [esp], eax
jmp 0x495c14
cmp eax, 0x30
jne 0x499c95
mov eax, dword [esp + 0x1c]
lea edi, [eax + 1]
movzx eax, byte [eax + 1]
movzx ecx, byte [eax + 0x4fe3f8]
test cl, 0x33
jne 0x499cb6
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 0x496689
mov ecx, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x14], ecx
test byte [edx + 0x4fe3f8], 0x30
mov dword [esp + 4], eax
jne 0x499d15
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 0x4972c7
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 2
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x498255
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 0x499d8f
jmp 0x496f1c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 3
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x498255
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 0x499dd8
jmp 0x496f1c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 4
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x498255
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 0x499e21
jmp 0x496f1c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 5
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x498255
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 0x499e6a
jmp 0x496f1c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 6
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x498255
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 0x499eb3
jmp 0x496f1c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 7
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x498255
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 0x499efc
jmp 0x496f1c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 8
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x498255
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 0x499f45
jmp 0x496f1c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 9
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x498255
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 0x499f8e
jmp 0x496f1c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 0xa
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x498255
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 0x499fd7
jmp 0x496f1c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 0xb
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x498255
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 0x49a020
jmp 0x496f1c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 0xc
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x498255
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 0x49a069
jmp 0x496f1c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 0xd
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x498255
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 0x49a0b2
jmp 0x496f1c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 0xe
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x498255
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 0x49a0fb
jmp 0x496f1c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 0xf
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x498255
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 0x49a144
jmp 0x496f1c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 0x10
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x498255
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 0x49a18d
jmp 0x496f1c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 0x11
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe3f8], 0x30
je 0x498255
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 0x49a1d6
jmp 0x496f1c
mov edi, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x1c]
add eax, 0x12
mov dword [esp + 0x14], eax
test byte [edx + 0x4fe3f8], 0x30
jne 0x49a2fe
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 0x4972c7
mov ecx, dword [ebp + 0x10]
test cl, 0x10
je 0x4917cd
movzx ecx, al
or ecx, 0x20
cmp ecx, 0x6e
jne 0x4917cd
movzx ecx, ah
or ecx, 0x20
cmp ecx, 0x61
jne 0x4917cd
shr eax, 0x10
movzx eax, al
or eax, 0x20
cmp eax, 0x6e
je 0x498a88
jmp 0x4917cd
movzx eax, byte [esi + 1]
mov ecx, eax
or ecx, 0x20
cmp ecx, 0x6e
jne 0x498a6c
movzx ecx, byte [esi + 2]
or ecx, 0x20
cmp ecx, 0x66
jne 0x498a6c
lea eax, [esi + 3]
movzx ecx, byte [esi + 3]
or ecx, 0x20
cmp ecx, 0x69
jne 0x49833e
movzx ecx, byte [esi + 4]
or ecx, 0x20
cmp ecx, 0x6e
jne 0x49833e
movzx ecx, byte [esi + 5]
or ecx, 0x20
cmp ecx, 0x69
jne 0x49833e
movzx ecx, byte [esi + 6]
or ecx, 0x20
cmp ecx, 0x74
jne 0x49833e
movzx ecx, byte [esi + 7]
or ecx, 0x20
cmp ecx, 0x79
jne 0x49833e
lea eax, [esi + 8]
mov dword [esp], eax
cmp dword [esp + 0x28], 0
je 0x498b49
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
test ecx, ecx
je 0x498359
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 0x49668c
mov ecx, edi
cmp dl, 0x5c
jne 0x4987e2
movzx edx, byte [edi + 1]
add edx, 0xffffffde
cmp edx, 0x53
ja case.0x49839d.35
jmp dword [edx*4 + 0x5011c4]
mov byte [ecx], 0x22
jmp 0x498476
mov byte [ecx], 0xa
jmp 0x498476
mov byte [ecx], 0x2f
jmp 0x498476
mov byte [ecx], 8
jmp 0x498476
movzx eax, byte [edi + 2]
movzx edx, byte [eax + 0x4fe17d]
movzx eax, byte [edi + 3]
movzx ebx, byte [eax + 0x4fe17d]
movzx eax, byte [edi + 4]
movzx eax, byte [eax + 0x4fe17d]
mov dword [esp + 4], eax
movzx eax, byte [edi + 5]
movzx eax, byte [eax + 0x4fe17d]
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 0x495ec7
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 0x498812
movzx eax, word [esp + 4]
cmp eax, 0x800
jb 0x49847e
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 0x4984c0
mov byte [ecx], 0x5c
jmp 0x498476
mov byte [ecx], 0xd
jmp 0x498476
mov byte [ecx], 0xc
jmp 0x498476
mov byte [ecx], 9
inc ecx
add edi, 2
mov edx, edi
jmp 0x4984c0
cmp eax, 0x80
jb 0x4984a0
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 0x4984c0
mov eax, dword [esp + 4]
mov byte [ecx], al
inc ecx
jmp 0x4984c0
cmp edi, edx
je 0x4987c5
nop word cs:[eax + eax]
movzx eax, byte [edx]
test byte [eax + 0x4fdf06], 0xc
jne 0x498706
movzx eax, byte [edx + 1]
test byte [eax + 0x4fdf06], 0xc
jne 0x4987d5
movzx eax, byte [edx + 2]
test byte [eax + 0x4fdf06], 0xc
jne 0x4985e2
movzx eax, byte [edx + 3]
test byte [eax + 0x4fdf06], 0xc
jne 0x4985f3
movzx eax, byte [edx + 4]
test byte [eax + 0x4fdf06], 0xc
jne 0x498602
movzx eax, byte [edx + 5]
test byte [eax + 0x4fdf06], 0xc
jne 0x498611
movzx eax, byte [edx + 6]
test byte [eax + 0x4fdf06], 0xc
jne 0x498628
movzx eax, byte [edx + 7]
test byte [eax + 0x4fdf06], 0xc
jne 0x49863f
movzx eax, byte [edx + 8]
test byte [eax + 0x4fdf06], 0xc
jne 0x498652
movzx eax, byte [edx + 9]
test byte [eax + 0x4fdf06], 0xc
jne 0x498665
movzx eax, byte [edx + 0xa]
test byte [eax + 0x4fdf06], 0xc
jne 0x498680
movzx eax, byte [edx + 0xb]
test byte [eax + 0x4fdf06], 0xc
jne 0x498698
movzx eax, byte [edx + 0xc]
test byte [eax + 0x4fdf06], 0xc
jne 0x4986ae
movzx eax, byte [edx + 0xd]
test byte [eax + 0x4fdf06], 0xc
jne 0x4986c4
movzx eax, byte [edx + 0xe]
test byte [eax + 0x4fdf06], 0xc
jne 0x4986e2
movzx eax, byte [edx + 0xf]
test byte [eax + 0x4fdf06], 0xc
movupd xmm0, xmmword [edx]
movupd xmmword [ecx], xmm0
jne 0x498700
add edx, 0x10
add ecx, 0x10
jmp 0x4984c0
movzx eax, word [edx]
add edx, 2
mov word [ecx], ax
add ecx, 2
jmp 0x498706
mov eax, dword [edx]
add edx, 3
mov dword [ecx], eax
add ecx, 3
jmp 0x498706
mov eax, dword [edx]
add edx, 4
mov dword [ecx], eax
add ecx, 4
jmp 0x498706
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 0x498708
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 0x498708
movsd xmm0, qword [edx]
add edx, 7
movsd qword [ecx], xmm0
add ecx, 7
jmp 0x498706
movsd xmm0, qword [edx]
add edx, 8
movsd qword [ecx], xmm0
add ecx, 8
jmp 0x498706
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 0x498708
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 0x498708
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 0x498708
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 0x498708
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 0x498708
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 0x498708
add edx, 0xf
add ecx, 0xf
mov edi, edx
movzx edx, byte [edi]
test dl, dl
jns 0x498384
mov eax, dword [edi]
mov edx, eax
and edx, 0xc0c0f0
cmp edx, 0x8080e0
jne 0x498756
mov edx, edi
mov ebx, eax
and ebx, 0x200f
je 0x498758
cmp ebx, 0x200d
je 0x498758
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 0x498727
jmp 0x498758
mov edx, edi
test al, al
jns 0x4984c0
mov ebx, eax
and ebx, 0xc0e0
cmp ebx, 0x80c0
jne 0x498790
mov ebx, eax
and ebx, 0x1e
je 0x498790
mov word [ecx], ax
add ecx, 2
mov eax, dword [edx + 2]
add edx, 2
jmp 0x498760
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 0x4984a9
mov ebx, eax
and ebx, 0x3007
je 0x4984a9
test al, 4
je 0x498785
mov ebx, eax
and ebx, 0x3003
je 0x498785
jmp 0x4984a9
cmp byte [esp + 0x98], 0
je 0x495eb2
mov edx, edi
movzx eax, word [edx]
mov word [ecx], ax
inc edx
inc ecx
jmp 0x498706
movzx eax, dl
cmp eax, 0x22
je 0x498b5f
cmp byte [esp + 0x98], 0
je 0x495e9d
cmp edi, dword [esp + 0x84]
jae 0x495f2f
inc edi
mov byte [ecx], dl
inc ecx
jmp 0x49847a
mov eax, dword [esp + 4]
and eax, 0xfc00
cmp eax, 0xd800
jne 0x495edc
movzx eax, word [edx]
cmp eax, 0x755c
jne 0x495ef1
movzx eax, byte [edi + 8]
movzx eax, byte [eax + 0x4fe17d]
mov dword [esp + 0xc], eax
movzx eax, byte [edi + 9]
movzx eax, byte [eax + 0x4fe17d]
mov dword [esp + 0x24], eax
movzx eax, byte [edi + 0xa]
movzx eax, byte [eax + 0x4fe17d]
mov dword [esp + 0x34], eax
movzx eax, byte [edi + 0xb]
movzx eax, byte [eax + 0x4fe17d]
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 0x495f0b
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 0x495f1d
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 0x49847a
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 fcn.0049ea60
add esp, 0xc
mov ecx, eax
xor cl, 1
test al, al
cmovne edi, esi
mov eax, 0x4fe006
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 0x49681c
xor eax, eax
cmp bl, 0x2d
jmp 0x498ad8
mov eax, dword [ebp + 0x10]
test al, al
js 0x49a32c
test al, 0x10
je 0x498b26
cmp bl, 0x2d
jmp 0x49a364
xor eax, eax
test al, al
jne 0x49708e
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 + 0x4ffa6c]
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0x4ffa68]
mov dword [esp + 0x60], eax
mov eax, dword [edi + 0x4ffa74]
mov dword [esp + 0x6c], eax
jmp 0x497312
lea eax, [esp + 0x64]
mov ecx, esp
mov edx, dword [esp + 0x28]
push eax
push dword [esp + 0x14]
push dword [ebp + 0x10]
call fcn.0049ed80
add esp, 0xc
test al, al
mov edx, dword [esp + 8]
jne 0x496690
jmp 0x495c18
cmp dl, 0x4e
jne case.0x4887b0.74
movzx eax, al
or eax, 0x20
cmp eax, 0x61
jne case.0x4887b0.74
movzx eax, byte [esi + 2]
or eax, 0x20
cmp eax, 0x6e
jne case.0x4887b0.74
lea eax, [esi + 3]
mov dword [esp], eax
cmp dword [esp + 0x28], 0
je 0x498aff
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
test ecx, ecx
je 0x498aa2
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 0x49668c
mov eax, dword [ebp + 0x10]
jmp 0x4967c2
cmp byte [esp + 0x1c], 0x2d
jne 0x498b13
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 0x4972c3
movapd xmm0, xmmword [0x4fddc0]
jmp 0x498b51
mov ebx, 5
jmp 0x49636e
mov eax, dword [ebp + 0x10]
test al, al
js 0x49a32c
test al, 0x10
jne 0x49a35f
mov dword [esp + 0x64], str.number_is_infinity_when_parsed_as_double
jmp 0x495c14
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
test eax, eax
je 0x498b40
mov byte [eax], 0
mov edi, dword [esp + 0xc]
jmp 0x498e96
movapd xmm0, xmmword [0x4fddd0]
mov eax, dword [esp + 0x20]
movupd xmmword [eax + 0x10], xmm0
jmp 0x49668c
mov ebx, 5
jmp 0x496662
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 0x49aa0c
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 0x497478
mov eax, dword [ebp + 0x10]
test al, al
js 0x49a3e2
test al, 0x10
jne 0x49a41e
mov dword [esp + 0x64], str.number_is_infinity_when_parsed_as_double
mov dword [esp], esi
jmp 0x495c14
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 fcn.0049efa0
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 0x498f25
cmp eax, 0x13
jb 0x4990d2
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x14], ecx
jmp 0x498ce2
mov ecx, dword [esp + 0x44]
lea eax, [ecx - 0x13]
cmp ecx, 0x25
jle 0x4990c7
mov dword [esp + 0x44], eax
cmp dword [esp + 0x14], 0
je 0x498d0e
xor ecx, ecx
mov edx, ecx
mov eax, dword [esp + ecx*8 + 0xc8]
or eax, dword [esp + ecx*8 + 0xcc]
jne 0x498d10
mov eax, ecx
inc eax
mov ecx, eax
cmp dword [esp + 0x14], eax
jne 0x498cef
jmp 0x498cd2
xor ecx, ecx
cmp ecx, dword [esp + 0x14]
jae 0x498cd2
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 0x498d26
mov eax, dword [esp + 0x4c]
or eax, dword [esp + 0x3c]
je 0x498cd2
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 0x498cd2
xor ecx, ecx
mov dword [esp + 0x58], 0
cmp eax, 0xfffffb8f
jb 0x4975cf
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 0x4975cf
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
test eax, eax
je 0x498e92
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 0x496689
mov ebx, dword [esp + 8]
jmp 0x495d5d
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
test ecx, ecx
je 0x498ed7
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 0x49668c
mov eax, dword [ebp + 0x10]
test al, 4
jne 0x4976d3
cmp byte [edi], 0x2c
je 0x491771
mov dword [esp], esi
cmp byte [esi], 0x2c
lea esi, [esi - 1]
jne 0x498f15
jmp 0x49176e
neg eax
mov dword [esp + 0x50], 1
cmp eax, 0x13
jb 0x49925a
mov dword [esp + 0x50], 1
mov dword [esp + 0x14], 1
jmp 0x498f5a
mov ecx, dword [esp + 0x44]
lea eax, [ecx - 0x13]
cmp ecx, 0x25
jle 0x49923f
mov dword [esp + 0x44], eax
cmp dword [esp + 0x14], 0
je 0x498f86
xor ecx, ecx
mov edx, ecx
mov eax, dword [esp + ecx*8 + 0x2d0]
or eax, dword [esp + ecx*8 + 0x2d4]
jne 0x498f88
mov eax, ecx
inc eax
mov ecx, eax
cmp dword [esp + 0x14], eax
jne 0x498f67
jmp 0x498f4a
xor ecx, ecx
cmp ecx, dword [esp + 0x14]
jae 0x498f4a
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 0x498f9e
mov eax, dword [esp + 0x4c]
or eax, dword [esp + 0x3c]
je 0x498f4a
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 0x498f4a
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x5c], 1
test eax, eax
je 0x4993a4
mov ecx, dword [eax*8 + 0x500ebc]
mov dword [esp + 0x44], ecx
mov eax, dword [eax*8 + 0x500eb8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc0]
xor edi, edi
mov dword [esp + 0x4c], eax
test eax, eax
je 0x499127
xor edi, edi
mov eax, dword [esp + edi*8 + 0xc8]
or eax, dword [esp + edi*8 + 0xcc]
jne 0x499127
inc edi
cmp dword [esp + 0x4c], edi
jne 0x49910b
jmp 0x4993a4
cmp edi, dword [esp + 0x4c]
jae 0x4993a4
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 0x499141
mov eax, dword [esp + 0x18]
or eax, dword [esp + 0x14]
je 0x4993a4
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 0x4993a4
test eax, eax
je 0x49939c
mov dword [esp + 0x5c], 0
cmp dword [esp + 0x50], 0
je 0x4993a4
mov ecx, dword [eax*8 + 0x500ebc]
mov dword [esp + 0x30], ecx
mov eax, dword [eax*8 + 0x500eb8]
mov dword [esp + 0xc], eax
xor edi, edi
mov eax, dword [esp + edi*8 + 0x2d0]
or eax, dword [esp + edi*8 + 0x2d4]
jne 0x49928e
inc edi
cmp dword [esp + 0x50], edi
jne 0x499272
jmp 0x49939c
cmp edi, dword [esp + 0x50]
jae 0x49939c
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 0x4992a8
mov eax, dword [esp + 0x18]
or eax, dword [esp + 0x14]
je 0x49939c
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 0x4993a4
mov eax, dword [esp + 0x50]
mov dword [esp + 0x5c], eax
cmp dword [esp + 0x6c], 0
jle 0x499645
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 0x49a44f
mov eax, dword [esp + 0x5c]
mov dword [esp + eax*8 + 0x2d4], 0
mov dword [esp + eax*8 + 0x2d0], 0
test eax, eax
je 0x4995e0
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 0x499b16
mov eax, dword [esp + 4]
mov ecx, eax
test al, 1
je 0x49948f
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 0x4995e0
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 0x4994ae
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 0x499a4e
jmp 0x499a64
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 0x49a49f
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 0x4999ef
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 0x499818
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 0x499818
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 0x499818
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 0x499818
mov edi, dword [esp + 0x50]
lea edx, [edi - 1]
mov dword [esp + 4], edi
cmp edx, 0x1fffffff
ja 0x499818
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 0x499818
add ecx, 0xfffffff8
mov edx, dword [esp + 0x50]
mov dword [esp + 4], edx
cmp ecx, 0x20
jb 0x499818
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 0x4997af
cmp dword [esp + 0x50], ebx
je 0x4999ef
mov eax, dword [esp + 4]
mov ecx, eax
test al, 1
je 0x49989e
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 0x4999ef
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 0x4998bd
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 0x499a64
mov eax, dword [esp + 0x44]
shl eax, 3
push eax
push 0
push dword [esp + 0x78]
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0xc], 0
mov eax, 0
cmp ecx, dword [esp + 0x5c]
jb 0x499acc
mov al, 1
ja 0x499acc
mov edx, ecx
sub edx, 1
jb 0x499c81
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 0x499a84
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 0x49a39f
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 0x49762c
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 0x499409
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 0x499409
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 0x499409
mov eax, dword [esp + 0x5c]
lea edx, [eax - 1]
mov dword [esp + 4], eax
cmp edx, 0x1fffffff
ja 0x499409
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 0x499409
add ecx, 0xfffffff8
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
cmp ecx, 0x20
jb 0x499409
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 0x499c0f
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x5c], eax
jne 0x499409
jmp 0x4995e0
mov ecx, dword [esp + 0x1c]
and ecx, 1
mov dword [esp + 0xc], 0
jmp 0x499acf
mov edi, eax
mov eax, dword [ebp + 0x10]
test al, 0x10
jne 0x49a7b3
mov dword [esp + 0x64], str.no_digit_after_minus_sign
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
jmp 0x495c14
cmp al, 0x2e
jne 0x49a8a0
mov eax, dword [esp + 0x1c]
movzx ecx, byte [eax + 2]
test byte [ecx + 0x4fe3f8], 3
je 0x49a342
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 0x499cdb
mov eax, ecx
movzx ecx, byte [ecx + 0x4fe3f8]
test cl, 3
je 0x49a89c
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 0x499d46
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 0x496f1c
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 0x49a392
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 0x49a392
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 0x49a392
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 0x49a392
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 0x49a392
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 0x49a392
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 0x49a392
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 0x49a392
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 0x49a392
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 0x49a392
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 0x49a392
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 0x49a392
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 0x49a392
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 0x49a392
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 0x49a392
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 0x49a392
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 0x49a392
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 0x49a669
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 + 0x4fe3f8], 3
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x14]
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x38]
jne 0x496dfd
mov eax, dword [esp + 0xc]
inc eax
cmp eax, dword [esp + 0x30]
je 0x49a34b
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 + 0x4fe3f8], 0x20
jne 0x49a76a
mov dword [esp + 0x4c], 0
cmp eax, 0x159
jge 0x49a783
mov eax, dword [esp + 0x30]
mov dword [esp + 0x34], eax
mov edx, dword [esp + 4]
jmp 0x497001
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 0x49a21f
jmp 0x496f1c
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
test eax, eax
je 0x49a339
mov byte [eax], 0
mov edi, dword [esp + 0x34]
jmp 0x498e96
mov eax, dword [esp + 0x1c]
jmp 0x495bf9
mov dword [esp + 0x64], str.no_digit_after_decimal_point
mov eax, dword [esp + 0x30]
mov dword [esp], eax
jmp 0x495c14
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 0x4972c3
mov eax, dword [esp + 0x14]
mov dword [esp + 0xc], eax
jmp 0x49a296
mov eax, dword [ebp + 0x10]
test al, al
js 0x49a3e2
test al, 0x10
je 0x498bfb
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 0x49762c
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
test eax, eax
je 0x49a3ef
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 0x49762c
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 0x49762c
cmp dword [esp + 0x5c], 0
je 0x49a6d1
mov ecx, dword [esp + 0x5c]
mov eax, ecx
cmp ecx, 0x20
jae 0x49a5a5
lea ebx, [eax - 1]
mov edi, eax
and edi, 3
je 0x49a67a
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 0x49a484
jmp 0x49a67c
cmp dword [esp + 0x50], 0
je 0x49a740
mov ecx, dword [esp + 0x50]
mov eax, ecx
cmp ecx, 0x20
jb 0x49a56f
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 0x49a56f
mov eax, dword [esp + 0x50]
lea edx, [esp + eax*8]
add edx, 0xc0
mov ebx, edx
sub ebx, edi
cmp ebx, edx
ja 0x49a56f
mov eax, dword [esp + 0x50]
lea edi, [eax - 1]
cmp edi, 0x1fffffff
ja 0x49a56f
sub edx, ecx
mov eax, dword [esp + 0x50]
cmp edx, 0x20
jb 0x49a56f
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 0x49a544
mov ecx, dword [esp + 4]
cmp dword [esp + 0x50], ecx
je 0x49a740
lea ebx, [eax - 1]
mov edi, eax
and edi, 3
je 0x49a6e9
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 0x49a58a
jmp 0x49a6eb
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 0x49a469
mov eax, dword [esp + 0x5c]
lea edx, [esp + eax*8]
add edx, 0x2c8
mov ebx, edx
sub ebx, edi
cmp ebx, edx
ja 0x49a469
mov eax, dword [esp + 0x5c]
lea edi, [eax - 1]
cmp edi, 0x1fffffff
ja 0x49a469
sub edx, ecx
mov eax, dword [esp + 0x5c]
cmp edx, 0x20
jb 0x49a469
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 0x49a63c
mov ecx, dword [esp + 4]
cmp dword [esp + 0x5c], ecx
jne 0x49a469
jmp 0x49a6d1
mov eax, dword [esp + 0x14]
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x38]
jmp 0x49a296
mov ecx, eax
cmp ebx, 3
jb 0x49a6d1
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 0x49a68f
mov eax, dword [esp + 0x44]
add dword [esp + 0x5c], eax
cmp dword [esp + 0x6c], 0x40
jae 0x499a4e
jmp 0x499a64
mov ecx, eax
cmp ebx, 3
jb 0x49a740
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 0x49a6fe
mov eax, dword [esp + 0x50]
add eax, dword [esp + 0x44]
mov dword [esp + 0xc0], eax
cmp dword [esp + 0x6c], 0x40
jb 0x499a64
lea eax, [esp + 0xc8]
mov dword [esp + 0x70], eax
jmp 0x499a4e
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 0x496f1c
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 0x4972c7
xor ecx, ecx
mov eax, ebx
cmp al, 0x2d
sete al
lea edx, [edi - 0x49]
cmp edx, 0x25
ja case.0x49a7d0.74
mov cl, al
mov eax, dword [esp + 0x1c]
sub eax, ecx
jmp dword [edx*4 + 0x5010a8]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [ecx + 1]
or ecx, 0x20
cmp ecx, 0x6e
jne 0x49a8e4
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [ecx + 2]
or ecx, 0x20
cmp ecx, 0x66
jne 0x49a8e4
mov edx, dword [esp + 0x1c]
lea ecx, [edx + 3]
movzx edx, byte [edx + 3]
or edx, 0x20
cmp edx, 0x69
jne 0x49a859
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 4]
or edx, 0x20
cmp edx, 0x6e
jne 0x49a859
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 5]
or edx, 0x20
cmp edx, 0x69
jne 0x49a859
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 6]
or edx, 0x20
cmp edx, 0x74
jne 0x49a859
mov edx, dword [esp + 0x1c]
movzx edx, byte [edx + 7]
or edx, 0x20
cmp edx, 0x79
jne 0x49a859
mov ecx, dword [esp + 0x1c]
add ecx, 8
cmp byte [esp + 0x48], 0
je 0x49a993
mov edx, dword [esp + 0x28]
mov edx, dword [edx]
test edx, edx
je 0x49a871
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 0x49a9bf
mov edi, dword [esp + 0x1c]
test cl, 3
jne 0x49a8d3
test cl, 0x20
jne 0x49a9c7
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 0x497d14
mov dword [esp + 0x64], str.number_with_leading_zero_is_not_allowed
dec edi
mov dword [esp], edi
jmp 0x495c14
cmp edi, 0x4e
jne case.0x49a7d0.74
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [ecx + 1]
or ecx, 0x20
cmp ecx, 0x61
jne case.0x49a7d0.74
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [ecx + 2]
or ecx, 0x20
cmp ecx, 0x6e
jne case.0x49a7d0.74
add dword [esp + 0x1c], 3
cmp byte [esp + 0x48], 0
je 0x49a95e
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
test ecx, ecx
je 0x49a92e
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 0x496c50
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 0x4972c7
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 0x49668c
movzx eax, byte [edi + 1]
movzx eax, byte [eax + 0x4fe3f8]
and al, 0xc
cmp al, 1
sbb edi, 0
movzx eax, byte [edi + 2]
add edi, 2
test byte [eax + 0x4fe3f8], 3
je 0x49a9fc
movzx eax, byte [edi + 1]
inc edi
test byte [eax + 0x4fe3f8], 3
jne 0x49a9e9
jmp 0x49a8ae
mov dword [esp + 0x64], str.no_digit_after_exponent_sign
mov dword [esp], edi
jmp 0x495c14
mov ebx, dword [esp + 0x38]
mov eax, edx
jmp 0x497478
mov edi, esp
mov dword [esp + 8], ecx
mov esi, dword [esp]
movzx eax, byte [esi]
cmp eax, 0x5d
je 0x49aa97
cmp eax, 0x2c
je 0x49aa82
test byte [eax + 0x4fdf06], 1
jne 0x49aa60
mov eax, dword [ebp + 0x10]
test al, 8
je 0x4967c2
mov ecx, edi
mov esi, edx
call fcn.0049ac40
mov edx, esi
test al, al
mov ecx, dword [esp + 8]
jne 0x49aa1d
jmp 0x491703
inc esi
nop word cs:[eax + eax]
mov dword [esp], esi
movzx eax, byte [esi]
inc esi
test byte [eax + 0x4fdf06], 1
jne 0x49aa70
jmp 0x49aa1d
inc esi
mov dword [esp], esi
mov dword [esp + 0x10], edx
mov esi, dword [esp + 0x54]
mov edx, dword [esp + 0x1c]
jmp 0x4886c7
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 0x49ab56
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 0x49aa17
mov edi, esp
mov esi, dword [esp]
movzx eax, byte [esi]
cmp eax, 0x2c
je 0x49ab49
mov dword [esp + 8], ecx
cmp eax, 0x7d
je 0x49abcb
mov dword [esp + 4], edx
test byte [eax + 0x4fdf06], 1
jne 0x49ab2e
mov eax, dword [ebp + 0x10]
test al, 8
je 0x4967c2
mov ecx, edi
call fcn.0049ac40
test al, al
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
jne 0x49aae6
jmp 0x491703
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 + 0x4fdf06], 1
jne 0x49ab37
jmp 0x49aae6
inc esi
mov dword [esp], esi
mov dword [esp + 0x10], edx
jmp 0x48cec8
mov ebx, dword [esp + 8]
mov eax, dword [ebp + 0x10]
test al, 2
jne 0x49ab6e
cmp edi, dword [esp + 0x84]
jb 0x49abef
cmp byte [esp + 0x80], 0
je 0x49ab85
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test eax, eax
je 0x49ab85
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 0x495e0e
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 0x49aab6
test al, 8
jne 0x49ac23
movzx eax, byte [edi]
test byte [eax + 0x4fdf06], 1
je 0x49ac11
inc edi
mov dword [esp], edi
movzx eax, byte [edi]
inc edi
test byte [eax + 0x4fdf06], 1
jne 0x49ac00
dec edi
cmp edi, dword [esp + 0x84]
jae 0x49ab6e
jmp 0x495e2c
mov ecx, esp
call fcn.0049ac40
mov edi, dword [esp]
movzx eax, word [edi]
cmp eax, 0x2a2f
je 0x495e8f
jmp 0x49ac11