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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x10c
mov eax, dword [0x5b4024]
test eax, eax
je 0x40f160
mov edx, dword [eax + 0x3bf70]
mov eax, dword [eax + 0x3bf58]
fld dword [0x5ec4f8]
mov ecx, dword [0x5b45f8]
cmp eax, 0x10
je 0x40e6b2
cmp eax, 4
je 0x40e6b2
fld dword [0x5ec6e8]
test edx, edx
setne al
and eax, 0xff
mov dword [esp + 0x4c], eax
push ecx
fild dword [esp]
fsubp st(2)
fxch st(1)
add esp, 4
fnstcw word [esp + 0x6e]
mov ax, word [esp + 0x6e]
mov ah, 0xc
mov word [esp + 0x6c], ax
mov eax, dword [0x545778]
fldcw word [esp + 0x6c]
fistp dword [esp + 0x50]
fldcw word [esp + 0x6e]
sub eax, 0x30
mov dword [esp + 0x48], eax
fild dword [0x5b45fc]
fsubp st(1)
fldcw word [esp + 0x6c]
fistp dword [esp + 0x54]
fldcw word [esp + 0x6e]
mov edx, dword [0x5b46ec]
test edx, edx
jle 0x40eb6d
mov edx, dword [esp + 0x54]
mov dword [esp + 0x28], 0
add edx, edx
mov dword [esp + 0x5c], 0
mov dword [esp + 0x24], edx
mov eax, dword [0x5ec138]
mov edx, dword [esp + 0x28]
mov ebx, dword [eax + edx*4]
test ebx, ebx
je 0x40eb54
cmp byte [ebx + 1], 0
je 0x40eb54
cmp word [ebx + 0x334], 0
jne 0x40ec12
mov eax, dword [ebx + 0x61c]
mov dword [esp + 0x44], eax
mov eax, dword [0x5b4268]
test eax, eax
je 0x40ebd0
mov eax, dword [ebx + 0x5ac]
movsx edx, word [ebx + 0x5a8]
mov eax, dword [eax + 0x5c]
mov edx, dword [eax + edx*4]
mov dword [esp + 0x1c], edx
push ebx
mov eax, dword [ebx + 0x3b0]
push eax
mov eax, dword [ebx + 0x3ac]
push eax
call fcn.00402580
mov ebp, eax
mov eax, dword [ebx + 0x3b0]
push eax
mov eax, dword [ebx + 0x3ac]
push eax
call fcn.00402210
mov dword [esp + 0x44], eax
add esp, 0x14
mov edx, dword [esp + 0x1c]
cmp edx, dword [0x5b46d8]
jae 0x40e55a
fld dword [ebx + 0x3b0]
fnstcw word [esp + 0x6e]
mov ax, word [esp + 0x6e]
mov ah, 0xc
mov word [esp + 0x6c], ax
fldcw word [esp + 0x6c]
fist dword [esp + 0x2c]
fldcw word [esp + 0x6e]
mov eax, dword [ebx + 0x5f4]
test eax, eax
je 0x40e2d5
mov eax, dword [eax + 0x61c]
dec eax
mov dword [esp + 0x44], eax
mov ecx, dword [ebx + 0x5d8]
test ecx, ecx
je 0x40e2fd
cmp byte [ebx + 0x229], 0
je 0x40ec23
mov eax, dword [ebx + 0x5d0]
mov eax, dword [eax + 0x61c]
dec eax
mov dword [esp + 0x44], eax
test ebp, ebp
je 0x40e386
mov edx, dword [ebp + 0x5ac]
movsx eax, word [ebp + 0x5a8]
shl eax, 5
mov edx, dword [edx + 0x90]
fld dword [ebp + 0x3b4]
fadd dword [eax + edx + 0x1c]
fld dword [ebx + 0x3b4]
fucompp
fnstsw ax
test ah, 1
jne 0x40e386
mov edi, dword [ebp + 0x16c]
test edi, edi
jne 0x40e386
mov eax, dword [ebx + 0x5d0]
test eax, eax
je 0x40f1ee
cmp byte [ebx + 0x229], 0
jne 0x40f121
cmp byte [eax + 0x229], 0
jne 0x40f14d
test ecx, ecx
je 0x40f1ee
fld dword [0x5503e4]
fadd dword [ebp + 0x3b0]
fldcw word [esp + 0x6c]
fistp dword [esp + 0x2c]
fldcw word [esp + 0x6e]
mov eax, dword [ebx + 0x5d4]
test eax, eax
je 0x40e39b
mov eax, dword [eax + 0x61c]
inc eax
mov dword [esp + 0x44], eax
mov eax, dword [ebx + 0x16c]
test eax, eax
je 0x40e3b4
mov edx, dword [0x545778]
add eax, edx
sub eax, 0x2e
mov dword [esp + 0x2c], eax
sub esp, 4
fstp dword [esp]
mov eax, dword [ebx + 0x3ac]
push eax
call fcn.00401fa0
pop esi
cmp eax, 2
pop edi
je 0x40ee76
mov edx, dword [ebx + 0x5ac]
xor eax, eax
mov ecx, dword [edx + 0x88]
test ecx, ecx
je 0x40e3f6
push edi
push edi
movsx eax, word [ebx + 0x5a8]
push eax
push edx
call fcn.0040e0d0
add esp, 0x10
test byte [ebx + 0x630], 1
je 0x40e405
lea eax, [ebx + 0x624]
test eax, eax
je 0x40f04a
lea edi, [esp + 0xb8]
push ecx
push 0x48
push eax
push edi
call sub.msvcrt.dll_memcpy
add esp, 0x10
mov cl, byte [ebx + 0x177]
lea eax, [ecx - 1]
cmp al, 5
ja 0x40e442
mov edx, dword [esp + 0xc4]
mov eax, edx
shr ax, 1
test al, al
js 0x40f1b1
mov edx, dword [esp + 0xb8]
test edx, edx
je 0x40efc9
mov al, byte [ebx + 0x3a2]
mov byte [esp + 0x23], al
test al, al
je 0x40e4b0
mov ax, word [ebx + 0x3a3]
mov esi, dword [ebx + 0x58]
and eax, 0xffff
cmp esi, eax
jg 0x40eb78
mov ax, word [ebx + 0x3a5]
and eax, 0xffff
cmp esi, eax
jle 0x40eb8c
mov ecx, dword [0x5b4148]
mov eax, 0xcccccccd
mul ecx
mov eax, edx
shr eax, 5
lea eax, [eax + eax*4]
shl eax, 3
sub ecx, eax
cmp ecx, 0x13
jbe 0x40ebaf
lea esi, [esi]
cmp byte [ebx + 0x3a7], 0
jne 0x40e510
mov dl, byte [esp + 0xc6]
mov al, dl
and edx, 0xfffffffd
shr al, 1
xor eax, 1
and eax, 1
add eax, eax
or edx, eax
mov byte [esp + 0xc6], dl
and edx, 0x10
je 0x40e510
test word [esp + 0xc6], 0xffe0
je 0x40e510
mov ax, word [esp + 0xc6]
mov edx, 0x168
mov ecx, eax
and eax, 0x1f
sar cx, 5
sub dx, cx
shl edx, 5
or eax, edx
mov word [esp + 0xc6], ax
nop
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x40ede8
mov eax, dword [0x545778]
sub eax, 5
cmp dword [esp + 0x2c], eax
jg 0x40ee88
mov edx, dword [0x545778]
lea eax, [edx - 5]
push eax
mov eax, dword [0x5ebe98]
fild dword [esp]
fld dword [eax + 0x3b0]
add esp, 4
fucompp
fnstsw ax
test ah, 0x45
je 0x40ef16
mov dword [esp + 0x5c], edi
cmp byte [ebx + 0x17a], 1
je 0x40e6c0
mov eax, dword [ebx + 0x5ac]
mov edx, dword [eax + 0x7c]
test edx, edx
je 0x40ec45
movsx eax, word [ebx + 0x5a8]
mov esi, dword [edx + eax*4]
test esi, esi
js 0x40ec39
test esi, esi
je 0x40ea78
fld dword [ebx + 0x3b4]
fldz
fxch st(1)
fucompp
fnstsw ax
test ah, 1
jne 0x40ea78
mov eax, dword [ebx + 0x3b0]
push eax
mov edi, dword [ebx + 0x3ac]
push edi
call fcn.00401fa0
pop edx
test eax, eax
pop ecx
jne 0x40f07b
cmp byte [ebx + 0x17b], 0
jne 0x40f0ad
test ebp, ebp
je 0x40ec55
cmp ebx, ebp
je 0x40ec55
mov edx, dword [ebp + 0x5ac]
movsx eax, word [ebp + 0x5a8]
shl eax, 5
mov edx, dword [edx + 0x90]
fld dword [ebp + 0x3b4]
fld dword [eax + edx + 0x1c]
fld st(1)
fadd st(1)
fld dword [ebx + 0x3b4]
fucompp
fnstsw ax
test ah, 1
jne 0x40ec51
fild dword [esp + 0x50]
fsubr dword [ebx + 0x3ac]
fnstcw word [esp + 0x6e]
mov ax, word [esp + 0x6e]
mov edx, dword [0x545778]
mov ah, 0xc
add edx, edx
mov word [esp + 0x6c], ax
fldcw word [esp + 0x6c]
fistp dword [esp + 0x68]
fldcw word [esp + 0x6e]
lea eax, [edx - 0xa]
sub edx, 0x64
fld dword [ebx + 0x3b0]
fild dword [esp + 0x54]
fld st(1)
fsub st(4)
mov edi, dword [esp + 0x68]
fsub st(3)
fsub st(1)
fldcw word [esp + 0x6c]
fistp dword [esp + 0x64]
fldcw word [esp + 0x6e]
push eax
fild dword [esp]
fsubrp st(2)
fxch st(1)
add esp, 4
fsubrp st(3)
fxch st(2)
fsubrp st(1)
fsubrp st(1)
fldcw word [esp + 0x6c]
fistp dword [esp + 0x60]
fldcw word [esp + 0x6e]
fld1
fadd dword [ebp + 0x3b0]
fldcw word [esp + 0x6c]
fistp dword [esp + 0x68]
fldcw word [esp + 0x6e]
mov ebp, dword [esp + 0x68]
sub edx, ebp
mov dword [esp + 0x3c], edx
jmp 0x40ed06
fldz
jmp 0x40e187
mov edx, dword [esp + 0x1c]
cmp edx, dword [0x5b46d8]
jae 0x40e567
mov eax, dword [ebx + 0x5ac]
mov edx, dword [eax + 0x7c]
test edx, edx
je 0x40e6ef
movsx eax, word [ebx + 0x5a8]
mov edi, dword [edx + eax*4]
test edi, edi
je 0x40ea78
mov esi, dword [0x5b40e0]
test esi, esi
je 0x40ea78
mov ecx, dword [0x5454cc]
test ecx, ecx
je 0x40ea78
fld dword [ebx + 0x3b4]
fstp dword [esp + 0x58]
fldz
fld dword [esp + 0x58]
fucompp
fnstsw ax
test ah, 1
jne 0x40ea78
cmp byte [ebx + 0x17b], 0
jne 0x40f207
mov eax, dword [esp + 0x58]
push eax
mov edi, dword [ebx + 0x3b0]
push edi
mov esi, dword [ebx + 0x3ac]
push esi
call fcn.00402170
add esp, 0xc
mov edi, eax
test eax, eax
js 0x40f2b8
shl eax, 5
mov edx, dword [0x5b4024]
add eax, edx
fld dword [ebx + 0x3b4]
fld dword [eax + 0x3b9cc]
fnstcw word [esp + 0x6e]
fld st(1)
fsub st(1)
mov ax, word [esp + 0x6e]
mov ah, 0xc
mov word [esp + 0x6c], ax
mov eax, dword [0x5454cc]
fldcw word [esp + 0x6c]
fist dword [esp + 0x40]
fldcw word [esp + 0x6e]
mov edx, dword [esp + 0x40]
neg edx
imul edx, eax
fchs
fild dword [0x5454c8]
fmulp st(1)
mov eax, edx
sar eax, 0x1f
shr eax, 0x18
fmul dword [0x550450]
add eax, edx
sar eax, 8
push eax
fild dword [esp]
add esp, 4
fld dword [ebx + 0x3ac]
fild dword [esp + 0x50]
fsubr st(1)
fldcw word [esp + 0x6c]
fistp dword [esp + 0x34]
fldcw word [esp + 0x6e]
fld dword [ebx + 0x3b0]
fild dword [esp + 0x54]
fsubr st(1)
fsubrp st(5)
fxch st(4)
fldcw word [esp + 0x6c]
fistp dword [esp + 0x38]
fldcw word [esp + 0x6e]
fxch st(4)
sub esp, 0xc
fstp dword [esp + 8]
fadd st(2), st(0)
fxch st(2)
fstp dword [esp + 4]
fadd st(2), st(0)
fxch st(2)
fstp dword [esp]
fxch st(1)
fstp dword [esp + 0x1c]
fstp dword [esp + 0xc]
call fcn.00402170
fld dword [esp + 0xc]
fadd dword [ebx + 0x3b0]
sub esp, 8
mov esi, eax
fstp dword [esp + 4]
fld dword [esp + 0x24]
fadd dword [ebx + 0x3ac]
fstp dword [esp]
call fcn.00401fa0
add esp, 0x14
test eax, eax
jne 0x40f21b
mov eax, esi
xor eax, 0xffffffff
mov edx, eax
shr edx, 0x1f
mov eax, edi
xor eax, 0xffffffff
shr eax, 0x1f
test dl, dl
jne 0x40f23a
test al, al
je 0x40e8a7
shl edi, 5
mov ebp, dword [0x5b4024]
add edi, ebp
fld dword [edi + 0x3b9cc]
fnstcw word [esp + 0x6e]
mov ax, word [esp + 0x6e]
mov ah, 0xc
mov esi, dword [esp + 0x40]
mov word [esp + 0x6c], ax
fldcw word [esp + 0x6c]
fistp dword [esp + 0x68]
fldcw word [esp + 0x6e]
mov eax, dword [esp + 0x68]
add esi, eax
mov dword [esp + 0x40], esi
mov edi, dword [0x545778]
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x38]
lea esi, [edi + edi - 0xa]
sub esi, eax
mov eax, dword [ebx + 0x5ac]
sub esi, ebp
mov ebp, dword [0x54577c]
mov edx, dword [eax + 0x84]
test edx, edx
je 0x40e907
cmp byte [ebx + 0x3a7], 0
je 0x40f29c
movsx eax, word [ebx + 0x5a8]
mov ecx, dword [esp + 0x34]
lea edx, [edx + eax*4]
movsx eax, word [edx]
add ecx, eax
mov dword [esp + 0x34], ecx
movsx eax, word [edx + 2]
mov edx, dword [esp + 0x38]
sub esi, eax
add edx, eax
mov dword [esp + 0x38], edx
push eax
push 0x48
push 0x54fe80
lea eax, [esp + 0x7c]
push eax
call sub.msvcrt.dll_memcpy
mov edx, dword [0x5b40e0]
add esp, 0x10
mov eax, edx
xor eax, 0xffffffff
mov cl, byte [esp + 0x7e]
sar eax, 0x1f
and ecx, 0xfffffffd
and edx, eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x78], edx
xor edx, edx
mov dl, byte [0x5454d0]
and eax, 0xfffffe01
add edx, edx
or eax, edx
mov edx, dword [esp + 0x5c]
mov word [esp + 0x7c], ax
mov eax, dword [edx + 0x10]
mov dword [esp + 0x80], eax
mov al, byte [edx + 0xe]
and eax, 2
or ecx, eax
mov eax, dword [esp + 0x5c]
mov byte [esp + 0x7e], cl
and ecx, 0xfffffffb
mov edx, dword [eax + 0x14]
mov eax, dword [0x5454cc]
imul edx, eax
mov eax, edx
sar eax, 0x1f
shr eax, 0x18
add eax, edx
mov edx, dword [esp + 0x5c]
sar eax, 8
mov dword [esp + 0x84], eax
mov al, byte [edx + 0xe]
and eax, 4
or ecx, eax
mov eax, dword [esp + 0x40]
mov byte [esp + 0x7e], cl
mov ecx, dword [esp + 0x90]
add eax, ecx
test byte [esp + 0x7e], 4
mov dword [esp + 0x90], eax
je 0x40e9c5
neg eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x84]
test eax, eax
js 0x40f34c
mov edx, dword [esp + 0x5c]
mov ax, word [edx + 0xe]
mov dx, word [esp + 0x7e]
and eax, 0xffffffe0
and edx, 0x1f
or edx, eax
mov word [esp + 0x7e], dx
mov edx, dword [esp + 0x5c]
mov eax, dword [edx + 0x18]
mov edx, dword [0x5454c8]
add eax, edx
mov dword [esp + 0x88], eax
push eax
push eax
push 0
lea eax, [esp + 0x7c]
push eax
mov eax, dword [esp + 0x2c]
push eax
mov ecx, dword [esp + 0x5c]
push ecx
mov edx, dword [esp + 0x50]
push edx
mov eax, dword [esp + 0x50]
push eax
call fcn.004b25e0
add esp, 0x20
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x40ea78
mov al, byte [esp + 0x7e]
sub edi, ebp
mov dl, al
and eax, 0xfffffffb
shr dl, 2
xor edx, 1
and edx, 1
shl edx, 2
or eax, edx
mov byte [esp + 0x7e], al
neg dword [esp + 0x90]
push eax
push eax
push 0
lea edx, [esp + 0x7c]
push edx
mov eax, dword [esp + 0x2c]
push eax
lea eax, [edi - 0x2774]
push eax
push esi
mov eax, dword [esp + 0x50]
push eax
call fcn.004b25e0
add esp, 0x20
cmp byte [ebx + 0x59e], 0
je 0x40eb54
movsx eax, byte [ebx + 4]
lea eax, [eax + eax*2]
lea ecx, [ebx + eax*4]
mov edx, dword [ecx + 0x13c]
test edx, edx
je 0x40eb54
cmp byte [ebx + 0x595], 1
jne 0x40eb54
fld dword [ebx + 0x3b0]
push eax
push eax
mov eax, dword [esp + 0x4c]
add eax, eax
push eax
push 0
push edx
fnstcw word [esp + 0x82]
mov ax, word [esp + 0x82]
mov ah, 0xc
mov word [esp + 0x80], ax
fldcw word [esp + 0x80]
fist dword [esp + 0x7c]
fldcw word [esp + 0x82]
mov eax, dword [esp + 0x7c]
push eax
fsub dword [ebx + 0x3b4]
fild dword [esp + 0x6c]
fsubp st(1)
fild dword [ecx + 0x144]
faddp st(1)
fldcw word [esp + 0x84]
fistp dword [esp + 0x80]
fldcw word [esp + 0x86]
mov eax, dword [esp + 0x80]
push eax
fild dword [esp + 0x6c]
fsubr dword [ebx + 0x3ac]
fild dword [ecx + 0x140]
faddp st(1)
fldcw word [esp + 0x88]
fistp dword [esp + 0x84]
fldcw word [esp + 0x8a]
mov eax, dword [esp + 0x84]
push eax
call fcn.004b25e0
add esp, 0x20
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
cmp dword [0x5b46ec], eax
jg 0x40e204
add esp, 0x10c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ax, word [ebx + 0x3a5]
and eax, 0xffff
cmp esi, eax
jg 0x40e4b0
mov ecx, dword [0x5b4148]
mov eax, 0xcccccccd
mul ecx
mov eax, edx
shr eax, 4
lea eax, [eax + eax*4]
shl eax, 2
sub ecx, eax
cmp ecx, 9
ja 0x40e4b0
test esi, esi
jle 0x40e4b0
movsx eax, byte [esp + 0x23]
mov eax, dword [ebx + eax*4 + 0x234]
mov dword [esp + 0xb8], eax
jmp 0x40e4b0
mov eax, dword [0x5b4264]
test eax, eax
jne 0x40e247
cmp byte [ebx + 0x594], 0
je 0x40e247
mov ecx, dword [0x5b4148]
mov eax, 0xcccccccd
mul ecx
mov eax, edx
shr eax, 4
lea eax, [eax + eax*4]
shl eax, 2
sub ecx, eax
cmp ecx, 9
jbe 0x40ea78
jmp 0x40e247
sub esp, 0xc
push ebx
call fcn.00407fb0
add esp, 0x10
jmp 0x40e230
mov eax, dword [ebx + 0x5d0]
mov eax, dword [eax + 0x61c]
inc eax
mov dword [esp + 0x44], eax
jmp 0x40e2fd
movsx esi, byte [ebx + 0x179]
jmp 0x40e58a
movsx esi, byte [ebx + 0x179]
jmp 0x40e582
fstp st(0)
fstp st(0)
mov edx, dword [0x5b4024]
test edx, edx
je 0x40f0c1
mov eax, dword [esp + 0x30]
test eax, eax
js 0x40f0c1
fild dword [esp + 0x50]
fsubr dword [ebx + 0x3ac]
fnstcw word [esp + 0x6e]
mov ax, word [esp + 0x6e]
mov ah, 0xc
mov word [esp + 0x6c], ax
mov eax, dword [esp + 0x30]
fldcw word [esp + 0x6c]
fistp dword [esp + 0x68]
fldcw word [esp + 0x6e]
shl eax, 5
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x68]
fld dword [ebx + 0x3b0]
fld dword [edx + eax + 0x3b9cc]
fild dword [esp + 0x54]
fld st(2)
fsub st(2)
mov edx, dword [0x545778]
lea eax, [edx + edx - 0xa]
fsub st(1)
fldcw word [esp + 0x6c]
fistp dword [esp + 0x64]
fldcw word [esp + 0x6e]
push eax
fild dword [esp]
fsubrp st(3)
fxch st(2)
add esp, 4
fsubrp st(1)
mov ebp, dword [0x54577c]
sub edx, ebp
mov ebp, dword [esp + 0x48]
sub edx, 0x2774
fsubrp st(1)
mov dword [esp + 0x3c], edx
fldcw word [esp + 0x6c]
fistp dword [esp + 0x60]
fldcw word [esp + 0x6e]
mov eax, dword [ebx + 0x5ac]
mov edx, dword [eax + 0x84]
test edx, edx
je 0x40ed4a
cmp byte [ebx + 0x3a7], 0
je 0x40f067
movsx eax, word [ebx + 0x5a8]
lea edx, [edx + eax*4]
movsx eax, word [edx]
add edi, eax
movsx eax, word [edx + 2]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
add ecx, eax
sub edx, eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x60], edx
push ecx
push 0x48
push 0x54fe80
lea edx, [esp + 0x7c]
push edx
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x8c]
and eax, 0xfffffe01
or eax, 4
mov word [esp + 0x8c], ax
pop eax
pop edx
cmp byte [ebx + 0x3a7], 0
mov al, byte [esp + 0x86]
sete dl
add edx, edx
and eax, 0xfffffffd
or eax, edx
dec esi
mov byte [esp + 0x86], al
push 0
lea eax, [esp + 0x7c]
push eax
mov eax, dword [esi*4 + 0x545d70]
push eax
push ebp
mov ebp, dword [esp + 0x7c]
push ebp
push edi
call fcn.004b25e0
add esp, 0x20
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x40ea78
push edx
push edx
push 0
mov eax, dword [esi*4 + 0x545d70]
lea edx, [esp + 0x7c]
push edx
push eax
mov eax, dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x78]
push eax
push edi
call fcn.004b25e0
add esp, 0x20
jmp 0x40ea78
push eax
push eax
mov eax, dword [esp + 0x4c]
push eax
push edi
mov eax, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x40]
push eax
fld dword [ebx + 0x3b0]
fsub dword [ebx + 0x3b4]
fnstcw word [esp + 0x86]
mov ax, word [esp + 0x86]
mov ah, 0xc
fild dword [esp + 0x6c]
fsubp st(1)
mov word [esp + 0x84], ax
fldcw word [esp + 0x84]
fistp dword [esp + 0x80]
fldcw word [esp + 0x86]
mov eax, dword [esp + 0x80]
push eax
fild dword [esp + 0x6c]
fsubr dword [ebx + 0x3ac]
fldcw word [esp + 0x88]
fistp dword [esp + 0x84]
fldcw word [esp + 0x8a]
mov eax, dword [esp + 0x84]
push eax
call fcn.004b25e0
add esp, 0x20
jmp 0x40e556
mov edx, dword [0x545778]
sub edx, 0x33
mov dword [esp + 0x2c], edx
jmp 0x40e3d1
push eax
push eax
mov esi, dword [esp + 0x4c]
push esi
push edi
mov ecx, dword [esp + 0x2c]
push ecx
mov edx, dword [esp + 0x40]
push edx
fld dword [ebx + 0x3b0]
fsub dword [ebx + 0x3b4]
fnstcw word [esp + 0x86]
mov ax, word [esp + 0x86]
mov ah, 0xc
fild dword [esp + 0x6c]
fsubp st(1)
mov word [esp + 0x84], ax
fldcw word [esp + 0x84]
fistp dword [esp + 0x80]
fldcw word [esp + 0x86]
mov eax, dword [esp + 0x80]
push eax
fild dword [esp + 0x6c]
fsubr dword [ebx + 0x3ac]
fldcw word [esp + 0x88]
fistp dword [esp + 0x84]
fldcw word [esp + 0x8a]
mov eax, dword [esp + 0x84]
push eax
call fcn.004b25e0
add esp, 0x20
jmp 0x40e52e
mov eax, dword [0x5b4158]
push esi
push esi
add edx, edx
lea eax, [eax + eax*4]
mov ecx, dword [esp + 0x4c]
lea eax, [eax + eax*4]
shl eax, 2
sub eax, ecx
push eax
push edi
mov esi, dword [esp + 0x2c]
lea eax, [edx - 0x64]
push esi
sub edx, 0xa
mov ecx, dword [esp + 0x40]
sub eax, ecx
push eax
push edx
fild dword [esp]
fsub dword [ebx + 0x3b0]
add esp, 4
fsub dword [ebx + 0x3b4]
fnstcw word [esp + 0x86]
mov ax, word [esp + 0x86]
mov ah, 0xc
fild dword [esp + 0x6c]
fsubp st(1)
mov word [esp + 0x84], ax
fldcw word [esp + 0x84]
fistp dword [esp + 0x80]
fldcw word [esp + 0x86]
mov eax, dword [esp + 0x80]
push eax
fild dword [esp + 0x6c]
fsubr dword [ebx + 0x3ac]
fldcw word [esp + 0x88]
fistp dword [esp + 0x84]
fldcw word [esp + 0x8a]
mov eax, dword [esp + 0x84]
push eax
call fcn.004b25e0
mov dword [esp + 0x7c], edi
add esp, 0x20
jmp 0x40e55a
mov edx, dword [esp + 0xc4]
mov eax, edx
shl eax, 0xf
shr eax, 0x18
test al, al
jle 0x40efe8
cmp al, byte [ebx + 0x2b0]
jle 0x40f137
mov eax, dword [ebx + 0x5cc]
test eax, eax
je 0x40effd
shr edx, 9
test dl, dl
js 0x40f1d2
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x40f1cc
cmp byte [ebx + 0x2b3], 0
je 0x40e451
mov edx, dword [0x5b4024]
test edx, edx
je 0x40f1de
mov eax, dword [0x5b4160]
test eax, eax
je 0x40f1de
shl eax, 0xa
lea eax, [edx + eax + 0x3bc80]
mov dword [esp + 0xb8], eax
jmp 0x40e451
lea edi, [esp + 0xb8]
push esi
push 0x48
push 0x54fe80
push edi
call sub.msvcrt.dll_memcpy
add esp, 0x10
jmp 0x40e421
movsx eax, word [ebx + 0x5a8]
lea edx, [edx + eax*4]
movsx eax, word [edx]
sub edi, eax
jmp 0x40ed32
mov eax, dword [ebx + 0x3b4]
push eax
mov edi, dword [ebx + 0x3b0]
push edi
mov ecx, dword [ebx + 0x3ac]
push ecx
call fcn.00402170
add esp, 0xc
test eax, eax
js 0x40ea78
cmp byte [ebx + 0x17b], 0
je 0x40e5d3
push ebx
call fcn.004016f0
pop edx
test eax, eax
je 0x40ea78
jmp 0x40e5d3
fild dword [esp + 0x50]
fsubr dword [ebx + 0x3ac]
fnstcw word [esp + 0x6e]
mov ax, word [esp + 0x6e]
mov edx, dword [0x545778]
mov ah, 0xc
mov word [esp + 0x6c], ax
lea eax, [edx + edx - 0xa]
fldcw word [esp + 0x6c]
fistp dword [esp + 0x68]
fldcw word [esp + 0x6e]
fld dword [ebx + 0x3b0]
fild dword [esp + 0x54]
fld st(1)
fsub st(1)
mov edi, dword [esp + 0x68]
fldcw word [esp + 0x6c]
fistp dword [esp + 0x64]
fldcw word [esp + 0x6e]
push eax
fild dword [esp]
fxch st(1)
fxch st(2)
fxch st(1)
add esp, 4
jmp 0x40ece0
test ecx, ecx
je 0x40e36e
cmp byte [eax + 0x229], 0
jne 0x40f14d
jmp 0x40e366
movsx eax, al
mov eax, dword [ebx + eax*4 + 0x234]
mov dword [esp + 0xb8], eax
jmp 0x40efe8
mov esi, dword [eax + 0x5d8]
test esi, esi
jne 0x40e36e
jmp 0x40e366
fild dword [0x5b45f8]
fnstcw word [esp + 0x6e]
fldz
fsubr st(1), st(0)
fxch st(1)
mov ax, word [esp + 0x6e]
mov ah, 0xc
mov dword [esp + 0x48], 0x80000064
mov word [esp + 0x6c], ax
mov dword [esp + 0x4c], 0
fldcw word [esp + 0x6c]
fistp dword [esp + 0x50]
fldcw word [esp + 0x6e]
fild dword [0x5b45fc]
fsubp st(1)
fldcw word [esp + 0x6c]
fistp dword [esp + 0x54]
fldcw word [esp + 0x6e]
jmp 0x40e1dc
xor eax, eax
and edx, 0xfffffe01
mov al, cl
add eax, eax
or edx, eax
mov word [esp + 0xc4], dx
jmp 0x40e442
mov eax, dword [ebx + 0x234]
mov dword [esp + 0xb8], eax
jmp 0x40f00c
mov dword [esp + 0xb8], 0x545060
jmp 0x40e451
fld1
fadd dword [ebp + 0x3b0]
fldcw word [esp + 0x6c]
fistp dword [esp + 0x2c]
fldcw word [esp + 0x6e]
jmp 0x40e386
push ebx
call fcn.004016f0
pop edx
test eax, eax
je 0x40ea78
jmp 0x40e735
mov eax, esi
xor eax, 0xffffffff
mov edx, eax
shr edx, 0x1f
test dl, dl
jne 0x40e858
test ebp, ebp
jne 0x40e858
jmp 0x40ea78
test al, al
jne 0x40f27e
shl esi, 5
mov ecx, dword [0x5b4024]
add esi, ecx
mov edx, dword [esp + 0x40]
fld dword [esi + 0x3b9cc]
fnstcw word [esp + 0x6e]
mov ax, word [esp + 0x6e]
mov ah, 0xc
mov word [esp + 0x6c], ax
fldcw word [esp + 0x6c]
fistp dword [esp + 0x68]
fldcw word [esp + 0x6e]
mov eax, dword [esp + 0x68]
sub edx, eax
mov dword [esp + 0x40], edx
jmp 0x40e8a7
shl edi, 5
mov eax, dword [0x5b4024]
shl esi, 5
fld dword [eax + edi + 0x3b9cc]
fsub dword [eax + esi + 0x3b9cc]
jmp 0x40e87d
movsx eax, word [ebx + 0x5a8]
mov ecx, dword [esp + 0x34]
lea edx, [edx + eax*4]
movsx eax, word [edx]
sub ecx, eax
mov dword [esp + 0x34], ecx
jmp 0x40e8f7
fld dword [ebx + 0x3b4]
fnstcw word [esp + 0x6e]
mov ax, word [esp + 0x6e]
mov ecx, dword [0x5454cc]
mov ah, 0xc
mov word [esp + 0x6c], ax
fldcw word [esp + 0x6c]
fist dword [esp + 0x40]
fldcw word [esp + 0x6e]
mov edx, dword [esp + 0x40]
neg edx
imul edx, ecx
fld st(0)
fchs
fild dword [0x5454c8]
fmulp st(1)
mov eax, edx
sar eax, 0x1f
shr eax, 0x18
fmul dword [0x550450]
add eax, edx
sar eax, 8
push eax
fild dword [esp]
add esp, 4
fld dword [ebx + 0x3ac]
fild dword [esp + 0x50]
fsubr st(1)
fldcw word [esp + 0x6c]
fistp dword [esp + 0x34]
fldcw word [esp + 0x6e]
fld dword [ebx + 0x3b0]
fild dword [esp + 0x54]
fsubr st(1)
fldcw word [esp + 0x6c]
fistp dword [esp + 0x38]
fldcw word [esp + 0x6e]
fxch st(3)
fxch st(2)
fxch st(1)
fxch st(4)
jmp 0x40e7f9
mov dl, byte [esp + 0x7e]
neg eax
mov dword [esp + 0x84], eax
mov al, dl
shr al, 2
and edx, 0xfffffffb
xor eax, 1
and eax, 1
shl eax, 2
or edx, eax
mov byte [esp + 0x7e], dl
jmp 0x40e9d4