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

Disassembly:
sub esp, 0x100
mov eax, dword [0x4660c0]
xor eax, esp
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0x110]
push esi
mov esi, dword [esp + 0x108]
push edi
mov edi, dword [esp + 0x110]
push 0x2c
mov dword [esp + 0xc], eax
lea eax, [esp + 0x3c]
push 0
push eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x38], 0
call fcn.00429190
mov eax, dword [esp + 0x120]
xorps xmm0, xmm0
add esp, 0xc
mov dword [esp + 0x34], 0
movsd qword [esp + 0x14], xmm0
movsd qword [esp + 0xc], xmm0
cmp eax, 3
jb 0x40252a
cmp byte [edi], 0xef
jne 0x40252a
cmp byte [edi + 2], 0xbb
jne 0x40252a
cmp byte [edi + 4], 0xbf
jne 0x40252a
add edi, 6
sub eax, 3
mov dword [esp + 0x1c], edi
movups xmm1, xmmword [esi]
lea ecx, [edi + eax*2]
mov edx, 0x403a20
movq xmm0, qword [esi + 0x10]
movups xmmword [esp + 0x3c], xmm1
mov byte [esp + 0x84], 0
psrldq xmm1, 8
movd eax, xmm1
mov dword [esp + 0x7c], ecx
movq qword [esp + 0x4c], xmm0
test eax, eax
mov dword [esp + 0x54], 1
cmove eax, edx
mov edx, 0x403a40
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x48]
test eax, eax
cmove eax, edx
mov dword [esp + 0x48], eax
nop dword [eax]
mov esi, dword [esp + 0x1c]
xor edi, edi
mov edx, 8
mov dword [esp + 0x64], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x70], edi
mov dword [esp + 0x80], edx
mov dword [esp + 0x5c], 1
mov dword [esp + 0x58], esi
mov dword [esp + 0x78], esi
cmp esi, ecx
jne 0x4025c6
xor ecx, ecx
jmp 0x4025c9
movzx ecx, word [esi]
movzx eax, cx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x24], eax
test dl, 0x20
je 0x40299b
test cx, cx
je 0x4034bf
mov eax, dword [esp + 0x74]
cmp eax, 0xfffffff7
ja 0x4036bd
test dl, 0x10
je 0x40292c
movzx eax, cx
and edx, 0xffffffef
add eax, 0xffffff9e
mov dword [esp + 0x80], edx
cmp eax, 0x13
ja case.0x40261c.99
movzx eax, byte [eax + 0x4037c0]
jmp dword [eax*4 + 0x4037a4]
cmp dword [esp + 0x54], 0
mov eax, dword [esp + 0x74]
jne 0x4028f3
mov ecx, dword [esp + 0x64]
mov edi, 8
mov word [ecx + eax*2], di
inc eax
mov edi, dword [esp + 0x70]
add esi, 2
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x74], eax
jmp 0x4025b6
cmp dword [esp + 0x54], 0
mov eax, dword [esp + 0x74]
jne 0x4028f3
mov ecx, dword [esp + 0x64]
mov edi, 0xc
mov word [ecx + eax*2], di
inc eax
mov edi, dword [esp + 0x70]
add esi, 2
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x74], eax
jmp 0x4025b6
cmp dword [esp + 0x54], 0
mov eax, dword [esp + 0x74]
jne 0x4028f3
mov ecx, dword [esp + 0x64]
mov edi, 0xa
mov word [ecx + eax*2], di
inc eax
mov edi, dword [esp + 0x70]
add esi, 2
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x74], eax
jmp 0x4025b6
cmp dword [esp + 0x54], 0
mov eax, dword [esp + 0x74]
jne 0x4028f3
mov ecx, dword [esp + 0x64]
mov edi, 0xd
mov word [ecx + eax*2], di
inc eax
mov edi, dword [esp + 0x70]
add esi, 2
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x74], eax
jmp 0x4025b6
cmp dword [esp + 0x54], 0
mov eax, dword [esp + 0x74]
jne 0x4028f3
mov ecx, dword [esp + 0x64]
mov edi, 9
mov word [ecx + eax*2], di
inc eax
mov edi, dword [esp + 0x70]
add esi, 2
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x74], eax
jmp 0x4025b6
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
sub eax, edx
and eax, 0xfffffffe
cmp eax, 8
jle 0x4034a9
movzx eax, word [edx + 2]
lea esi, [edx + 2]
push eax
mov dword [esp + 0x5c], esi
call fcn.00403ab0
add esp, 4
mov byte [esp + 0x2b], al
cmp al, 0xff
je 0x4034a5
movzx ecx, word [esi + 2]
add esi, 2
push ecx
mov dword [esp + 0x5c], esi
call fcn.00403ab0
add esp, 4
mov byte [esp + 0x6b], al
cmp al, 0xff
je 0x4034a5
movzx ecx, word [esi + 2]
add esi, 2
push ecx
mov dword [esp + 0x5c], esi
call fcn.00403ab0
add esp, 4
mov byte [esp + 0x6a], al
cmp al, 0xff
je 0x4034a5
movzx ecx, word [esi + 2]
lea eax, [esi + 2]
push ecx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x5c], eax
call fcn.00403ab0
mov dl, al
add esp, 4
cmp dl, 0xff
je 0x4034a5
mov al, byte [esp + 0x2b]
movzx ecx, byte [esp + 0x6b]
shl al, 4
movzx esi, al
mov al, byte [esp + 0x6a]
or esi, ecx
shl al, 4
movzx eax, al
shl esi, 8
or esi, eax
movzx eax, dl
or esi, eax
mov eax, esi
and eax, 0xf800
cmp eax, 0xd800
jne 0x4028d1
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
sub eax, ecx
and eax, 0xfffffffe
cmp eax, 0xc
jle 0x40348b
add ecx, 2
mov dword [esp + 0x58], ecx
cmp word [ecx], 0x5c
jne 0x40348b
add ecx, 2
mov dword [esp + 0x58], ecx
cmp word [ecx], 0x75
jne 0x40348b
lea eax, [ecx + 2]
mov dword [esp + 0x58], eax
movzx eax, word [eax]
push eax
call fcn.00403ab0
add esp, 4
cmp al, 0xff
je 0x40348b
mov eax, dword [esp + 0x58]
add eax, 2
mov dword [esp + 0x58], eax
movzx eax, word [eax]
push eax
call fcn.00403ab0
add esp, 4
mov byte [esp + 0x6a], al
cmp al, 0xff
je 0x40348b
mov eax, dword [esp + 0x58]
add eax, 2
mov dword [esp + 0x58], eax
movzx ecx, word [eax]
push ecx
call fcn.00403ab0
add esp, 4
mov byte [esp + 0x6b], al
cmp al, 0xff
je 0x40348b
mov eax, dword [esp + 0x58]
add eax, 2
mov dword [esp + 0x78], eax
mov dword [esp + 0x58], eax
movzx ecx, word [eax]
push ecx
call fcn.00403ab0
mov dl, al
add esp, 4
cmp dl, 0xff
je 0x40348b
movzx ecx, byte [esp + 0x6a]
and esi, 0x3bf
mov al, byte [esp + 0x6b]
or esi, 0x40
shl esi, 2
and ecx, 3
or esi, ecx
shl al, 4
shl esi, 8
movzx eax, al
or esi, eax
movzx eax, dl
or esi, eax
cmp dword [esp + 0x54], 0
jne 0x4028e4
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x64]
mov word [eax + edx*2], si
mov eax, dword [esp + 0x74]
mov esi, dword [esp + 0x78]
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
inc eax
mov dword [esp + 0x74], eax
add esi, 2
jmp 0x4025b6
cmp dword [esp + 0x54], 0
mov eax, dword [esp + 0x74]
jne 0x4028f3
mov edi, dword [esp + 0x64]
mov word [edi + eax*2], cx
inc eax
mov edi, dword [esp + 0x70]
add esi, 2
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x74], eax
jmp 0x4025b6
cmp cx, 0x5c
jne 0x402948
mov ecx, dword [esp + 0x7c]
or edx, 0x10
mov dword [esp + 0x80], edx
add esi, 2
jmp 0x4025b6
cmp cx, 0x22
jne 0x402a65
cmp dword [esp + 0x54], 0
jne 0x40296b
mov edi, dword [esp + 0x64]
xor ecx, ecx
mov word [edi + eax*2], cx
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x70]
mov eax, dword [edi + 4]
and edx, 0xffffffdf
mov dword [esp + 0x80], edx
mov dword [esp + 0x64], 0
sub eax, 1
je 0x4029f3
sub eax, 4
jne 0x40299b
mov eax, dword [esp + 0x74]
or edx, 1
mov dword [edi + 8], eax
mov dword [esp + 0x80], edx
test byte [esp + 0x40], 1
mov dword [esp + 0x20], edx
je 0x402b3d
test edx, 0x6000
je 0x402ada
test edx, 0x2000
je 0x402a89
cmp cx, 0xd
je 0x4029d7
cmp cx, 0xa
je 0x4029d7
test cx, cx
jne case.0x403387.9
mov ecx, dword [esp + 0x7c]
and edx, 0xffffdfff
sub esi, 2
mov dword [esp + 0x80], edx
add esi, 2
jmp 0x4025b6
cmp dword [esp + 0x54], 0
je 0x402a1e
mov eax, dword [esp + 0x74]
or edx, 0x48
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x80], edx
lea eax, [eax*2 + 2]
add dword [edi + 0xc], eax
add esi, 2
jmp 0x4025b6
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
lea edx, [eax + eax*2]
mov eax, dword [edi + 0x10]
mov dword [ecx + edx*4], eax
mov eax, dword [edi + 8]
mov edx, dword [esp + 0x74]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0xc]
mov dword [eax + ecx*4 + 4], edx
lea eax, [edx*2 + 2]
mov edx, dword [esp + 0x80]
add dword [edi + 0x10], eax
or edx, 0x48
mov ecx, dword [esp + 0x7c]
add esi, 2
mov dword [esp + 0x80], edx
jmp 0x4025b6
cmp dword [esp + 0x54], 0
jne 0x402a78
mov edi, dword [esp + 0x64]
mov word [edi + eax*2], cx
mov edi, dword [esp + 0x70]
mov ecx, dword [esp + 0x7c]
inc eax
mov dword [esp + 0x74], eax
add esi, 2
jmp 0x4025b6
test edx, 0x4000
je 0x402b3d
test cx, cx
je 0x4034e1
cmp cx, 0x2a
mov ecx, dword [esp + 0x7c]
jne 0x403467
lea eax, [ecx - 2]
cmp esi, eax
jae 0x403467
cmp word [esi + 2], 0x2f
jne 0x403467
and edx, 0xffffbfff
add esi, 2
mov dword [esp + 0x80], edx
add esi, 2
jmp 0x4025b6
cmp cx, 0x2f
jne 0x402b3d
test dl, 0x88
jne 0x402aef
cmp dword [edi + 4], 1
jne 0x403503
mov ecx, dword [esp + 0x7c]
add esi, 2
mov dword [esp + 0x58], esi
cmp esi, ecx
je 0x403538
movzx eax, word [esi]
cmp eax, 0x2a
je 0x402b28
cmp eax, 0x2f
jne 0x403525
or edx, 0x2000
add esi, 2
mov dword [esp + 0x80], edx
jmp 0x4025b6
or edx, 0x4000
add esi, 2
mov dword [esp + 0x80], edx
jmp 0x4025b6
test dl, dl
jns 0x402b7f
test cx, cx
je 0x40346f
movzx ecx, cx
lea eax, [ecx - 9]
cmp eax, 0x17
ja case.0x402b60.11
movzx eax, byte [eax + 0x4037e0]
jmp dword [eax*4 + 0x4037d4]
inc dword [esp + 0x5c]
add esi, 2
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x60], 0
jmp 0x4025b6
test dl, 8
je 0x402fb6
movzx eax, cx
mov dword [esp + 0x24], eax
add eax, 0xfffffff7
cmp eax, 0x54
ja case.0x402b9e.11
movzx eax, byte [eax + 0x403808]
jmp dword [eax*4 + 0x4037f8]
test edi, edi
je 0x40356d
cmp dword [edi + 4], 2
jne 0x40356d
and edx, 0xfffffff3
or edx, 1
jmp 0x4033bd
test dl, 4
je 0x402be7
cmp cx, 0x2c
jne 0x40358f
mov ecx, dword [esp + 0x7c]
and edx, 0xfffffffb
mov dword [esp + 0x80], edx
add esi, 2
jmp 0x4025b6
test dl, 0x40
je 0x402c0c
cmp cx, 0x3a
jne 0x4035a6
mov ecx, dword [esp + 0x7c]
and edx, 0xffffffbf
mov dword [esp + 0x80], edx
add esi, 2
jmp 0x4025b6
mov eax, dword [esp + 0x24]
and edx, 0xfffffff7
add eax, 0xffffffde
mov dword [esp + 0x80], edx
cmp eax, 0x59
ja case.0x402c2d.35
movzx eax, byte [eax + 0x40387c]
jmp dword [eax*4 + 0x403860]
push 1
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x48]
push eax
call fcn.00403ba0
add esp, 0x14
test eax, eax
je 0x4035f5
mov edx, dword [esp + 0x58]
mov edi, dword [esp + 0x70]
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x78], edx
mov esi, dword [esp + 0x78]
mov edx, dword [esp + 0x80]
add esi, 2
jmp 0x4025b6
push 2
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x48]
push eax
call fcn.00403ba0
add esp, 0x14
test eax, eax
je 0x4035f5
mov edx, dword [esp + 0x80]
mov edi, dword [esp + 0x58]
or edx, 8
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x78], edi
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x70]
add esi, 2
mov dword [esp + 0x80], edx
jmp 0x4025b6
push 5
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x48]
push eax
call fcn.00403ba0
add esp, 0x14
test eax, eax
je 0x4035f5
mov edi, dword [esp + 0x70]
mov edx, dword [esp + 0x80]
mov esi, dword [esp + 0x58]
or edx, 0x20
mov ecx, dword [esp + 0x7c]
add esi, 2
mov eax, dword [edi + 0xc]
mov dword [esp + 0x80], edx
mov dword [esp + 0x64], eax
mov dword [esp + 0x74], 0
jmp 0x4025b6
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
sub eax, ecx
and eax, 0xfffffffe
cmp eax, 6
jle 0x4035bd
cmp word [ecx + 2], 0x72
lea eax, [ecx + 2]
mov dword [esp + 0x58], eax
jne 0x4035bd
add eax, 2
mov dword [esp + 0x58], eax
cmp word [eax], 0x75
jne 0x4035bd
add eax, 2
mov dword [esp + 0x58], eax
cmp word [eax], 0x65
jne 0x4035bd
push 6
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x48]
push eax
call fcn.00403ba0
add esp, 0x14
test eax, eax
je 0x4035f5
mov edi, dword [esp + 0x70]
mov edx, dword [esp + 0x80]
mov esi, dword [esp + 0x58]
or edx, 1
mov dword [edi + 8], 1
jmp 0x4033bd
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
sub eax, ecx
and eax, 0xfffffffe
cmp eax, 8
jle 0x4035bd
add ecx, 2
mov dword [esp + 0x58], ecx
cmp word [ecx], 0x61
jne 0x4035bd
cmp word [ecx + 2], 0x6c
lea eax, [ecx + 2]
mov dword [esp + 0x58], eax
jne 0x4035bd
add eax, 2
mov dword [esp + 0x58], eax
cmp word [eax], 0x73
jne 0x4035bd
add eax, 2
mov dword [esp + 0x58], eax
cmp word [eax], 0x65
jne 0x4035bd
push 6
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x48]
push eax
call fcn.00403ba0
add esp, 0x14
test eax, eax
je 0x4035f5
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0x80]
mov dword [esp + 0x78], edi
or edx, 1
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x78]
jmp 0x4033bd
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
sub eax, ecx
and eax, 0xfffffffe
cmp eax, 6
jle 0x4035bd
cmp word [ecx + 2], 0x75
lea eax, [ecx + 2]
mov dword [esp + 0x58], eax
jne 0x4035bd
add eax, 2
mov dword [esp + 0x58], eax
cmp word [eax], 0x6c
jne 0x4035bd
add eax, 2
mov dword [esp + 0x58], eax
cmp word [eax], 0x6c
jne 0x4035bd
push 7
jmp 0x402e15
movzx eax, cl
push eax
call fcn.0042f7a0
mov esi, dword [esp + 0x70]
add esp, 4
test eax, eax
jne 0x402ec7
cmp si, 0x2d
jne 0x4035df
push 3
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x48]
push eax
call fcn.00403ba0
add esp, 0x14
test eax, eax
je 0x4035f5
cmp dword [esp + 0x54], 0
mov edi, dword [esp + 0x58]
mov dword [esp + 0x78], edi
jne 0x402f63
mov eax, dword [esp + 0x6c]
movzx eax, al
push eax
call fcn.0042f7a0
add esp, 4
test eax, eax
jne 0x402f32
mov eax, dword [esp + 0x6c]
cmp ax, 0x2b
je 0x402f32
cmp ax, 0x2d
je 0x402f32
cmp ax, 0x65
je 0x402f32
cmp ax, 0x45
je 0x402f32
cmp ax, 0x2e
jne 0x402f48
add edi, 2
mov dword [esp + 0x58], edi
cmp edi, dword [esp + 0x7c]
je 0x402f48
movzx eax, word [edi]
mov dword [esp + 0x6c], eax
jmp 0x402f00
mov edx, dword [esp + 0x80]
mov dword [esp + 0x78], edi
or edx, 3
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x78]
jmp 0x4033bd
mov edx, dword [esp + 0x80]
xorps xmm2, xmm2
mov edi, dword [esp + 0x70]
and edx, 0xffffe0ff
cmp si, 0x2d
mov dword [esp + 0x34], 0
mov esi, dword [esp + 0x78]
movsd qword [esp + 0xc], xmm2
movsd qword [esp + 0x14], xmm2
je 0x402f9d
or edx, 2
jmp 0x4033bd
mov ecx, dword [esp + 0x7c]
or edx, 0x100
mov dword [esp + 0x80], edx
add esi, 2
jmp 0x4025b6
mov eax, dword [edi + 4]
sub eax, 1
je 0x403371
sub eax, 2
je 0x402fd0
sub eax, 1
jne 0x4033c4
movzx eax, cl
push eax
call fcn.0042f7a0
add esp, 4
test eax, eax
je 0x403175
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x80]
inc ecx
cmp dword [edi + 4], 3
mov dword [esp + 0x34], ecx
je 0x403062
test edx, 0x400
jne 0x40312e
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x7c]
movzx eax, ax
sub eax, 0x30
movd xmm1, eax
cvtdq2pd xmm1, xmm1
test edx, 0x8000
je 0x403044
movsd xmm2, qword [esp + 0xc]
add esi, 2
mulsd xmm2, qword [0x44e570]
addsd xmm2, xmm1
movsd qword [esp + 0xc], xmm2
jmp 0x4025b6
movsd xmm0, qword [edi + 8]
add esi, 2
mulsd xmm0, qword [0x44e570]
addsd xmm0, xmm1
movsd qword [edi + 8], xmm0
jmp 0x4025b6
test edx, 0x400
jne 0x40312e
mov esi, dword [esp + 0x6c]
test edx, 0x200
jne 0x403628
cmp ecx, 1
jne 0x403096
cmp si, 0x30
jne 0x403096
or edx, 0x200
mov dword [esp + 0x80], edx
mov eax, dword [edi + 0xc]
push esi
mov esi, dword [edi + 8]
push eax
push esi
call fcn.00403cd0
add esp, 0xc
test eax, eax
je 0x4030e1
dec dword [esp + 0x34]
mov ecx, esi
sub dword [esp + 0x78], 2
mov dword [edi + 4], 4
mov edx, dword [edi + 0xc]
call fcn.004278e0
mov esi, dword [esp + 0x78]
mov edx, dword [esp + 0x80]
add esi, 2
mov ecx, dword [esp + 0x7c]
movsd qword [edi + 8], xmm0
jmp 0x4025b6
mov edx, dword [edi + 0xc]
mov eax, esi
mov ecx, edx
shld ecx, eax, 2
shl eax, 2
add esi, eax
mov eax, dword [esp + 0x24]
movzx eax, ax
adc edx, ecx
mov ecx, edx
mov dword [esp + 0x6c], edx
shld ecx, esi, 1
cdq
add esi, esi
add esi, eax
adc ecx, edx
mov edx, dword [esp + 0x80]
sub esi, 0x30
mov dword [edi + 8], esi
mov esi, dword [esp + 0x78]
sbb ecx, 0
mov dword [edi + 0xc], ecx
add esi, 2
mov ecx, dword [esp + 0x7c]
jmp 0x4025b6
mov esi, dword [esp + 0x6c]
or edx, 0x800
movsd xmm2, qword [esp + 0x14]
mulsd xmm2, qword [0x44e570]
mov ecx, dword [esp + 0x7c]
movzx eax, si
mov esi, dword [esp + 0x78]
sub eax, 0x30
mov dword [esp + 0x80], edx
add esi, 2
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm2, xmm0
movsd qword [esp + 0x14], xmm2
jmp 0x4025b6
mov esi, dword [esp + 0x6c]
cmp si, 0x2b
je 0x4031e7
cmp si, 0x2d
je 0x4031e7
cmp si, 0x2e
jne 0x403234
cmp dword [edi + 4], 3
jne 0x403234
cmp dword [esp + 0x34], 0
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0xc]
je 0x40363e
mov dword [edi + 4], 4
call fcn.004278e0
mov edx, dword [esp + 0x80]
mov esi, dword [esp + 0x78]
or edx, 0x8000
mov ecx, dword [esp + 0x7c]
add esi, 2
movsd qword [edi + 8], xmm0
mov dword [esp + 0x80], edx
mov dword [esp + 0x34], 0
jmp 0x4025b6
mov edx, dword [esp + 0x80]
mov eax, edx
and eax, 0xc00
cmp eax, 0x400
jne 0x40323b
mov ecx, dword [esp + 0x7c]
or edx, 0x800
cmp si, 0x2d
mov dword [esp + 0x80], edx
mov esi, dword [esp + 0x78]
jne 0x403467
mov edx, dword [esp + 0x20]
or edx, 0x1800
add esi, 2
mov dword [esp + 0x80], edx
jmp 0x4025b6
mov edx, dword [esp + 0x80]
test edx, 0x400
jne 0x4032ef
cmp dword [edi + 4], 4
jne 0x403289
mov eax, dword [esp + 0x34]
test eax, eax
je 0x403660
movsd xmm0, qword [0x44e570]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
call fcn.0042f830
movsd xmm1, qword [esp + 0xc]
divsd xmm1, xmm0
mov edx, dword [esp + 0x80]
addsd xmm1, qword [edi + 8]
movsd qword [edi + 8], xmm1
cmp si, 0x65
je 0x403299
cmp si, 0x45
jne 0x40332d
or edx, 0x400
cmp dword [edi + 4], 3
mov dword [esp + 0x80], edx
jne 0x4032ca
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0xc]
mov dword [edi + 4], 4
call fcn.004278e0
mov edx, dword [esp + 0x80]
movsd qword [edi + 8], xmm0
mov esi, dword [esp + 0x78]
and edx, 0xfffffdff
mov ecx, dword [esp + 0x7c]
add esi, 2
mov dword [esp + 0x34], 0
mov dword [esp + 0x80], edx
jmp 0x4025b6
cmp dword [esp + 0x34], 0
je 0x40367f
movsd xmm1, qword [esp + 0x14]
test edx, 0x1000
je 0x40330f
xorps xmm1, xmmword [0x44e580]
movsd xmm0, qword [0x44e570]
call fcn.0042f830
mulsd xmm0, qword [edi + 8]
mov edx, dword [esp + 0x80]
movsd qword [edi + 8], xmm0
test edx, 0x100
je 0x403368
cmp dword [edi + 4], 3
jne 0x403357
mov ecx, dword [edi + 8]
mov eax, dword [edi + 0xc]
neg ecx
mov esi, dword [esp + 0x78]
adc eax, 0
mov dword [edi + 8], ecx
neg eax
or edx, 3
mov dword [edi + 0xc], eax
jmp 0x4033bd
movsd xmm0, qword [edi + 8]
xorps xmm0, xmmword [0x44e580]
movsd qword [edi + 8], xmm0
mov esi, dword [esp + 0x78]
or edx, 3
jmp 0x4033bd
movzx ecx, cx
lea eax, [ecx - 9]
cmp eax, 0x74
ja case.0x403387.11
movzx eax, byte [eax + 0x4038f0]
jmp dword [eax*4 + 0x4038d8]
test dl, 4
jne 0x40369e
mov eax, dword [edi + 0x10]
or edx, 0x20
mov dword [esp + 0x64], eax
xor eax, eax
mov dword [esp + 0x74], eax
jmp 0x4033bd
and edx, 0xfffffffb
or edx, 1
jmp 0x4033bd
test dl, 4
je case.0x403387.11
and edx, 0xfffffffb
mov dword [esp + 0x80], edx
test dl, 2
je 0x4033da
and edx, 0xfffffffd
sub esi, 2
mov dword [esp + 0x80], edx
mov dword [esp + 0x58], esi
test dl, 1
je case.0x403387.9
mov ecx, dword [edi]
and edx, 0xfffffffe
test ecx, ecx
jne 0x403405
mov ecx, dword [esp + 0x7c]
or edx, 0x84
mov dword [esp + 0x80], edx
add esi, 2
jmp 0x4025b6
xor eax, eax
cmp dword [ecx + 4], 2
sete al
lea eax, [eax*8 + 4]
or edx, eax
cmp dword [esp + 0x54], 0
mov dword [esp + 0x80], edx
jne 0x40344e
mov eax, dword [ecx + 4]
sub eax, 1
je 0x40343f
sub eax, 1
jne 0x40344e
mov eax, dword [edi]
mov ecx, dword [ecx + 8]
mov eax, dword [eax + 0xc]
mov dword [eax + ecx*4], edi
jmp 0x40344e
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*2]
mov eax, dword [edi]
mov eax, dword [eax + 0xc]
mov dword [eax + ecx*4 + 8], edi
mov eax, dword [edi]
inc dword [eax + 8]
cmp dword [eax + 8], 0xfffffff7
ja 0x4036bd
mov edi, dword [edi]
mov dword [esp + 0x70], edi
mov ecx, dword [esp + 0x7c]
add esi, 2
jmp 0x4025b6
sub dword [esp + 0x54], 1
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
js 0x40378d
mov ecx, dword [esp + 0x7c]
jmp 0x402580
mov esi, dword [esp + 0x6c]
movzx eax, si
push eax
push dword [esp + 0x64]
push dword [esp + 0x64]
push str._u:_u:_Invalid_character_value___c_
jmp 0x4036ea
mov ecx, dword [esp + 0x6c]
movzx eax, cx
push eax
push dword [esp + 0x64]
push dword [esp + 0x64]
push str._u:_u:_Invalid_character_value___c_
jmp 0x4036ea
push dword [esp + 0x60]
lea eax, [esp + 0x88]
push dword [esp + 0x60]
push str._u:_u:_Unexpected_EOF_in_string
push eax
call fcn.00403cb0
add esp, 0x10
jmp 0x4036fa
push dword [esp + 0x60]
lea eax, [esp + 0x88]
push dword [esp + 0x60]
push str._u:_u:_Unexpected_EOF_in_block_comment
push eax
call fcn.00403cb0
add esp, 0x10
jmp 0x4036fa
push dword [esp + 0x60]
lea eax, [esp + 0x88]
push dword [esp + 0x60]
push str._u:_u:_Comment_not_allowed_here
push eax
call fcn.00403cb0
add esp, 0x10
jmp 0x4036fa
push eax
push dword [esp + 0x64]
push dword [esp + 0x64]
push str._u:_u:_Unexpected___c__in_comment_opening_sequence
jmp 0x4036ea
push dword [esp + 0x60]
lea eax, [esp + 0x88]
push dword [esp + 0x60]
push str._u:_u:_EOF_unexpected
push eax
call fcn.00403cb0
add esp, 0x10
jmp 0x4036fa
push ecx
push dword [esp + 0x64]
push dword [esp + 0x64]
push str._u:_u:_Trailing_garbage:___c_
jmp 0x4036ea
push dword [esp + 0x60]
lea eax, [esp + 0x88]
push dword [esp + 0x60]
push str._u:_u:_Unexpected____
push eax
call fcn.00403cb0
add esp, 0x10
jmp 0x4036fa
mov eax, dword [esp + 0x24]
push eax
push dword [esp + 0x64]
push dword [esp + 0x64]
push str._u:_u:_Expected_____before___c_
jmp 0x4036ea
mov eax, dword [esp + 0x24]
push eax
push dword [esp + 0x64]
push dword [esp + 0x64]
push str._u:_u:_Expected__:__before___c_
jmp 0x4036ea
push dword [esp + 0x60]
lea eax, [esp + 0x88]
push dword [esp + 0x60]
push str._u:_u:_Unknown_value
push eax
call fcn.00403cb0
add esp, 0x10
jmp 0x4036fa
movzx eax, si
push eax
push dword [esp + 0x64]
push dword [esp + 0x64]
push str._u:_u:_Unexpected___c__when_seeking_value
jmp 0x4036ea
movups xmm0, xmmword [str.Memory_allocation_failure]
mov ax, word [0x44e538]
mov word [esp + 0x9c], ax
movups xmmword [esp + 0x84], xmm0
movq xmm0, qword [0x44e530]
movq qword [esp + 0x94], xmm0
jmp 0x4036fa
movzx eax, si
push eax
push dword [esp + 0x64]
push dword [esp + 0x64]
push str._u:_u:_Unexpected__0__before___c_
jmp 0x4036ea
push dword [esp + 0x60]
lea eax, [esp + 0x88]
push dword [esp + 0x60]
push str._u:_u:_Expected_digit_before__._
push eax
call fcn.00403cb0
add esp, 0x10
jmp 0x4036fa
push dword [esp + 0x60]
lea eax, [esp + 0x88]
push dword [esp + 0x60]
push str._u:_u:_Expected_digit_after__._
push eax
call fcn.00403cb0
add esp, 0x10
jmp 0x4036fa
push dword [esp + 0x60]
lea eax, [esp + 0x88]
push dword [esp + 0x60]
push str._u:_u:_Expected_digit_after__e_
push eax
call fcn.00403cb0
add esp, 0x10
jmp 0x4036fa
push dword [esp + 0x60]
lea eax, [esp + 0x88]
push dword [esp + 0x60]
push str._u:_u:_Expected_____before____
push eax
call fcn.00403cb0
add esp, 0x10
jmp 0x4036fa
push dword [esp + 0x60]
lea eax, [esp + 0x88]
push dword [esp + 0x60]
push str._u:_u:_Too_long__caught_overflow_
push eax
call fcn.00403cb0
add esp, 0x10
jmp 0x4036fa
push ecx
push dword [esp + 0x64]
push dword [esp + 0x64]
push str._u:_u:_Unexpected___c__in_object
lea eax, [esp + 0x94]
push eax
call fcn.00403cb0
add esp, 0x14
mov edx, dword [esp + 8]
test edx, edx
je 0x403744
cmp byte [esp + 0x84], 0
je 0x403726
lea ecx, [esp + 0x84]
mov eax, ecx
sub edx, eax
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x403717
jmp 0x403744
movq xmm0, qword [str.Unknown_error]
movq qword [edx], xmm0
mov eax, dword [0x44e568]
mov dword [edx + 8], eax
mov ax, word [0x44e56c]
mov word [edx + 0xc], ax
cmp dword [esp + 0x54], 0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
cmovne eax, ecx
test eax, eax
je 0x403776
mov edi, dword [esp + 0x4c]
nop dword [eax]
mov esi, dword [eax + 0x10]
push edi
push eax
call dword [esp + 0x50]
add esp, 8
mov eax, esi
test esi, esi
jne 0x403760
mov ecx, dword [esp + 0x30]
cmp dword [esp + 0x54], 0
jne 0x40378b
push ecx
lea eax, [esp + 0x40]
push eax
call fcn.004039a0
add esp, 8
xor eax, eax
mov ecx, dword [esp + 0x104]
pop edi
pop esi
xor ecx, esp
call fcn.004277ff
add esp, 0x100
ret