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

Disassembly:
push ebx
push esi
mov esi, ecx
push edi
push ebp
sub esp, 0x88
mov byte [esp + 0x28], 0
mov eax, dword [esi + 0x10]
test eax, eax
fldz
fldz
je 0x440087
fld dword [esi + 8]
fstp st(1)
fld dword [esi + 4]
fstp st(2)
fld dword [esi]
add eax, 4
fstp dword [eax + 0x30]
fld st(1)
fstp dword [eax + 0x34]
fst dword [eax + 0x38]
mov eax, dword [esi + 0x14]
test eax, eax
je 0x440087
fld dword [esi + 8]
fstp st(1)
fld dword [esi + 4]
fstp st(2)
fld dword [esi]
add eax, 4
fstp dword [eax + 0x30]
fld st(1)
fstp dword [eax + 0x34]
fst dword [eax + 0x38]
movzx eax, byte [esi + 0x2e]
sub eax, 0x10
test eax, eax
ja 0x441744
jmp dword [eax*4 + 0x6884e0]
cmp byte [esi + 0x2f], 0
jne 0x441660
cmp dword [esi + 0x10], 0
jne 0x440220
lea eax, [esi + 0x10]
lea ecx, [esi + 0x14]
push 0xffffffffffffffff
push 0xffffffffffffffff
push ecx
push eax
mov ecx, esi
call fcn.0043d3b0
mov eax, dword [esi + 0x10]
test eax, eax
je 0x440212
push eax
call fcn.004db410
pop ecx
mov eax, dword [esi + 0x14]
test eax, eax
je 0x440220
push eax
call fcn.004db410
pop ecx
mov edx, dword [esi + 0x10]
test edx, edx
fldz
fldz
je 0x4417b7
mov bl, byte [esi + 0x2e]
cmp bl, 9
je 0x440248
mov al, bl
add al, 0xf6
cmp al, 3
jbe 0x440248
cmp bl, 0xe
jne 0x440655
movzx eax, bl
sub eax, 9
cmp eax, 5
ja case.default.0x440257
jmp dword [eax*4 + 0x6884c8]
cmp dword [esp + 0xa0], 0
je 0x4417b0
add edx, 0x34
mov ecx, dword [esp + 0xa0]
fcompp
mov eax, edx
push dword [0x688214]
push dword [eax + 8]
push dword [edx + 4]
push dword [edx]
call fcn.005b7f20
test al, al
jne case.0x440d36.7
mov byte [esi + 0x2e], 0xa
mov eax, dword [0x974b34]
add eax, 0x2710
mov dword [esi + 0x1c], eax
jmp case.0x440d36.7
fld dword [0x688344]
fadd dword [edx + 0x3c]
lea eax, [esp + 0x48]
push 0
push eax
push eax
fstp dword [esp]
fcompp
push dword [edx + 0x38]
push dword [edx + 0x34]
call fcn.005c2ca0
add esp, 0x14
test al, al
je 0x4402e3
fld dword [0x6882c0]
fadd dword [esp + 0x48]
mov eax, dword [esi + 0x10]
fstp dword [eax + 0x3c]
mov ecx, dword [esi + 0x10]
add ecx, 4
call fcn.004df910
mov ecx, dword [esi + 0x10]
call fcn.00489360
mov ebp, dword [0x974b34]
mov byte [esp + 8], 0
mov eax, dword [esi + 0x1c]
cmp ebp, eax
jbe 0x44030d
mov byte [esp + 8], 1
mov ebx, dword [0xa0fdec]
mov eax, ebx
mov edi, dword [eax + 8]
sub edi, 1
jb 0x44036e
mov ebp, edi
imul ebp, ebp, 0x5dc
mov edx, dword [ebx + 4]
movzx eax, byte [edx + edi]
and eax, 0x80
je 0x440337
xor ecx, ecx
jmp 0x44033b
mov ecx, dword [ebx]
add ecx, ebp
test ecx, ecx
je 0x440363
mov edx, dword [esi + 0x10]
add edx, 0x34
mov eax, edx
push dword [0x688204]
push dword [eax + 8]
push dword [edx + 4]
push dword [edx]
call fcn.005b7f20
test al, al
je 0x440363
mov byte [esp + 8], 1
sub ebp, 0x5dc
sub edi, 1
jae 0x440325
cmp byte [esp + 8], 0
je case.0x440d36.7
mov eax, dword [esi + 0x10]
add eax, 0x34
push 1
push 0
push eax
push 8
push 0
push 0
call fcn.005c5740
mov eax, dword [esi + 0x10]
add esp, 0x18
test eax, eax
je 0x4403b5
push eax
call fcn.004db330
pop ecx
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x4403ae
mov ebx, dword [ecx]
push 1
call dword [ebx + 8]
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4403d8
push eax
call fcn.004db330
pop ecx
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x4403d1
mov ebp, dword [ecx]
push 1
call dword [ebp + 8]
mov dword [esi + 0x14], 0
mov byte [esi + 0x2f], 1
mov byte [esi + 0x2e], 0
jmp case.0x440d36.7
fld dword [0x688344]
fadd dword [edx + 0x3c]
lea eax, [esp + 0x48]
push 0
push eax
push eax
fstp dword [esp]
fcompp
push dword [edx + 0x38]
push dword [edx + 0x34]
call fcn.005c2ca0
add esp, 0x14
test al, al
je 0x44041d
fld dword [0x6882c0]
fadd dword [esp + 0x48]
mov eax, dword [esi + 0x10]
fstp dword [eax + 0x3c]
mov ecx, dword [esi + 0x10]
add ecx, 4
call fcn.004df910
mov ecx, dword [esi + 0x10]
call fcn.00489360
mov ebx, dword [0xa0fdec]
mov byte [esp + 0xc], 0
mov eax, ebx
mov ebp, dword [eax + 8]
sub ebp, 1
jb 0x4404a2
mov eax, ebp
mov dword [esp + 4], ebp
imul eax, ebp, 0x5dc
mov dword [esp + 4], eax
mov edx, dword [ebx + 4]
movzx eax, byte [edx + ebp]
and eax, 0x80
je 0x440467
xor ecx, ecx
jmp 0x44046d
mov ecx, dword [ebx]
add ecx, dword [esp + 4]
test ecx, ecx
je 0x440495
mov edi, dword [esi + 0x10]
add edi, 0x34
mov eax, edi
push dword [0x688214]
push dword [eax + 8]
push dword [edi + 4]
push dword [edi]
call fcn.005b7f20
test al, al
je 0x440495
mov byte [esp + 0xc], 1
sub dword [esp + 4], 0x5dc
sub ebp, 1
jae 0x440455
cmp byte [esp + 0xc], 0
jne case.0x440d36.7
mov byte [esi + 0x2e], 0xc
mov eax, dword [0x974b34]
add eax, 0x2710
mov dword [esi + 0x1c], eax
jmp case.0x440d36.7
fld dword [0x688348]
fmul dword [0x97542c]
fsubr dword [edx + 0x78]
fstp dword [edx + 0x78]
mov ecx, dword [esi + 0x10]
fld dword [0x97542c]
lea eax, [ecx + 0x70]
add ecx, 4
fmul dword [eax + 8]
lea edi, [ecx + 0x30]
fadd dword [edi + 8]
fstp st(1)
fld dword [0x97542c]
fmul dword [eax + 4]
fadd dword [edi + 4]
fstp st(2)
fld dword [0x97542c]
fmul dword [eax]
fadd dword [edi]
fstp dword [ecx + 0x30]
fld st(1)
fstp dword [ecx + 0x34]
fst dword [ecx + 0x38]
fcompp
mov ecx, dword [esi + 0x10]
add ecx, 4
call fcn.004df910
mov ecx, dword [esi + 0x10]
call fcn.00489360
fld dword [0x688344]
mov edx, dword [esi + 0x10]
lea eax, [esp + 0x48]
fadd dword [edx + 0x3c]
push 0
push eax
push eax
fstp dword [esp]
push dword [edx + 0x38]
push dword [edx + 0x34]
call fcn.005c2ca0
add esp, 0x14
test al, al
je case.0x440d36.7
fld dword [esp + 0x48]
mov eax, dword [esi + 0x10]
fcomp dword [eax + 0x3c]
fnstsw ax
test ah, 5
jne case.0x440d36.7
mov byte [esi + 0x2e], 0xe
jmp case.0x440d36.7
fld dword [0x688344]
fadd dword [edx + 0x3c]
lea eax, [esp + 0x48]
push 0
push eax
push eax
fstp dword [esp]
fcompp
push dword [edx + 0x38]
push dword [edx + 0x34]
call fcn.005c2ca0
add esp, 0x14
test al, al
je 0x4405a4
fld dword [esp + 0x48]
mov eax, dword [esi + 0x10]
fstp dword [eax + 0x3c]
mov ecx, dword [esi + 0x10]
add ecx, 4
call fcn.004df910
mov ecx, dword [esi + 0x10]
call fcn.00489360
cmp dword [esp + 0xa0], 0
je case.0x440d36.7
mov edx, dword [esi + 0x10]
mov ecx, dword [esp + 0xa0]
add edx, 0x34
mov eax, edx
push dword [0x688214]
push dword [eax + 8]
push dword [edx + 4]
push dword [edx]
call fcn.005b7f20
test al, al
je case.0x440d36.7
mov eax, dword [esi + 0x10]
test eax, eax
je 0x440612
push eax
call fcn.004db330
pop ecx
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x44060b
mov ebx, dword [ecx]
push 1
call dword [ebx + 8]
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x14]
test eax, eax
je 0x440635
push eax
call fcn.004db330
pop ecx
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x44062e
mov edi, dword [ecx]
push 1
call dword [edi + 8]
mov dword [esi + 0x14], 0
mov ecx, 0xa10b93
mov byte [esi + 0x2f], 1
push 0
push 0x59
mov byte [esi + 0x2e], 0
mov byte [esp + 0x30], 1
call fcn.005f9980
jmp case.0x440d36.7
mov byte [esp + 0x2c], 0
movsx ebx, word [edx + 0x5c]
movzx eax, word [0x68e938]
mov ebp, ebx
cmp eax, ebp
jne 0x440750
cmp dword [esp + 0xa0], 0
je 0x4406b0
lea edx, [edx + 0x34]
mov ecx, dword [esp + 0xa0]
fcompp
mov eax, edx
push dword [0x688214]
push dword [eax + 8]
push dword [edx + 4]
push dword [edx]
call fcn.005b7f20
test al, al
je 0x440844
mov byte [esp + 0x2c], 1
jmp 0x440844
mov ecx, dword [esp + 0x9c]
lea ebx, [edx + 0x34]
add ecx, 0x34
mov eax, ebx
fld dword [ecx + 8]
fstp st(2)
fld st(1)
fsub dword [eax + 8]
fcomp dword [0x6881fc]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x4406e2
fld st(1)
fsub dword [ebx + 8]
fchs
jmp 0x4406e7
fld st(1)
fsub dword [ebx + 8]
fstp st(2)
fld st(1)
fcomp dword [0x688214]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x441762
fld dword [ebx + 4]
fstp st(1)
fld dword [ecx + 4]
fstp st(2)
fld st(1)
fsub st(1)
fld st(2)
fsub st(2)
fmulp st(1)
fld dword [ebx]
fstp st(2)
fld dword [ecx]
fstp st(3)
fld st(2)
fsub st(2)
fld st(3)
fsub st(3)
fmulp st(1)
faddp st(1)
fstp st(2)
fld st(1)
fcomp dword [0x68834c]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x441770
mov byte [esp + 0x2c], 1
jmp 0x441777
movzx eax, word [0x68e940]
cmp eax, ebx
jne 0x4407a0
cmp dword [esp + 0xa0], 0
je 0x441780
lea edi, [edx + 0x34]
mov ecx, dword [esp + 0xa0]
fcompp
mov eax, edi
push dword [0x688214]
push dword [eax + 8]
push dword [edi + 4]
push dword [edi]
call fcn.005b7f20
test al, al
je 0x440844
mov byte [esp + 0x2c], 1
jmp 0x440844
cmp dword [esp + 0xa0], 0
jne 0x441787
lea ecx, [edx + 0x34]
mov edx, dword [esp + 0x9c]
add edx, 0x34
mov eax, ecx
fld dword [edx + 8]
fstp st(2)
fld st(1)
fsub dword [eax + 8]
fcomp dword [0x6881fc]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x4407e0
fld st(1)
fsub dword [ecx + 8]
fchs
jmp 0x4407e5
fld st(1)
fsub dword [ecx + 8]
fstp st(2)
fld st(1)
fcomp dword [0x688214]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x441790
fld dword [ecx + 4]
fstp st(1)
fld dword [edx + 4]
fstp st(2)
fld st(1)
fsub st(1)
fld st(2)
fsub st(2)
fmulp st(1)
fld dword [ecx]
fstp st(2)
fld dword [edx]
fstp st(3)
fld st(2)
fsub st(2)
fld st(3)
fsub st(3)
fmulp st(1)
faddp st(1)
fstp st(2)
fld st(1)
fcomp dword [0x68834c]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x441797
fcompp
mov byte [esp + 0x2c], 1
cmp byte [esp + 0x2c], 0
je 0x440b70
mov eax, dword [esi + 0x10]
movsx ebx, word [eax + 0x5c]
movzx eax, word [0x68e928]
cmp ebx, eax
jne 0x440868
mov ebx, 0x26
jmp 0x4408b4
movzx eax, word [0x68e930]
cmp ebx, eax
jne 0x440880
mov ebx, 0x25
jmp 0x4408b4
movzx eax, word [0x68e924]
cmp ebx, eax
jne 0x440892
mov ebx, 0x26
jmp 0x4408b4
lea eax, [ebx + 1]
mov edx, ebx
test eax, eax
ja 0x4408a2
jmp dword [eax*4 + 0x6884c4]
mov ecx, dword [ebx*4 + 0x92d4d0]
call fcn.00629c70
mov ebx, eax
jmp 0x4408b4
mov ebp, ebx
cmp ebp, 0x25
jge 0x4408d0
call fcn.00429fc0
test al, al
je 0x4408d0
mov byte [esp + 0x2c], 0
jmp 0x440b70
cmp ebp, 0x25
jge 0x440b78
test ebp, ebp
je 0x440b78
push ebx
call fcn.005d5730
pop ecx
mov ecx, dword [eax + 0x60]
mov dword [esp + 0x1c], ecx
call fcn.004bc140
mov edi, dword [esp + 0x1c]
lea edi, [edi*8]
lea edi, [edi + edi*2]
mov edx, dword [eax + edi + 0x408]
cmp edx, ebp
je 0x440b78
mov ebx, dword [esi + 0x10]
movsx eax, word [ebx + 0x5c]
lea eax, [eax + eax*4]
cmp byte [eax*4 + 0x94dde0], 1
je 0x440930
mov byte [esp + 0x2c], 0
jmp 0x440b78
test edx, edx
je 0x440966
call fcn.004bc140
cmp dword [eax + edi + 0x414], 0
jne 0x440997
mov ebp, dword [esp + 0x1c]
mov al, 1
add ebp, 0xfffffffc
mov cl, 1
cmp ebp, 1
jbe 0x440955
xor cl, cl
test cl, cl
jne 0x440962
cmp dword [esp + 0x1c], 6
je 0x440962
xor al, al
test al, al
jne 0x440997
mov edi, dword [0x974b34]
call fcn.004bc140
sub edi, dword [eax + 0x6d0]
cmp edi, 0x5dc
jae 0x440b78
mov dword [0x97874c], 6
mov byte [esp + 0x2c], 0
jmp 0x440b78
mov ebx, dword [esp + 0x1c]
mov dword [0x97874c], 6
add ebx, 0xfffffffc
mov al, 1
cmp ebx, 1
mov dl, 1
jbe 0x4409b3
xor dl, dl
test dl, dl
jne 0x4409c0
cmp dword [esp + 0x1c], 6
je 0x4409c0
xor al, al
test al, al
je 0x440ade
mov al, byte [esi + 0x2e]
cmp al, 4
je 0x4409db
cmp al, 3
je 0x4409db
cmp al, 2
jne 0x440ade
mov ebp, dword [esi + 0x10]
movsx eax, word [ebp + 0x5c]
movzx ecx, word [0x68e928]
cmp eax, ecx
jne 0x4409f4
mov ebx, 0x26
jmp 0x440a3a
movzx edx, word [0x68e930]
cmp eax, edx
jne 0x440a06
mov ebx, 0x25
jmp 0x440a3a
movzx ebp, word [0x68e924]
cmp eax, ebp
jne 0x440a18
mov ebx, 0x26
jmp 0x440a3a
lea ebx, [eax + 1]
mov ecx, eax
test ebx, ebx
ja 0x440a28
jmp dword [ebx*4 + 0x6884c0]
mov ecx, dword [eax*4 + 0x92d4d0]
call fcn.00629c70
mov ebx, eax
jmp 0x440a3a
push ebx
mov dword [esp + 0x14], ebx
call fcn.005d5730
cmp byte [esi + 0x2e], 1
pop ecx
mov ecx, dword [eax + 0x60]
je 0x440acb
lea ebp, [ecx - 4]
mov dl, 1
cmp ebp, 1
mov al, 1
jbe 0x440a5c
xor al, al
test al, al
jne 0x440a67
cmp ecx, 6
je 0x440a67
xor dl, dl
test dl, dl
je 0x440acb
mov eax, dword [esi + 0x18]
test eax, eax
jne 0x440a85
mov al, byte [esi + 0x30]
and al, 1
jne 0x440aba
mov eax, dword [esp + 0x10]
movzx eax, word [eax*2 + 0x687fb4]
mov ecx, dword [esp + 0x9c]
push eax
push ebx
call fcn.004ff860
mov eax, dword [esp + 0x10]
mov ecx, 0xa10b93
mov dword [esp + 0x40], eax
push eax
fild dword [esp + 0x44]
fstp dword [esp]
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x64]
push 0x38
push eax
call fcn.005f9dc0
mov dword [esi + 0x18], 0
mov al, byte [esi + 0x30]
and al, 0xfe
or al, 1
mov byte [esi + 0x30], al
call fcn.004bc140
add eax, edi
add eax, 0x408
mov ecx, eax
call fcn.005ca3e0
mov al, byte [esi + 0x30]
shr al, 1
and al, 1
jne 0x440b3e
push 0
call fcn.004ab080
movzx eax, word [eax + 0xec]
pop ecx
cmp eax, 3
ja case.default.0x440afb
jmp dword [eax*4 + 0x6884b0]
push 0
push 0
push 0x688350
jmp 0x440b21
push 0
push 0
push str.PU_CF3
jmp 0x440b21
push 0
push 0
push str.PU_CF4
mov ecx, 0x94b228
call fcn.00584f50
push eax
call fcn.0055bfe0
add esp, 0xc
mov al, byte [esi + 0x30]
and al, 0xfd
or al, 2
mov byte [esi + 0x30], al
cmp dword [0x9b6a94], 0
jne 0x440b4c
mov byte [esp + 0x2c], 0
mov ebx, dword [0x974b34]
call fcn.004bc140
sub ebx, dword [eax + 0x6d0]
cmp ebx, 0x5dc
jae 0x440b78
mov byte [esp + 0x2c], 0
jmp 0x440b78
mov al, byte [esi + 0x30]
and al, 0xfd
mov byte [esi + 0x30], al
cmp byte [esp + 0x2c], 0
je case.0x440d36.7
mov eax, dword [esi + 0x10]
movsx ecx, word [eax + 0x5c]
movzx eax, word [0x68e928]
mov edi, ecx
cmp eax, edi
jne 0x440bd6
mov ebp, dword [esp + 0xa4]
imul ebp, ebp, 0x2e
mov al, byte [ebp*8 + 0x94ae74]
and eax, 0xff
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x9c]
fild dword [esp + 0x40]
fsub dword [0x6882cc]
fcomp dword [eax + 0x358]
fnstsw ax
and ah, 5
cmp ah, 1
je case.0x440d36.7
movzx eax, word [0x68e930]
cmp eax, ecx
jne 0x440c20
mov edx, dword [esp + 0xa4]
imul edx, edx, 0x2e
mov al, byte [edx*8 + 0x94ae73]
and eax, 0xff
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x9c]
fild dword [esp + 0x40]
fsub dword [0x6882cc]
fcomp dword [eax + 0x354]
fnstsw ax
and ah, 5
cmp ah, 1
je case.0x440d36.7
movzx eax, word [0x68e938]
cmp eax, ecx
jne 0x440c42
mov eax, dword [esp + 0x9c]
mov eax, dword [eax + 0x5f4]
cmp dword [eax + 0x20], 0
je case.0x440d36.7
movzx eax, word [0x68e93c]
cmp eax, ecx
jne 0x440c74
call fcn.0044fe30
test al, al
jne case.0x440d36.7
call fcn.00429fc0
test al, al
jne case.0x440d36.7
cmp byte [0x68dd68], 0
je case.0x440d36.7
cmp byte [esi + 0x2e], 0x10
jne 0x440c91
fld dword [esi + 0xc]
fcomp dword [0x68833c]
fnstsw ax
and ah, 5
cmp ah, 1
je case.0x440d36.7
mov eax, dword [esi + 0x10]
movsx edi, word [eax + 0x5c]
movzx eax, word [0x68e94c]
mov ebp, edi
cmp eax, ebp
je 0x440cc3
movzx eax, word [0x68e950]
cmp eax, edi
je 0x440cc3
push 0x64
push 0x78
push 0
call fcn.004ab080
pop ecx
mov ecx, eax
call fcn.004ad300
mov eax, dword [esi + 0x10]
movsx edx, word [eax + 0x5c]
movzx eax, word [0x68e928]
cmp edx, eax
jne 0x440ce0
mov ebx, 0x26
jmp 0x440d26
movzx eax, word [0x68e930]
cmp edx, eax
jne 0x440cf2
mov ebx, 0x25
jmp 0x440d26
movzx eax, word [0x68e924]
cmp edx, eax
jne 0x440d04
mov ebx, 0x26
jmp 0x440d26
lea eax, [edx + 1]
mov ebx, edx
test eax, eax
ja 0x440d14
jmp dword [eax*4 + 0x6884ac]
mov ecx, dword [edx*4 + 0x92d4d0]
call fcn.00629c70
mov ebx, eax
jmp 0x440d26
movzx eax, byte [esi + 0x2e]
mov edi, ebx
dec eax
cmp eax, 0x11
ja case.0x440d36.7
jmp dword [eax*4 + 0x688464]
mov ebp, dword [esp + 0xa4]
imul ebp, ebp, 0x170
movsx eax, word [edi*2 + 0x688000]
cmp dword [ebp + 0x94add0], eax
jl 0x440e50
mov ecx, dword [esi + 0x10]
movsx eax, word [ecx + 0x5c]
push dword [esp + 0xa4]
push eax
call fcn.0043d910
test al, al
pop ecx
pop ecx
jne 0x440dda
mov ecx, dword [esp + 0x9c]
push 0
push ebx
call fcn.00535260
test al, al
je case.0x440d36.7
movzx eax, word [edi*2 + 0x687f68]
mov ecx, dword [esp + 0x9c]
push 1
push eax
push ebx
call fcn.004ffa50
mov ecx, dword [esp + 0x9c]
push ebx
call fcn.004ffa30
mov ecx, dword [esp + 0x9c]
mov byte [ecx + 0x60c], al
mov edx, dword [esi + 0x10]
movsx eax, word [edx + 0x5c]
mov ecx, 0xa10b93
add eax, 0xfffffef2
push eax
push 0x4d
call fcn.005f9980
movsx eax, word [edi*2 + 0x688000]
mov byte [esp + 0x28], 1
sub dword [ebp + 0x94add0], eax
mov eax, dword [esi + 0x10]
test eax, eax
je 0x440e10
push eax
call fcn.004db330
pop ecx
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x440e09
mov ebx, dword [ecx]
push 1
call dword [ebx + 8]
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x14]
test eax, eax
je 0x440e33
push eax
call fcn.004db330
pop ecx
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x440e2c
mov edi, dword [ecx]
push 1
call dword [edi + 8]
mov dword [esi + 0x14], 0
mov eax, dword [0x974b34]
add eax, 0x1388
mov dword [esi + 0x1c], eax
mov byte [esi + 0x2f], 1
jmp case.0x440d36.7
push 0xffffffffffffffff
push 0x1770
push 0xffffffffffffffff
push str.PU_MONY
call fcn.0042ede0
add esp, 0x10
jmp case.0x440d36.7
mov edx, dword [esi + 0x10]
movsx eax, word [edx + 0x5c]
push dword [esp + 0xa4]
push eax
call fcn.0043d910
test al, al
pop ecx
pop ecx
jne 0x440fc5
mov ecx, dword [esp + 0x9c]
push 0
push ebx
call fcn.00535260
test al, al
je case.0x440d36.7
test edi, edi
je 0x440f60
mov eax, dword [esi + 0x18]
test eax, eax
je 0x440ee0
mov ecx, dword [esp + 0x9c]
push 1
push eax
push ebx
call fcn.004ffa50
mov ecx, dword [esp + 0x9c]
push 0
call fcn.004ffa30
mov ecx, dword [esp + 0x9c]
movsx ecx, byte [ecx + 0x60c]
cmp ecx, eax
jmp 0x440f23
mov al, byte [esi + 0x30]
and al, 1
jne 0x440ef4
movzx eax, word [edi*2 + 0x687fb4]
push 1
push eax
jmp 0x440ef8
push 1
push 0
mov ecx, dword [esp + 0xa4]
push ebx
call fcn.004ffa50
mov ecx, dword [esp + 0x9c]
push 0
call fcn.004ffa30
mov ecx, dword [esp + 0x9c]
movsx edx, byte [ecx + 0x60c]
cmp edx, eax
jne 0x440f3f
mov ecx, dword [esp + 0x9c]
push ebx
call fcn.004ffa30
mov ecx, dword [esp + 0x9c]
mov byte [ecx + 0x60c], al
mov ecx, dword [esi + 0x10]
movsx eax, word [ecx + 0x5c]
mov ecx, 0xa10b93
add eax, 0xfffffef2
push eax
push 0x4e
call fcn.005f9980
jmp 0x440fc5
mov ebx, dword [esi + 0x10]
movsx ebp, word [ebx + 0x5c]
movzx eax, word [0x68e940]
cmp eax, ebp
jne 0x440fc5
cmp dword [esp + 0xa0], 0
je 0x440fc5
mov ecx, 0xa10b93
push 0
push 0x54
call fcn.005f9980
mov byte [0xa10b28], 1
call fcn.004bc200
mov dword [0x978d98], eax
mov eax, dword [esi + 0x10]
add eax, 0x34
fld dword [eax]
fstp dword [0xa0cfa8]
fld dword [eax + 4]
fstp dword [0xa0cfac]
fld dword [eax + 8]
mov eax, dword [0x974b34]
fstp dword [0xa0cfb0]
mov dword [0x974c2c], eax
movzx eax, byte [esi + 0x2e]
sub eax, 2
je 0x440fd5
sub eax, 0xd
je 0x440fe1
jmp 0x44100d
mov eax, dword [0x974b34]
add eax, 0x7530
jmp 0x44100a
mov edx, dword [esi + 0x10]
movsx edi, word [edx + 0x5c]
movzx eax, word [0x68e938]
cmp eax, edi
jne 0x441000
mov eax, dword [0x974b34]
add eax, 0x493e0
jmp 0x44100a
mov eax, dword [0x974b34]
add eax, 0x57e40
mov dword [esi + 0x1c], eax
mov byte [esp + 0x28], 1
mov eax, dword [esi + 0x10]
test eax, eax
je 0x441035
push eax
call fcn.004db330
pop ecx
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x44102e
mov ebx, dword [ecx]
push 1
call dword [ebx + 8]
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x14]
test eax, eax
je 0x441058
push eax
call fcn.004db330
pop ecx
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x441051
mov ebp, dword [ecx]
push 1
call dword [ebp + 8]
mov dword [esi + 0x14], 0
mov byte [esi + 0x2f], 1
jmp case.0x440d36.7
mov edx, dword [esi + 0x10]
movsx eax, word [edx + 0x5c]
push dword [esp + 0xa4]
push eax
call fcn.0043d910
test al, al
pop ecx
pop ecx
jne 0x441228
mov ecx, dword [esp + 0x9c]
push 0
push ebx
call fcn.00535260
test al, al
jne 0x441190
mov eax, dword [esi + 0x10]
movsx ecx, word [eax + 0x5c]
movzx eax, word [0x68e928]
cmp ecx, eax
jne 0x4410b0
mov edi, 0x26
jmp 0x4410f6
movzx eax, word [0x68e930]
cmp ecx, eax
jne 0x4410c2
mov edi, 0x25
jmp 0x4410f6
movzx eax, word [0x68e924]
cmp ecx, eax
jne 0x4410d4
mov edi, 0x26
jmp 0x4410f6
lea eax, [ecx + 1]
mov edi, ecx
test eax, eax
ja 0x4410e4
jmp dword [eax*4 + 0x688460]
mov ecx, dword [ecx*4 + 0x92d4d0]
call fcn.00629c70
mov edi, eax
jmp 0x4410f6
push edi
mov ebx, edi
call fcn.005d5730
cmp byte [esi + 0x2e], 1
pop ecx
mov ecx, dword [eax + 0x60]
je case.0x440d36.7
lea ebp, [ecx - 4]
mov dl, 1
cmp ebp, 1
mov al, 1
jbe 0x44111a
xor al, al
test al, al
jne 0x441125
cmp ecx, 6
je 0x441125
xor dl, dl
test dl, dl
je case.0x440d36.7
mov eax, dword [esi + 0x18]
test eax, eax
jne 0x441143
mov al, byte [esi + 0x30]
and al, 1
jne 0x441174
movzx eax, word [ebx*2 + 0x687fb4]
mov ecx, dword [esp + 0x9c]
push eax
push edi
call fcn.004ff860
mov dword [esp + 0x40], ebx
push eax
fild dword [esp + 0x44]
mov ecx, 0xa10b93
fstp dword [esp]
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x64]
push 0x38
push eax
call fcn.005f9dc0
mov dword [esi + 0x18], 0
mov al, byte [esi + 0x30]
and al, 0xfe
or al, 1
mov byte [esi + 0x30], al
jmp case.0x440d36.7
test edi, edi
je 0x441202
mov eax, dword [esi + 0x18]
test eax, eax
je 0x4411a0
push 1
jmp 0x4411ba
mov al, byte [esi + 0x30]
and al, 1
je 0x4411b0
push 1
push 0
jmp 0x4411bb
movzx eax, word [edi*2 + 0x687f68]
push 1
push eax
mov ecx, dword [esp + 0xa4]
push ebx
call fcn.004ffa50
mov ecx, dword [esp + 0x9c]
push 0
call fcn.004ffa30
mov ecx, dword [esp + 0x9c]
movsx ecx, byte [ecx + 0x60c]
cmp ecx, eax
jne 0x441202
mov ecx, dword [esp + 0x9c]
push ebx
call fcn.004ffa30
mov ecx, dword [esp + 0x9c]
mov byte [ecx + 0x60c], al
mov eax, dword [esi + 0x10]
movsx eax, word [eax + 0x5c]
movzx edx, word [0x68e948]
mov ebp, eax
cmp edx, ebp
je 0x441228
add eax, 0xfffffef2
mov ecx, 0xa10b93
push eax
push 0x4e
call fcn.005f9980
mov byte [esp + 0x28], 1
mov eax, dword [esi + 0x10]
test eax, eax
je 0x441250
push eax
call fcn.004db330
pop ecx
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x441249
mov ebx, dword [ecx]
push 1
call dword [ebx + 8]
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x14]
test eax, eax
je 0x441273
push eax
call fcn.004db330
pop ecx
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x44126c
mov ebp, dword [ecx]
push 1
call dword [ebp + 8]
mov dword [esi + 0x14], 0
mov byte [esi + 0x2f], 1
mov byte [esi + 0x2e], 0
jmp case.0x440d36.7
mov edx, dword [esp + 0xa4]
imul edx, edx, 0x170
inc dword [edx + 0x94add8]
add dword [edx + 0x94add0], 0x64
mov eax, dword [edx + 0x94addc]
mov edi, dword [edx + 0x94add8]
cmp edi, eax
jne 0x4412e2
push str.All_collectables_have_been_picked_up_n
call fcn.00648b10
pop ecx
push 0xffffffffffffffff
push 0x1388
push 0xffffffffffffffff
push str.CO_ALL
call fcn.0042ede0
movzx eax, byte [0xa10b03]
add esp, 0x10
imul eax, eax, 0x2e
add dword [eax*8 + 0x94add0], 0x186a0
jmp 0x441311
movzx ebx, byte [0xa10b03]
imul ebx, ebx, 0x170
mov ax, word [ebx + 0x94addc]
push eax
mov ax, word [ebx + 0x94add8]
push 0x1388
push eax
push str.CO_ONE
call fcn.0042ede0
add esp, 0x10
mov byte [esp + 0x28], 1
mov eax, dword [esi + 0x10]
test eax, eax
je 0x441339
push eax
call fcn.004db330
pop ecx
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x441332
mov ebp, dword [ecx]
push 1
call dword [ebp + 8]
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x14]
test eax, eax
je 0x44135c
push eax
call fcn.004db330
pop ecx
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x441355
mov ebx, dword [ecx]
push 1
call dword [ebx + 8]
mov dword [esi + 0x14], 0
mov ecx, 0xa10b93
mov byte [esi + 0x2f], 1
push 0
push 0x56
mov byte [esi + 0x2e], 0
call fcn.005f9980
jmp case.0x440d36.7
mov edx, dword [esp + 0xa4]
mov eax, dword [esi + 0x18]
imul edx, edx, 0x2e
add dword [edx*8 + 0x94add0], eax
mov eax, dword [esi + 0x18]
push eax
push 0x688224
push 0x7f8380
call fcn.00648c60
mov byte [esp + 0x34], 1
mov eax, dword [esi + 0x10]
add esp, 0xc
test eax, eax
je 0x4413c9
push eax
call fcn.004db330
pop ecx
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x4413c2
mov edi, dword [ecx]
push 1
call dword [edi + 8]
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4413ec
push eax
call fcn.004db330
pop ecx
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x4413e5
mov ebp, dword [ecx]
push 1
call dword [ebp + 8]
mov dword [esi + 0x14], 0
mov ecx, 0xa10b93
mov byte [esi + 0x2f], 1
push 0
push 0x55
mov byte [esi + 0x2e], 0
call fcn.005f9980
mov ecx, dword [esp + 0x9c]
push 0x7a
call fcn.005226d0
jmp case.0x440d36.7
mov ebx, dword [esp + 0xa4]
mov ecx, 0xa10b93
imul ebx, ebx, 0x2e
push 0
push 0x55
fild dword [ebx*8 + 0x94add0]
fadd dword [esi + 0xc]
fnstcw word [esp + 0x38]
mov eax, dword [esp + 0x38]
or byte [esp + 0x39], 0xc
fldcw word [esp + 0x38]
mov dword [esp + 0x38], eax
fistp dword [ebx*8 + 0x94add0]
fldcw word [esp + 0x38]
mov dword [esi + 0xc], 0
call fcn.005f9980
jmp case.0x440d36.7
mov al, byte [esi + 0x30]
shr al, 1
and al, 1
jne case.0x440d36.7
mov al, byte [esi + 0x30]
and al, 0xfd
or al, 2
mov byte [esi + 0x30], al
lea eax, [esi + 0x26]
push 0
push 0
push eax
jmp 0x4415ca
or ecx, 0xffffffff
lea edi, [esi + 0x26]
xor eax, eax
repne scasb al, byte es:[edi]
mov edi, 0xfffffffe
sub edi, ecx
cmp edi, 2
jle case.default.0x4414b8
cmp byte [esi + edi + 0x24], 0x5f
jne case.default.0x4414b8
push 0
call fcn.004ab080
movzx eax, word [eax + 0xec]
pop ecx
cmp eax, 3
ja case.default.0x4414b8
jmp dword [eax*4 + 0x688450]
mov byte [esi + edi + 0x25], 0x4c
jmp case.default.0x4414b8
mov byte [esi + edi + 0x25], 0x54
jmp case.default.0x4414b8
mov byte [esi + edi + 0x25], 0x43
lea eax, [esi + 0x26]
mov edx, dword [esi + 0x18]
mov ecx, 0x94b228
push 0x821070
push 0
push 0
push 0
push 0
push 0
push edx
push eax
call fcn.00584f50
push eax
call fcn.00583ca0
add esp, 0x20
call fcn.0055bfd0
test al, al
jne 0x441516
push 0
push 0
push 0x821070
call fcn.0055bfe0
add esp, 0xc
cmp dword [0x9b6a94], 0
je case.0x440d36.7
call fcn.0044fe30
test al, al
je 0x441540
push 0
push 1
push str.PROP_2
jmp 0x4415ca
movzx eax, byte [0xa10b03]
mov ebx, dword [esi + 0x18]
imul eax, eax, 0x170
cmp dword [eax + 0x94add0], ebx
jb 0x4415c1
push 0
push 1
push 0
sub dword [eax + 0x94add0], ebx
call fcn.0055bfe0
mov byte [esp + 0x34], 1
mov eax, dword [esi + 0x10]
add esp, 0xc
test eax, eax
je 0x441594
push eax
call fcn.004db330
pop ecx
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x44158d
mov edi, dword [ecx]
push 1
call dword [edi + 8]
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4415b7
push eax
call fcn.004db330
pop ecx
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x4415b0
mov ebp, dword [ecx]
push 1
call dword [ebp + 8]
mov dword [esi + 0x14], 0
mov byte [esi + 0x2f], 1
mov byte [esi + 0x2e], 0
jmp case.0x440d36.7
push 0
push 1
push str.PROP_1
mov ecx, 0x94b228
call fcn.00584f50
push eax
call fcn.0055bfe0
add esp, 0xc
cmp byte [esi + 0x2f], 0
jne 0x441733
mov al, byte [esi + 0x2e]
cmp al, 4
je 0x4415fa
cmp al, 5
je 0x4415fa
cmp al, 8
jne 0x441733
mov eax, dword [esi + 0x1c]
mov ebx, dword [0x974b34]
cmp ebx, eax
jbe 0x441733
mov eax, dword [esi + 0x10]
test eax, eax
je 0x44162e
push eax
call fcn.004db330
pop ecx
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x441627
mov edi, dword [ecx]
push 1
call dword [edi + 8]
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x14]
test eax, eax
je 0x441651
push eax
call fcn.004db330
pop ecx
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x44164a
mov ebp, dword [ecx]
push 1
call dword [ebp + 8]
mov dword [esi + 0x14], 0
mov byte [esi + 0x2f], 1
mov byte [esi + 0x2e], 0
jmp 0x441733
mov eax, dword [esi + 0x1c]
mov edx, dword [0x974b34]
cmp edx, eax
jbe 0x441733
lea eax, [esp + 0x7c]
push eax
call fcn.004bc260
fld dword [esp + 0x84]
fsub dword [esi + 4]
lea eax, [esp + 0x74]
pop ecx
push eax
fstp dword [esp + 0x3c]
call fcn.004bc260
fld dword [esp + 0x78]
fsub dword [esi + 4]
lea eax, [esp + 0x68]
pop ecx
push eax
fmul dword [esp + 0x3c]
fstp dword [esp + 0x40]
call fcn.004bc260
fld dword [esp + 0x68]
fsub dword [esi]
lea eax, [esp + 0x5c]
pop ecx
push eax
fstp dword [esp + 0x38]
call fcn.004bc260
fldz
fld dword [esp + 0x5c]
fsub dword [esi]
pop ecx
fmul dword [esp + 0x34]
fstp st(1)
fadd dword [esp + 0x3c]
fcom dword [0x6883b8]
fnstsw ax
test ah, 0x45
je 0x4416fe
cmp byte [esi + 0x2e], 1
jne 0x4417c0
fcom dword [0x6883bc]
fnstsw ax
test ah, 0x45
jne 0x4417c7
lea eax, [esi + 0x10]
lea ecx, [esi + 0x14]
push 0xffffffffffffffff
push 0xffffffffffffffff
push ecx
push eax
mov ecx, esi
fstp st(0)
call fcn.0043d3b0
mov eax, dword [esi + 0x10]
test eax, eax
je 0x441733
push eax
call fcn.004db410
mov byte [esi + 0x2f], 0
mov eax, dword [esi + 0x14]
test eax, eax
pop ecx
je 0x441733
push eax
call fcn.004db410
pop ecx
mov al, byte [esp + 0x28]
add esp, 0x88
pop ebp
pop edi
pop esi
pop ebx
ret 0xc
fcompp
jmp 0x4401e1
fcompp
jmp 0x4402f6
fcompp
jmp 0x440844
fcompp
jmp 0x440844
fcompp
jmp 0x440844
fcompp
jmp 0x440844
fcompp
jmp 0x440844
fcompp
jmp 0x440844
fcompp
jmp 0x440844
fcompp
jmp case.0x440d36.7
fcompp
jmp case.0x440d36.7
fcompp
jmp 0x441733
fstp st(0)
jmp 0x441733
fstp st(0)
jmp 0x441733