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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x198]
cmp eax, dword [ecx + 8]
jbe 0x66397e
sub esp, 0x218
mov eax, dword [esp + 0x220]
test eax, eax
je 0x66393b
mov eax, dword [esp + 0x220]
lea ecx, [0x785570]
cmp eax, ecx
jne 0x662506
mov eax, dword [esp + 0x21c]
mov byte [eax + 0x30c], 1
jmp 0x66393b
lea ecx, [0x78555c]
cmp eax, ecx
je 0x662e9d
lea ecx, [0x78550c]
cmp eax, ecx
jne 0x662618
lea eax, [0x6b5800]
mov dword [esp], eax
call fcn.0040be50
mov eax, dword [esp + 0x224]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov edx, dword [esp + 4]
mov dword [esp + 0xc8], edx
mov dword [edx], eax
mov eax, dword [0x1eaa9f0]
test eax, eax
jne 0x662558
mov dword [edx + 4], ecx
jmp 0x662562
lea edi, [edx + 4]
mov eax, ecx
call fcn.00465d80
mov eax, dword [esp + 0x21c]
mov dword [esp], eax
call fcn.00661f80
mov eax, dword [esp + 0x21c]
mov dword [eax + 0x2f0], 0
mov ecx, dword [0x1eaa9f0]
test ecx, ecx
jne 0x662598
mov dword [eax + 0x2f4], 0
jmp 0x6625a9
lea edi, [eax + 0x2f4]
mov ecx, eax
xor eax, eax
call fcn.00465d80
mov eax, ecx
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x6625e5
mov dword [esp + 0xb0], ecx
mov dword [esp], ecx
lea eax, [esp + 0x4c]
mov dword [esp + 4], eax
call fcn.00404e10
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00405860
mov eax, dword [esp + 0x21c]
mov ecx, dword [0x1eaa9f0]
test ecx, ecx
jne 0x662601
mov ecx, dword [esp + 0xc8]
mov dword [eax + 0x31c], ecx
jmp 0x66393b
lea edi, [eax + 0x31c]
mov eax, dword [esp + 0xc8]
call fcn.00465d80
jmp 0x66393b
lea eax, [0x6ab100]
mov dword [esp], eax
mov ecx, dword [esp + 0x220]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x224]
mov dword [esp + 8], edx
call fcn.00409a40
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x662cf0
mov eax, dword [esp + 0x220]
lea ecx, [0x7854f8]
cmp eax, ecx
jne 0x662964
lea eax, [0x6b57a0]
mov dword [esp], eax
call fcn.0040be50
mov edi, dword [esp + 4]
mov dword [esp + 0xc0], edi
mov eax, dword [0x1eaa9f0]
test eax, eax
jne 0x66268e
mov esi, dword [esp + 0x224]
call fcn.0046647e
jmp 0x6626ab
lea eax, [0x6b57a0]
mov dword [esp], eax
mov dword [esp + 4], edi
mov eax, dword [esp + 0x224]
mov dword [esp + 8], eax
call fcn.004115f0
mov ecx, dword [esp + 0x21c]
movzx edx, byte [ecx + 0x268]
mov byte [esp + 0x4c], dl
lea edi, [ecx + 0x23c]
mov dword [esp + 0xbc], edi
mov ebx, dword [0x1eaa9f0]
test ebx, ebx
jne 0x6626e2
mov esi, dword [esp + 0xc0]
call fcn.0046647e
jmp 0x662704
lea eax, [0x6d9700]
mov dword [esp], eax
mov dword [esp + 4], edi
mov eax, dword [esp + 0xc0]
mov dword [esp + 8], eax
call fcn.004115f0
movzx edx, byte [esp + 0x4c]
lea edi, [esp + 0x1e4]
mov esi, dword [esp + 0xbc]
call fcn.0046647e
mov ecx, dword [esp + 0x1e8]
mov ebx, dword [esp + 0x21c]
sub ecx, dword [ebx + 0x274]
mov dword [esp + 0x1e8], ecx
movzx ecx, byte [ebx + 0x238]
test cl, cl
je 0x662744
mov ecx, 1
jmp 0x66274c
movzx ecx, byte [esp + 0x20f]
mov byte [esp + 0x20f], cl
lea edi, [esp + 0x1b0]
lea esi, [esp + 0x1e4]
call fcn.0046647e
mov ecx, dword [0x1eaa9f0]
test ecx, ecx
jne 0x662792
mov edi, dword [esp + 0xc0]
lea esi, [esp + 0x1b0]
call fcn.0046647e
mov ecx, dword [esp + 0xc0]
mov dword [ebx + 0x310], ecx
jmp 0x6627d8
lea eax, [0x6d9700]
mov dword [esp], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 4], eax
lea ecx, [esp + 0x1b0]
mov dword [esp + 8], ecx
call fcn.004115f0
mov eax, dword [esp + 0x21c]
lea edi, [eax + 0x310]
mov ecx, eax
mov eax, dword [esp + 0xc0]
call fcn.00465d80
movzx edx, byte [esp + 0x4c]
mov ebx, ecx
movzx ecx, byte [ebx + 0x268]
cmp cl, dl
je 0x662846
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0
lea eax, [0x7856c4]
mov dword [esp + 0xe0], eax
movzx eax, cl
lea ecx, [0x934160]
lea eax, [ecx + eax*8]
mov dword [esp + 0xe4], eax
lea eax, [ebx + 0x48]
mov dword [esp], eax
lea eax, [esp + 0xe0]
mov dword [esp + 4], eax
mov dword [esp + 8], 1
mov dword [esp + 0xc], 1
call fcn.004eb360
mov ebx, dword [esp + 0x21c]
lea esi, [ebx + 0x1a0]
lea edi, [esp + 0x110]
call fcn.004664ce
movzx ecx, byte [ebx + 0x19c]
mov byte [ebx + 0x19c], 0
mov edx, dword [ebx + 0x11c]
mov ebp, dword [ebx + 0x120]
cmp ebp, 1
jg 0x662880
jne 0x662893
mov edx, dword [edx + 0x74]
test edx, edx
je 0x662893
lea edi, [esp + 0x110]
xor eax, eax
call fcn.00465feb
mov ecx, 1
test cl, cl
je 0x662956
mov byte [esp + 0x4e], cl
lea edi, [esp + 0x160]
lea esi, [esp + 0x110]
call fcn.004664ce
movzx eax, byte [ebx + 0x19]
test al, al
je 0x6628fd
lea esi, [ebx + 0x1c]
lea edi, [esp + 0x188]
call fcn.004664ce
lea edi, [esp]
lea esi, [esp + 0x160]
call fcn.004664ce
lea edi, [esp + 0x14]
lea esi, [esp + 0x188]
call fcn.004664ce
call fcn.00483f80
movzx eax, byte [esp + 0x28]
test al, al
je 0x662942
mov ebx, dword [esp + 0x21c]
mov byte [ebx + 0x19], 1
lea edi, [ebx + 0x1c]
mov eax, dword [0x1eaa9f0]
test eax, eax
jne 0x66291c
lea esi, [esp + 0x160]
call fcn.004664ce
jmp 0x662949
lea eax, [0x6e8fe0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x160]
mov dword [esp + 8], eax
call fcn.004115f0
mov ebx, dword [esp + 0x21c]
jmp 0x662949
mov ebx, dword [esp + 0x21c]
mov dword [esp], ebx
call fcn.00661670
movzx ecx, byte [esp + 0x4e]
mov byte [esp + 0x228], cl
add esp, 0x218
ret
lea eax, [0x6a7600]
mov dword [esp], eax
mov ecx, dword [esp + 0x220]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x224]
mov dword [esp + 8], ecx
call fcn.00409a40
mov eax, dword [esp + 0xc]
test eax, eax
je 0x66393b
lea eax, [0x6a7600]
mov dword [esp], eax
mov eax, dword [esp + 0x220]
mov dword [esp + 4], eax
call fcn.00409990
mov eax, dword [esp + 8]
lea ecx, [0x785688]
cmp eax, ecx
jne 0x6629d0
mov ecx, dword [esp + 0x224]
mov edx, dword [ecx]
mov ebx, dword [ecx + 4]
mov ebp, dword [ecx + 8]
movzx esi, byte [ecx + 0xc]
jmp 0x6629eb
mov ecx, dword [esp + 0x224]
mov ebp, 0
mov edx, 0
mov esi, 0
mov ebx, 0
jne 0x662a42
xchg esi, eax
test al, al
xchg esi, eax
jne 0x662a42
cmp ebx, 3
jne 0x662a3b
movzx esi, word [edx]
cmp si, 0x6154
jne 0x662a1d
cmp byte [edx + 2], 0x62
jne 0x662a18
test ebp, ebp
jne 0x662a13
mov edx, 4
jmp 0x662a47
cmp ebx, 3
jmp 0x662a20
cmp ebx, 3
jmp 0x662a20
cmp ebx, 3
jne 0x662a3b
cmp si, 0x6154
jne 0x662a3b
cmp byte [edx + 2], 0x62
jne 0x662a3b
cmp ebp, 4
jne 0x662a3b
mov edx, 5
jmp 0x662a47
mov edx, 0xffffffff
jmp 0x662a47
mov edx, 0xffffffff
mov dword [esp + 0x64], edx
cmp edx, 0xffffffff
je 0x662a99
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], ecx
lea eax, [0x6b5b00]
mov dword [esp], eax
lea eax, [esp + 0xd8]
mov dword [esp + 4], eax
call fcn.004095e0
mov eax, dword [esp + 8]
mov ecx, eax
lea eax, [0x785660]
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], ecx
mov eax, dword [esp + 0x21c]
test byte [eax], al
lea ecx, [eax + 0x48]
mov dword [esp], ecx
lea ecx, [esp + 0xe0]
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
mov dword [esp + 0xc], 1
call fcn.004eb360
mov eax, dword [esp + 0x21c]
lea esi, [eax + 0x1a0]
mov dword [esp + 0xb8], esi
lea edi, [esp + 0xfc]
call fcn.004664ce
movzx ecx, byte [eax + 0x19c]
mov byte [eax + 0x19c], 0
mov edx, dword [eax + 0x11c]
mov ebx, dword [eax + 0x120]
cmp ebx, 1
jg 0x662b34
jne 0x662b4e
mov edx, dword [edx + 0x74]
test edx, edx
je 0x662b4e
lea edi, [esp + 0xfc]
xor eax, eax
call fcn.00465feb
mov eax, dword [esp + 0x21c]
mov ecx, 1
mov byte [esp + 0x4d], cl
lea edi, [esp + 0x124]
lea esi, [esp + 0xfc]
call fcn.004664ce
mov ecx, dword [esp + 0x64]
cmp ecx, 0xffffffff
je 0x662c05
movzx edx, byte [esp + 0x4d]
test dl, dl
jne 0x662c0a
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00661c50
lea edi, [esp + 0xe8]
mov esi, dword [esp + 0xb8]
call fcn.004664ce
mov eax, dword [esp + 0x21c]
movzx ecx, byte [eax + 0x19c]
mov byte [eax + 0x19c], 0
mov edx, dword [eax + 0x11c]
mov ebx, dword [eax + 0x120]
cmp ebx, 1
jg 0x662bcd
jne 0x662be7
mov edx, dword [edx + 0x74]
test edx, edx
je 0x662be7
lea edi, [esp + 0xe8]
xor eax, eax
call fcn.00465feb
mov eax, dword [esp + 0x21c]
mov ecx, 1
mov byte [esp + 0x4f], cl
lea edi, [esp + 0x124]
lea esi, [esp + 0xe8]
call fcn.004664ce
movzx edx, byte [esp + 0x4f]
jmp 0x662c0a
movzx edx, byte [esp + 0x4d]
mov byte [esp + 0x4f], dl
mov dword [esp], eax
call fcn.006640b0
movzx eax, byte [esp + 0x4f]
test al, al
je 0x662ce2
lea edi, [esp + 0x14c]
lea esi, [esp + 0x124]
call fcn.004664ce
mov ecx, dword [esp + 0x21c]
movzx edx, byte [ecx + 0x19]
test dl, dl
je 0x662c8d
lea esi, [ecx + 0x1c]
lea edi, [esp + 0x174]
call fcn.004664ce
lea edi, [esp]
lea esi, [esp + 0x14c]
call fcn.004664ce
lea edi, [esp + 0x14]
lea esi, [esp + 0x174]
call fcn.004664ce
call fcn.00483f80
movzx eax, byte [esp + 0x28]
test al, al
je 0x662cce
movzx eax, byte [esp + 0x4f]
mov ecx, dword [esp + 0x21c]
mov byte [ecx + 0x19], 1
lea edi, [ecx + 0x1c]
mov edx, dword [0x1eaa9f0]
test edx, edx
jne 0x662cac
lea esi, [esp + 0x14c]
call fcn.004664ce
jmp 0x662cce
lea eax, [0x6e8fe0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x14c]
mov dword [esp + 8], eax
call fcn.004115f0
movzx eax, byte [esp + 0x4f]
mov eax, dword [esp + 0x21c]
mov dword [esp], eax
call fcn.00661670
movzx eax, byte [esp + 0x4f]
mov byte [esp + 0x228], al
add esp, 0x218
ret
lea eax, [0x6ab100]
mov dword [esp], eax
call fcn.0040be50
mov eax, dword [esp + 4]
mov dword [esp + 0xc4], eax
lea ecx, [0x6ab100]
mov dword [esp], ecx
mov ecx, dword [esp + 0x220]
mov dword [esp + 4], ecx
call fcn.00409990
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc4]
mov dword [ecx], eax
mov eax, dword [0x1eaa9f0]
test eax, eax
jne 0x662d45
mov edx, dword [esp + 0x224]
mov dword [ecx + 4], edx
jmp 0x662d54
lea edi, [ecx + 4]
mov eax, dword [esp + 0x224]
call fcn.00465d80
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
test edx, edx
je 0x662d60
mov edx, dword [edx + 4]
test edx, edx
je 0x662dcd
nop
movzx ebx, byte [0x1e84f40]
test bl, bl
je 0x662d93
mov dword [0x1e84f44], edx
mov ebx, dword [0x1eaa9f0]
test ebx, ebx
jne 0x662d88
mov dword [0x1e84f48], eax
jmp 0x662d93
lea edi, [0x1e84f48]
call fcn.00465d80
mov dword [esp + 0xd0], edx
mov dword [esp + 0xd4], eax
mov edx, dword [esp + 0xd0]
test edx, edx
je 0x662dc5
nop
movzx ebx, byte [edx + 0xf]
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x662dd3
or ebx, 0x80
jmp 0x662dd3
xor ebx, ebx
xor edx, edx
xor eax, eax
jmp 0x662dd3
xor ebx, ebx
xor edx, edx
xor eax, eax
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.004c7380
movzx eax, byte [esp + 0xc]
test al, al
je 0x662e61
mov ecx, dword [esp + 0x21c]
mov edx, dword [ecx + 8]
test edx, edx
je 0x662e68
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov eax, dword [eax + 0x14]
mov dword [esp], edx
call eax
mov eax, dword [esp + 0x21c]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov ecx, dword [ecx + 0x18]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 0x21c]
mov dword [eax + 8], 0
mov ecx, dword [0x1eaa9f0]
test ecx, ecx
jne 0x662e3d
mov dword [eax + 0xc], 0
jmp 0x662e4b
lea edi, [eax + 0xc]
mov ecx, eax
xor eax, eax
call fcn.00465d80
mov eax, ecx
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov ecx, dword [ecx + 0x28]
mov dword [esp], edx
call ecx
mov ecx, dword [esp + 0x21c]
jmp 0x662e68
mov ecx, dword [esp + 0x21c]
test byte [ecx], al
mov edx, dword [0x1eaa9f0]
test edx, edx
jne 0x662e86
mov eax, dword [esp + 0xc4]
mov dword [ecx + 0x314], eax
jmp 0x66393b
lea edi, [ecx + 0x314]
mov eax, dword [esp + 0xc4]
call fcn.00465d80
jmp 0x66393b
lea eax, [0x6bfd60]
mov dword [esp], eax
call fcn.0040be50
mov edi, dword [esp + 4]
mov dword [esp + 0xcc], edi
mov eax, dword [0x1eaa9f0]
test eax, eax
jne 0x662ece
mov esi, dword [esp + 0x224]
call fcn.00466460
jmp 0x662eeb
lea eax, [0x6bfd60]
mov dword [esp], eax
mov dword [esp + 4], edi
mov eax, dword [esp + 0x224]
mov dword [esp + 8], eax
call fcn.004115f0
mov eax, dword [esp + 0xcc]
mov ecx, dword [eax + 0x1c]
test ecx, ecx
jne 0x662f04
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x66394a
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0x18]
mov ebx, dword [esp + 0x21c]
mov dword [ebx + 0x40], ecx
mov dword [ebx + 0x44], edx
mov byte [ebx + 0x19], 0
mov ecx, dword [ebx + 0x2f0]
mov dword [esp + 0xa4], ecx
test byte [ecx], al
mov edx, dword [ebx + 0x2f4]
mov dword [esp + 0xb4], edx
lea ebp, [0x6a8500]
mov dword [esp], ebp
call fcn.0040be50
mov eax, dword [esp + 4]
lea ecx, [0x665e10]
mov dword [eax], ecx
mov ecx, dword [esp + 0xa4]
mov dword [eax + 4], ecx
mov ecx, dword [0x1eaa9f0]
mov edx, dword [esp + 0x21c]
lea ebx, [edx + 0x48]
mov dword [esp + 0xac], ebx
test ecx, ecx
jne 0x662f8f
mov ecx, dword [esp + 0xb4]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0xcc]
mov dword [ecx + 0x34], eax
mov dword [ecx + 0x38], ebx
jmp 0x662fbd
lea edi, [eax + 8]
mov ecx, eax
mov eax, dword [esp + 0xb4]
call fcn.00465d80
mov ebp, dword [esp + 0xcc]
lea edi, [ebp + 0x34]
mov eax, ecx
call fcn.00465d80
lea edi, [ebp + 0x38]
mov eax, ebx
call fcn.00465d80
mov ecx, ebp
mov eax, dword [ecx + 0x14]
mov dword [esp + 0xa0], eax
mov edx, dword [ecx + 0x2c]
mov dword [esp + 0x9c], edx
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.0044e500
movzx eax, byte [esp + 8]
test al, al
je 0x662ff1
mov eax, 0x3f800000
jmp 0x662ff8
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
call fcn.0044d730
mov eax, dword [esp + 8]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x98], ecx
mov edx, dword [esp + 0x9c]
mov dword [esp], edx
call fcn.0044d730
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xa0]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x98]
mov dword [esp], edx
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
call fcn.0044cdd0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, eax
shr eax, 0x14
and eax, 0x7ff
cmp eax, 0x3ff
jae 0x663082
and edx, 0x80000000
cmp eax, 0x3fe
jne 0x66307b
or edx, 0x3ff00000
xor ebp, ebp
jmp 0x66315d
cmp eax, 0x433
jae 0x663157
mov dword [esp + 0x50], ecx
lea ebx, [eax - 0x3ff]
mov dword [esp + 0x74], ebx
cmp ebx, 0x20
sbb ebp, ebp
mov dword [esp + 0xa0], ebp
lea esi, [eax - 0x41f]
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
mov dword [esp + 0x9c], esi
cmp esi, 0x20
mov eax, edx
sbb edx, edx
mov dword [esp + 0x98], edx
cmp edi, 0x20
sbb edx, edx
mov dword [esp + 0x94], edx
mov ecx, edi
mov esi, 0x80000
shr esi, cl
and esi, edx
mov ecx, ebx
mov edx, 0x80000
shr edx, cl
and edx, ebp
mov ecx, dword [esp + 0x9c]
mov ebp, 0x80000
shl ebp, cl
mov ebx, dword [esp + 0x98]
and ebp, ebx
or esi, ebp
mov ebp, dword [esp + 0x50]
add ebp, esi
adc eax, edx
mov edx, 0xfffff
shl edx, cl
mov ecx, edi
mov esi, 0xfffff
shr esi, cl
mov edi, dword [esp + 0x94]
and esi, edi
and edx, ebx
mov ecx, dword [esp + 0x74]
mov ebx, 0xffffffff
shr ebx, cl
mov edi, dword [esp + 0xa0]
and ebx, edi
or ebx, edx
or esi, ebx
xchg esi, ebx
not ebx
xchg esi, ebx
and ebp, esi
mov edx, 0xfffff
shr edx, cl
and edx, edi
not edx
and eax, edx
jmp 0x66315b
mov ebp, ecx
mov eax, edx
mov edx, eax
mov dword [esp + 4], edx
mov dword [esp], ebp
call fcn.0044e940
mov eax, dword [esp + 0xcc]
mov ecx, dword [eax + 0x14]
mov dword [esp + 0xa0], ecx
mov edx, dword [eax + 0x24]
mov dword [esp + 0x9c], edx
mov ebx, dword [esp + 8]
mov dword [esp + 0x90], ebx
mov dword [esp], ecx
mov dword [esp + 4], 0
call fcn.0044e500
movzx eax, byte [esp + 8]
test al, al
je 0x6631af
mov eax, 0x3f800000
jmp 0x6631b6
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
call fcn.0044d730
mov eax, dword [esp + 8]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x98], ecx
mov edx, dword [esp + 0x9c]
mov dword [esp], edx
call fcn.0044d730
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xa0]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x98]
mov dword [esp], edx
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
call fcn.0044cdd0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, eax
shr eax, 0x14
and eax, 0x7ff
cmp eax, 0x3ff
jae 0x663240
and edx, 0x80000000
cmp eax, 0x3fe
jne 0x663239
or edx, 0x3ff00000
xor eax, eax
jmp 0x663329
cmp eax, 0x433
jae 0x66331f
mov dword [esp + 0x54], ecx
mov dword [esp + 0xa0], edx
lea ebx, [eax - 0x41f]
mov dword [esp + 0x9c], ebx
mov ebp, ebx
neg ebx
cmp ebx, 0x20
sbb esi, esi
mov dword [esp + 0x98], esi
cmp ebp, 0x20
sbb edi, edi
mov dword [esp + 0x94], edi
lea edx, [eax - 0x3ff]
mov dword [esp + 0x70], edx
cmp edx, 0x20
sbb eax, eax
mov ecx, ebp
mov esi, 0x80000
shr esi, cl
mov ecx, edx
mov ebp, 0x80000
shr ebp, cl
and ebp, eax
mov ecx, ebx
mov edx, 0x80000
shl edx, cl
and esi, edi
mov edi, dword [esp + 0x98]
and edx, edi
or esi, edx
mov edx, dword [esp + 0x54]
add edx, esi
mov esi, dword [esp + 0xa0]
adc esi, ebp
mov dword [esp + 0x8c], esi
mov ecx, dword [esp + 0x70]
mov ebp, 0xffffffff
shr ebp, cl
and ebp, eax
mov ecx, ebx
mov esi, 0xfffff
shl esi, cl
and esi, edi
or ebp, esi
mov ecx, dword [esp + 0x9c]
mov ebx, 0xfffff
shr ebx, cl
mov esi, dword [esp + 0x94]
and ebx, esi
or ebx, ebp
not ebx
and edx, ebx
mov ecx, dword [esp + 0x70]
mov ebx, 0xfffff
shr ebx, cl
and eax, ebx
not eax
mov ebx, dword [esp + 0x8c]
and eax, ebx
jmp 0x663323
mov eax, edx
mov edx, ecx
mov ecx, eax
mov eax, edx
mov edx, ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0044e940
mov eax, dword [esp + 0xcc]
mov ecx, dword [eax + 0x14]
mov dword [esp + 0xa0], ecx
mov edx, dword [eax + 0x30]
mov dword [esp + 0x9c], edx
mov ebx, dword [esp + 8]
mov dword [esp + 0x8c], ebx
mov dword [esp], ecx
mov dword [esp + 4], 0
call fcn.0044e500
movzx eax, byte [esp + 8]
test al, al
je 0x66337b
mov eax, 0x3f800000
jmp 0x663382
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
call fcn.0044d730
mov eax, dword [esp + 8]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x98], ecx
mov edx, dword [esp + 0x9c]
mov dword [esp], edx
call fcn.0044d730
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xa0]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x98]
mov dword [esp], edx
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
call fcn.0044cdd0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, eax
shr eax, 0x14
and eax, 0x7ff
cmp eax, 0x3ff
jae 0x66340c
and edx, 0x80000000
cmp eax, 0x3fe
jne 0x663405
or edx, 0x3ff00000
xor ebp, ebp
jmp 0x6634ee
cmp eax, 0x433
jae 0x6634e8
mov dword [esp + 0x58], ecx
lea ebx, [eax - 0x3ff]
mov dword [esp + 0x6c], ebx
cmp ebx, 0x20
sbb ebp, ebp
mov dword [esp + 0xa0], ebp
lea esi, [eax - 0x41f]
mov dword [esp + 0x9c], esi
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
cmp esi, 0x20
mov eax, edx
sbb edx, edx
mov dword [esp + 0x98], edx
cmp edi, 0x20
sbb ebp, ebp
mov dword [esp + 0x94], ebp
mov ecx, edi
mov ebx, 0x80000
shr ebx, cl
and ebx, ebp
mov ecx, esi
mov ebp, 0x80000
shl ebp, cl
and ebp, edx
mov ecx, dword [esp + 0x6c]
mov edi, 0x80000
shr edi, cl
mov edx, dword [esp + 0xa0]
and edi, edx
or ebx, ebp
mov ebp, dword [esp + 0x58]
add ebp, ebx
adc eax, edi
mov ebx, 0xffffffff
shr ebx, cl
and ebx, edx
mov edi, ecx
mov ecx, esi
mov edx, 0xfffff
shl edx, cl
mov esi, dword [esp + 0x98]
and edx, esi
or ebx, edx
mov ecx, dword [esp + 0x9c]
mov edx, 0xfffff
shr edx, cl
mov esi, dword [esp + 0x94]
and edx, esi
or edx, ebx
not edx
and ebp, edx
mov ecx, edi
mov edx, 0xfffff
shr edx, cl
mov ebx, dword [esp + 0xa0]
and edx, ebx
not edx
and eax, edx
jmp 0x6634ec
mov ebp, ecx
mov eax, edx
mov edx, eax
mov dword [esp + 4], edx
mov dword [esp], ebp
call fcn.0044e940
mov eax, dword [esp + 0xcc]
mov ecx, dword [eax + 0x14]
mov dword [esp + 0xa0], ecx
mov edx, dword [eax + 0x28]
mov dword [esp + 0x9c], edx
mov ebx, dword [esp + 8]
mov dword [esp + 0x88], ebx
mov dword [esp], ecx
mov dword [esp + 4], 0
call fcn.0044e500
movzx eax, byte [esp + 8]
test al, al
je 0x663540
mov eax, 0x3f800000
jmp 0x663547
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
call fcn.0044d730
mov eax, dword [esp + 8]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x98], ecx
mov edx, dword [esp + 0x9c]
mov dword [esp], edx
call fcn.0044d730
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xa0]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x98]
mov dword [esp], edx
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
call fcn.0044cdd0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, ecx
shr ecx, 0x14
and ecx, 0x7ff
cmp ecx, 0x3ff
jae 0x6635d4
and edx, 0x80000000
cmp ecx, 0x3fe
jne 0x6635cd
or edx, 0x3ff00000
xor eax, eax
jmp 0x6636c6
cmp ecx, 0x433
jae 0x6636c2
mov dword [esp + 0xa0], edx
lea ebx, [ecx - 0x41f]
cmp ebx, 0x20
sbb ebp, ebp
mov dword [esp + 0x9c], ebp
mov esi, ebx
neg ebx
mov dword [esp + 0x98], ebx
cmp ebx, 0x20
sbb edi, edi
mov dword [esp + 0x94], edi
lea edx, [ecx - 0x3ff]
mov dword [esp + 0x68], edx
cmp edx, 0x20
sbb edi, edi
mov dword [esp + 0x84], edi
mov ecx, ebx
mov edi, 0x80000
shl edi, cl
mov ecx, edx
mov ebx, 0x80000
shr ebx, cl
mov ecx, esi
mov edx, 0x80000
shr edx, cl
and edx, ebp
mov ebp, dword [esp + 0x94]
and edi, ebp
or edx, edi
mov edi, dword [esp + 0x84]
and ebx, edi
add eax, edx
mov edx, dword [esp + 0xa0]
adc edx, ebx
mov dword [esp + 0x80], edx
mov ebx, 0xfffff
shr ebx, cl
mov ecx, dword [esp + 0x98]
mov esi, 0xfffff
shl esi, cl
mov ecx, dword [esp + 0x68]
mov edx, 0xffffffff
shr edx, cl
mov dword [esp + 0xa0], edx
mov edx, dword [esp + 0x9c]
and ebx, edx
and esi, ebp
mov edx, dword [esp + 0xa0]
and edx, edi
or edx, esi
or ebx, edx
not ebx
and eax, ebx
mov edx, 0xfffff
shr edx, cl
and edx, edi
not edx
mov ecx, dword [esp + 0x80]
and ecx, edx
jmp 0x6636c4
mov ecx, edx
mov edx, ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0044e940
mov eax, dword [esp + 0xcc]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x88]
sub ecx, edx
mov dword [esp + 0x60], ecx
mov edx, dword [eax + 0x20]
sub edx, dword [esp + 8]
mov dword [esp + 0x5c], edx
mov ebx, dword [esp + 0x21c]
mov ebp, dword [ebx + 0x3c]
mov esi, dword [ebx + 0x38]
sub esi, dword [ebx + 0x30]
sub ebp, dword [ebx + 0x34]
mov edi, dword [esp + 0x90]
sub ecx, edi
mov eax, dword [esp + 0x8c]
sub edx, eax
cmp esi, ecx
jg 0x663721
cmp ebp, edx
jle 0x66375d
mov ecx, dword [esp + 0xac]
mov dword [esp], ecx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x60]
mov dword [esp + 0xc], ecx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x10], edx
call fcn.004ed960
mov eax, dword [esp + 0x8c]
mov ebx, dword [esp + 0x21c]
mov edi, dword [esp + 0x90]
mov dword [ebx + 0x30], edi
mov dword [ebx + 0x34], eax
mov ecx, dword [esp + 0x60]
mov dword [ebx + 0x38], ecx
mov ecx, dword [esp + 0x5c]
mov dword [ebx + 0x3c], ecx
nop
nop
mov dword [ebx + 0x210], 0
mov dword [ebx + 0x214], 0
lea edi, [ebx + 0x218]
xor eax, eax
call fcn.00465fe8
mov ecx, dword [ebx + 0x1f4]
mov edx, dword [ebx + 0x1f0]
test ecx, ecx
je 0x6637ba
mov dword [esp], edx
shl ecx, 3
mov dword [esp + 4], ecx
call fcn.00411830
mov ebx, dword [esp + 0x21c]
mov eax, dword [ebx + 0x200]
mov ecx, dword [ebx + 0x1fc]
test eax, eax
je 0x6637e0
mov dword [esp], ecx
shl eax, 3
mov dword [esp + 4], eax
call fcn.00411830
mov ebx, dword [esp + 0x21c]
mov dword [ebx + 0x1e8], 0
mov dword [ebx + 0x1f4], 0
mov dword [ebx + 0x200], 0
mov dword [ebx + 0x208], 0
inc dword [ebx + 0x1e0]
lea eax, [ebx + 0x1e0]
mov dword [esp + 0xa8], eax
mov dword [esp], eax
call fcn.004df790
lea edi, [esp + 0x138]
lea esi, [esp + 4]
call fcn.004664ce
mov eax, dword [esp + 0x21c]
mov dword [esp], eax
lea edi, [esp + 4]
mov esi, dword [esp + 0xcc]
call fcn.0046646a
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x40], ecx
call fcn.00664140
mov eax, dword [esp + 0x44]
mov dword [esp + 0x7c], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x78], ecx
lea edi, [esp]
lea esi, [esp + 0x138]
call fcn.004664ce
call fcn.004df8f0
lea edi, [esp + 0x19c]
lea esi, [esp + 0x14]
call fcn.004664ce
mov eax, dword [esp + 0x21c]
lea edi, [eax + 0x334]
mov ecx, dword [0x1eaa9f0]
test ecx, ecx
jne 0x6638b6
lea esi, [esp + 0x19c]
call fcn.004664ce
jmp 0x6638da
lea eax, [0x6c7900]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x19c]
mov dword [esp + 8], eax
call fcn.004115f0
mov eax, dword [esp + 0x21c]
mov ecx, dword [esp + 0xcc]
mov edx, dword [ecx + 0x1c]
mov ebx, dword [ecx + 0x20]
mov dword [eax + 0x324], edx
mov dword [eax + 0x328], ebx
movzx edx, byte [ecx + 0x3c]
mov byte [eax + 0x320], dl
mov edx, dword [esp + 0x7c]
mov dword [eax + 0x32c], edx
mov ebx, dword [esp + 0x78]
mov dword [eax + 0x330], ebx
mov ebp, dword [ecx + 0x20]
sub dword [ecx + 0x1c], edx
sub ebp, ebx
mov dword [ecx + 0x20], ebp
mov edx, dword [0x1eaa9f0]
test edx, edx
jne 0x66392e
mov dword [eax + 0x318], ecx
jmp 0x66393b
lea edi, [eax + 0x318]
mov eax, ecx
call fcn.00465d80
mov byte [esp + 0x228], 1
add esp, 0x218
ret
lea eax, [0x6a9700]
mov dword [esp], eax
call fcn.0040be50
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x1f
lea ecx, [0x6fc30b]
mov dword [eax], ecx
mov ecx, dword [0x78513c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00436d20
nop
call fcn.004649b0
jmp fcn.006624b0