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

Disassembly:
jmp 0x50a190
sub esp, 0x730
push ebx
push ebp
push esi
mov esi, dword [esp + 0x740]
push edi
mov ebp, 1
fld dword [esi + 0xaf8]
mov ecx, dword [esi + 0xaf0]
mov eax, dword [esi + 0xc7c]
fsub dword [0x6341bc]
mov edx, dword [esi + 0xae8]
push ecx
push ecx
mov dword [esp + 0x34], eax
lea eax, [esp + 0x28]
mov dword [esp + 0x6c], ebp
fstp dword [esp]
push edx
push eax
call fcn.00403cba
mov edx, dword [eax]
add esp, 4
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
lea ecx, [esp + 0x5c]
push ecx
call fcn.00401802
mov ecx, eax
add esp, 0x10
mov edx, ecx
xor ebx, ebx
mov eax, dword [edx]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x18], eax
mov edx, dword [edx + 8]
mov dword [esp + 0x1c], edx
fld dword [esp + 0x1c]
fcomp dword [0x6341a0]
fnstsw ax
test ah, 0x41
je 0x50a296
lea eax, [esp + 0x60]
lea edx, [esp + 0x5c]
push eax
push edx
mov edx, dword [ecx]
sub esp, 0xc
mov eax, esp
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
call fcn.00403f21
fld dword [0xb02c00]
fmul dword [0x6341a0]
fld dword [esp + 0x30]
fabs
fdivp st(1)
add esp, 0x14
fld dword [esp + 0x5c]
fabs
fld st(1)
fadd qword [0x6447b8]
fcompp
fnstsw ax
test ah, 1
jne 0x50a294
fld dword [esp + 0x60]
fabs
fxch st(1)
fadd qword [0x6447a8]
fcompp
fnstsw ax
test ah, 1
je 0x50a29a
jmp 0x50a296
fstp st(0)
mov dword [esp + 0x64], ebx
cmp dword [esi + 0xb5c], ebx
jne 0x50a2af
push str.MOTN
call fcn.004035a8
add esp, 4
push esi
call fcn.004017d5
mov eax, dword [esi + 0xd4c]
mov edi, dword [esi + 0x38]
add esp, 4
cmp eax, ebx
je 0x50a2e6
push 0x3f800000
push 0x3f800000
push 0xbf800000
call fcn.00402c52
add esp, 0xc
mov dword [esp + 0x6c], 0xffffffff
jmp 0x50a2ea
mov dword [esp + 0x6c], ebp
push 5
push 0
call fcn.00402f1d
push 0x4000
call fcn.004040cf
push 0xffffc000
call fcn.004040d4
mov edx, dword [edi + 0x18]
add edx, 0x5c
push edx
call fcn.00401212
lea eax, [esp + 0xd4]
push eax
call fcn.00401212
lea ecx, [esp + 0x68]
push ecx
call fcn.00404386
mov edx, eax
lea ebx, [esi + 0xce0]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [ebx], eax
mov eax, dword [esp + 0xf4]
mov dword [ebx + 4], ecx
mov ecx, dword [esp + 0xec]
push eax
push ecx
mov dword [ebx + 8], edx
call fcn.00403724
push 0
mov dword [esp + 0x58], eax
call fcn.00401131
push 0xb02810
call fcn.00401960
call fcn.004015fa
lea edx, [esp + 0xac]
push edx
call fcn.00401212
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc0]
push eax
push ecx
call fcn.00403724
push 1
mov word [esi + 0xb0a], ax
call fcn.00404106
push 0
call fcn.00401131
add esp, 0x40
push 7
call fcn.00402581
mov edx, dword [edi + 0x20]
add edx, 0x5c
push edx
call fcn.00401212
push 0xb
call fcn.00402581
mov eax, dword [edi + 0x30]
add eax, 0x5c
push eax
call fcn.00401212
push 0
call fcn.00402581
mov ecx, dword [edi]
add ecx, 0x5c
push ecx
call fcn.00401212
fld dword [esi + 0x4c]
fmul qword [0x654a68]
add esp, 0x18
push 0
push ecx
fstp dword [esp]
fld dword [esi + 0x4c]
fmul qword [0x654a58]
push ecx
fstp dword [esp]
call fcn.0040281a
lea edx, [esp + 0x5c]
push edx
call fcn.00404386
mov ebx, dword [eax]
lea ecx, [esi + 0xab8]
push 0
mov ebp, dword [eax + 4]
mov dword [esp + 0x38], ebp
mov eax, dword [eax + 8]
mov dword [ecx], ebx
mov dword [esp + 0x3c], eax
mov dword [ecx + 4], ebp
mov dword [ecx + 8], eax
call fcn.00401131
fld dword [esi + 0x4c]
fmul qword [0x654a48]
add esp, 0x10
fstp dword [esp]
fld dword [esi + 0x4c]
fmul qword [0x654a38]
push ecx
fstp dword [esp]
push 0
call fcn.0040281a
lea edx, [esp + 0x5c]
push edx
call fcn.00404386
mov ecx, dword [eax]
push 1
mov dword [esp + 0x28], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x2c], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x30], eax
call fcn.00404106
fld dword [esp + 0x38]
fcomp dword [0x634198]
add esp, 0x14
fnstsw ax
test ah, 0x41
jne 0x50a55e
fld dword [esp + 0x18]
fcomp dword [0x634198]
fnstsw ax
test ah, 1
je 0x50a55e
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
sub esp, 0xc
mov ecx, esp
sub esp, 0xc
mov dword [ecx], edx
mov edx, dword [esp + 0x34]
mov dword [ecx + 4], eax
mov eax, esp
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x40]
mov dword [eax], ebx
mov dword [eax + 4], ebp
mov dword [eax + 8], ecx
call fcn.00403e13
fstp dword [esp + 0x14]
fld dword [esp + 0x3c]
fsub dword [esp + 0x30]
add esp, 0x14
push ecx
fstp dword [esp]
call fcn.00403724
push ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x20]
mov edx, esp
sub esp, 0xc
mov dword [edx], eax
mov eax, dword [esp + 0x34]
mov dword [edx + 4], ecx
mov ecx, esp
mov dword [edx + 8], eax
mov edx, dword [esp + 0x40]
mov dword [ecx], ebx
mov dword [ecx + 4], ebp
mov dword [ecx + 8], edx
call fcn.00404287
fdivr dword [esp + 0x3c]
call fcn.005f6ad0
fmul qword [0x634208]
fmul qword [0x6341f8]
call fcn.005f5950
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x80], eax
and eax, 0xffff
and ecx, 0xffff
sub ecx, eax
push ecx
call fcn.004040d4
add esp, 0x1c
mov edx, dword [edi + 0x50]
add edx, 0x5c
push edx
call fcn.00401212
push 1
call fcn.00404106
push 0
push esi
call fcn.00403bde
push 0
call fcn.00401131
push 8
call fcn.00402581
mov eax, dword [edi + 0x24]
add eax, 0x5c
push eax
call fcn.00401212
push 0xc
call fcn.00402581
mov ecx, dword [edi + 0x34]
add ecx, 0x5c
push ecx
call fcn.00401212
push 1
call fcn.00402581
mov edx, dword [edi + 4]
add edx, 0x5c
push edx
call fcn.00401212
fld dword [esi + 0x4c]
fmul qword [0x654a68]
add esp, 0x2c
push 0
push ecx
fstp dword [esp]
fld dword [esi + 0x4c]
fmul qword [0x654a58]
push ecx
fstp dword [esp]
call fcn.0040281a
lea eax, [esp + 0x5c]
push eax
call fcn.00404386
mov ebx, dword [eax]
lea ecx, [esi + 0xac4]
push 0
mov ebp, dword [eax + 4]
mov dword [esp + 0x38], ebp
mov eax, dword [eax + 8]
mov dword [ecx], ebx
mov dword [esp + 0x3c], eax
mov dword [ecx + 4], ebp
mov dword [ecx + 8], eax
call fcn.00401131
fld dword [esi + 0x4c]
fmul qword [0x654a48]
add esp, 0x10
fstp dword [esp]
fld dword [esi + 0x4c]
fmul qword [0x654a38]
push ecx
fstp dword [esp]
push 0
call fcn.0040281a
lea edx, [esp + 0x5c]
push edx
call fcn.00404386
mov ecx, dword [eax]
push 1
mov dword [esp + 0x28], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x2c], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x30], eax
call fcn.00404106
fld dword [esp + 0x38]
fcomp dword [0x634198]
add esp, 0x14
fnstsw ax
test ah, 0x41
jne 0x50a734
fld dword [esp + 0x18]
fcomp dword [0x634198]
fnstsw ax
test ah, 1
je 0x50a734
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
sub esp, 0xc
mov ecx, esp
sub esp, 0xc
mov dword [ecx], edx
mov edx, dword [esp + 0x34]
mov dword [ecx + 4], eax
mov eax, esp
mov dword [ecx + 8], edx
mov ecx, dword [esp + 0x40]
mov dword [eax], ebx
mov dword [eax + 4], ebp
mov dword [eax + 8], ecx
call fcn.00403e13
fstp dword [esp + 0x14]
fld dword [esp + 0x3c]
fsub dword [esp + 0x30]
add esp, 0x14
push ecx
fstp dword [esp]
call fcn.00403724
push ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x20]
mov edx, esp
sub esp, 0xc
mov dword [edx], eax
mov eax, dword [esp + 0x34]
mov dword [edx + 4], ecx
mov ecx, esp
mov dword [edx + 8], eax
mov edx, dword [esp + 0x40]
mov dword [ecx], ebx
mov dword [ecx + 4], ebp
mov dword [ecx + 8], edx
call fcn.00404287
fdivr dword [esp + 0x3c]
call fcn.005f6ad0
fmul qword [0x634208]
fmul qword [0x6341f8]
call fcn.005f5950
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x80], eax
and eax, 0xffff
and ecx, 0xffff
sub ecx, eax
push ecx
call fcn.004040d4
add esp, 0x1c
mov edx, dword [edi + 0x54]
add edx, 0x5c
push edx
call fcn.00401212
push 1
call fcn.00404106
push 1
push esi
call fcn.00403bde
push 1
push esi
call fcn.00403648
push 0
push 0
push 1
push esi
call fcn.0040407f
push 2
call fcn.00402581
push 0x8000
call fcn.004040cf
mov eax, dword [esi + 0x38]
add esp, 0x30
cmp eax, 0x73ec80
jne 0x50a788
mov ebp, 1
jmp 0x50a794
mov ebp, dword [esi + 0xb60]
and ebp, 0x20000
push 0
mov dword [esp + 0x14], ebp
call fcn.00401131
mov ebx, dword [esp + 0x34]
mov ax, word [esi + 0xb1c]
push ebx
push eax
call fcn.00403a99
movsx ecx, ax
mov dword [esp + 0x3c], ecx
add esp, 0xc
fild dword [esp + 0x30]
fabs
fcomp qword [0x654a28]
fnstsw ax
test ah, 0x41
jne 0x50a813
mov dx, word [esi + 0xb1c]
push ebx
push edx
call fcn.00403a99
add esp, 8
test ax, ax
jle 0x50a7eb
mov eax, 1
jmp 0x50a807
mov ax, word [esi + 0xb1c]
push ebx
push eax
call fcn.00403a99
add esp, 8
xor ecx, ecx
test ax, ax
setge cl
dec ecx
mov eax, ecx
shl eax, 0xc
add eax, ebx
mov word [esi + 0xb1c], ax
test ebp, ebp
jne 0x50a835
movsx edx, word [esi + 0xb1c]
mov eax, ebx
and eax, 0xffff
sub edx, eax
imul edx, dword [esp + 0x6c]
push edx
call fcn.004040ca
add esp, 4
mov ecx, dword [edi + 8]
add ecx, 0x5c
push ecx
call fcn.00401212
push 1
call fcn.00404106
mov ebp, dword [esp + 0x6c]
add esp, 8
test ebp, ebp
je 0x50a91d
mov dx, word [esi + 0xb1e]
push ebx
push edx
call fcn.00403a99
movsx eax, ax
mov dword [esp + 0x38], eax
add esp, 8
fild dword [esp + 0x30]
fabs
fcomp qword [0x654a28]
fnstsw ax
test ah, 0x41
jne 0x50a8c7
mov cx, word [esi + 0xb1e]
push ebx
push ecx
call fcn.00403a99
add esp, 8
test ax, ax
jle 0x50a89f
mov eax, 1
jmp 0x50a8bb
mov dx, word [esi + 0xb1e]
push ebx
push edx
call fcn.00403a99
add esp, 8
xor ecx, ecx
test ax, ax
setge cl
dec ecx
mov eax, ecx
shl eax, 0xc
add eax, ebx
mov word [esi + 0xb1e], ax
push 0
call fcn.00401131
lea edx, [esp + 0xc4]
push edx
call fcn.00401960
mov eax, dword [esp + 0x18]
add esp, 8
test eax, eax
jne 0x50a907
movsx eax, word [esi + 0xb1e]
mov ecx, ebx
and ecx, 0xffff
sub eax, ecx
imul eax, dword [esp + 0x6c]
neg eax
push eax
call fcn.004040ca
add esp, 4
mov edx, dword [edi + 0xc]
add edx, 0x5c
push edx
call fcn.00401212
push 1
call fcn.00404106
add esp, 8
push 9
call fcn.00402581
mov eax, dword [edi + 0x28]
add eax, 0x5c
push eax
call fcn.00401212
lea ecx, [esp + 0x148]
push ecx
call fcn.00401212
push 0
call fcn.00401131
push 0xb02810
call fcn.00401960
call fcn.004015fa
lea edx, [esp + 0x114]
push edx
call fcn.00401212
fld dword [esp + 0x130]
mov eax, dword [esp + 0x128]
add esp, 0x14
fchs
fstp dword [esp]
push eax
call fcn.00403724
neg eax
push 1
mov word [esi + 0xb0c], ax
call fcn.00404106
fld dword [esp + 0x164]
mov ecx, dword [esp + 0x15c]
add esp, 8
fchs
fstp dword [esp]
push ecx
call fcn.00403724
add esp, 8
neg eax
test ebp, ebp
je 0x50abd2
mov ecx, dword [0xcdc708]
mov dword [esp + 0x40], eax
test ecx, ecx
jne 0x50aa50
mov dx, word [esi + 0xb1c]
push edx
push eax
call fcn.00403a99
movsx eax, ax
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x48]
fild dword [esp + 0x18]
fmul dword [0x654a20]
fadd dword [esi + 0xb20]
fstp dword [esi + 0xb20]
mov cx, word [esi + 0xb1c]
push ecx
push edx
call fcn.00403a99
movsx eax, ax
movsx ecx, word [esi + 0xb1c]
mov dword [esp + 0x20], eax
add esp, 0x10
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
fmul dword [0x654a1c]
fiadd dword [esp + 0x10]
call fcn.005f5950
movsx edx, ax
mov dword [esp + 0x10], edx
mov word [esi + 0xb1c], ax
fild dword [esp + 0x10]
fadd dword [esi + 0xb20]
call fcn.005f5950
mov word [esi + 0xb1c], ax
mov ax, word [esi + 0xb1c]
push ebx
push eax
call fcn.00403a99
movsx ecx, ax
mov dword [esp + 0x18], ecx
add esp, 8
fild dword [esp + 0x10]
fabs
fcomp qword [0x654a28]
fnstsw ax
test ah, 0x41
jne 0x50aac0
mov dx, word [esi + 0xb1c]
push ebx
push edx
call fcn.00403a99
add esp, 8
test ax, ax
jle 0x50aa98
mov eax, 1
jmp 0x50aab4
mov ax, word [esi + 0xb1c]
push ebx
push eax
call fcn.00403a99
add esp, 8
xor ecx, ecx
test ax, ax
setge cl
dec ecx
mov eax, ecx
shl eax, 0xc
add eax, ebx
mov word [esi + 0xb1c], ax
mov ecx, dword [0xcdc708]
mov ax, word [esi + 0xb1c]
test ecx, ecx
mov dword [esp + 0x40], eax
jne 0x50ab62
mov dx, word [esi + 0xb1e]
push edx
push eax
call fcn.00403a99
movsx eax, ax
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x48]
fild dword [esp + 0x18]
fmul dword [0x654a20]
fadd dword [esi + 0xb24]
fstp dword [esi + 0xb24]
mov cx, word [esi + 0xb1e]
push ecx
push edx
call fcn.00403a99
movsx eax, ax
movsx ecx, word [esi + 0xb1e]
mov dword [esp + 0x20], eax
add esp, 0x10
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
fmul dword [0x654a1c]
fiadd dword [esp + 0x10]
call fcn.005f5950
movsx edx, ax
mov dword [esp + 0x10], edx
mov word [esi + 0xb1e], ax
fild dword [esp + 0x10]
fadd dword [esi + 0xb24]
call fcn.005f5950
mov word [esi + 0xb1e], ax
mov ax, word [esi + 0xb1e]
push ebx
push eax
call fcn.00403a99
movsx ecx, ax
mov dword [esp + 0x18], ecx
add esp, 8
fild dword [esp + 0x10]
fabs
fcomp qword [0x654a28]
fnstsw ax
test ah, 0x41
jne 0x50abd2
mov dx, word [esi + 0xb1e]
push ebx
push edx
call fcn.00403a99
add esp, 8
test ax, ax
jle 0x50abaa
mov eax, 1
jmp 0x50abc6
mov ax, word [esi + 0xb1e]
push ebx
push eax
call fcn.00403a99
add esp, 8
xor ecx, ecx
test ax, ax
setge cl
dec ecx
mov eax, ecx
shl eax, 0xc
add eax, ebx
mov word [esi + 0xb1e], ax
push 0
call fcn.00401131
push 4
call fcn.00402581
mov edx, dword [edi + 0x14]
add edx, 0x5c
push edx
call fcn.00401212
mov eax, dword [edi + 0x64]
add eax, 0x5c
push eax
call fcn.00401212
push 0
call fcn.00401131
call fcn.00402c84
lea ecx, [esp + 0x3d4]
push ecx
call fcn.00401212
push 1
call fcn.00404106
push 0
call fcn.00401131
push 0x11
call fcn.00402581
lea edx, [esp + 0x74]
push edx
call fcn.00404386
mov edx, eax
push 0x12
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
call fcn.00402581
lea eax, [esp + 0x7c]
push eax
call fcn.00404386
mov edx, eax
push 0xe
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], edx
call fcn.00402581
lea eax, [esp + 0xb4]
push eax
call fcn.00401212
lea ecx, [esp + 0x88]
push ecx
call fcn.00404386
mov ebx, dword [eax]
push 1
mov dword [esp + 0x54], ebx
mov edx, dword [eax + 4]
mov dword [esp + 0x58], edx
mov ebp, dword [eax + 8]
mov dword [esp + 0x5c], ebp
call fcn.00404106
add esp, 0x40
call fcn.00401b54
fld dword [esp + 0x1c]
fsub dword [esp + 0x3c]
push ecx
fstp dword [esp]
fld dword [esp + 0x18]
fsub dword [esp + 0x38]
push ecx
fstp dword [esp]
call fcn.00403724
neg eax
push eax
call fcn.004040cf
lea eax, [esp + 0x40]
lea ecx, [esp + 0x50]
push eax
push ecx
lea edx, [esp + 0x84]
push edx
call fcn.00401b4f
lea eax, [esp + 0x88]
lea ecx, [esp + 0x88]
push eax
push ecx
call fcn.00404340
push 1
call fcn.00404106
call fcn.00401b54
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
add esp, 0x18
mov edx, esp
sub esp, 0xc
mov dword [edx], eax
mov eax, dword [esp + 0x54]
mov dword [edx + 4], ecx
mov ecx, esp
mov dword [edx + 8], eax
mov edx, dword [esp + 0x30]
mov dword [ecx], ebx
mov dword [ecx + 4], edx
mov dword [ecx + 8], ebp
call fcn.00403e13
fstp dword [esp + 0x14]
fld dword [esp + 0x30]
fsub dword [esp + 0x50]
add esp, 0x14
push ecx
fstp dword [esp]
call fcn.00403724
push eax
call fcn.004040ca
lea eax, [esp + 0x7c]
lea ecx, [esp + 0x7c]
push eax
push ecx
call fcn.00404340
push 1
call fcn.00404106
mov edx, dword [esp + 0x8c]
add esp, 0x18
fld dword [esp + 0x70]
push edx
push ecx
fchs
fstp dword [esp]
call fcn.00403724
fld dword [esp + 0x34]
fmul dword [esi + 0xc84]
add esp, 4
mov dword [esp + 0x14], eax
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld dword [esp + 0x30]
fmul dword [esi + 0xc80]
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
fld dword [esp + 0x20]
fsub dword [esp + 0x40]
fstp dword [esp]
fld dword [esp + 0x18]
fsub dword [esp + 0x38]
push ecx
fstp dword [esp]
call fcn.00403724
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x20]
mov ebx, eax
mov eax, esp
sub ebx, 0x4000
sub esp, 0xc
mov dword [eax], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x50]
mov dword [eax + 8], ebp
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
call fcn.00403e13
fstp dword [esp + 0x14]
fld dword [esp + 0x30]
fsub dword [esp + 0x50]
add esp, 0x14
push ecx
fstp dword [esp]
call fcn.00403724
push 0
mov dword [esp + 0x3c], eax
call fcn.00401131
fld dword [esp + 0x38]
fcomp dword [0x634198]
add esp, 0xc
push 0x11
fnstsw ax
test ah, 0x40
jne 0x50af21
call fcn.00401104
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
sub esp, 8
mov edx, esp
sub esp, 0xc
mov dword [edx], eax
mov eax, dword [esp + 0x4c]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + 8], ebp
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x54]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
call fcn.00403e13
fstp dword [esp + 0x74]
fld dword [esp + 0x30]
fsub dword [esp + 0x50]
mov eax, dword [0xd530b4]
add esp, 0x18
lea ecx, [esp + 0x68]
lea edx, [esp + 0x40]
push 1
push ecx
fstp dword [esp + 0x68]
fld dword [eax + 0xa8]
push edx
push ecx
fstp dword [esp]
fld dword [eax + 0xd8]
mov eax, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x70]
fstp dword [esp]
push eax
push ecx
call fcn.004017a8
push 0xb02868
call fcn.00403440
and ebx, 0xffff
push ebx
call fcn.004040cf
mov ebx, dword [esp + 0x54]
and ebx, 0xffff
push ebx
call fcn.004040d4
mov eax, dword [esp + 0x38]
and eax, 0xffff
push eax
call fcn.004040ca
neg ebx
push ebx
call fcn.004040d4
mov edx, dword [esp + 0x98]
and edx, 0xffff
neg edx
push edx
call fcn.004040d4
add esp, 0x34
jmp 0x50af29
call fcn.00402581
add esp, 4
mov eax, dword [edi + 0x48]
add eax, 0x5c
push eax
call fcn.00401212
push 0
call fcn.00401131
lea ecx, [esp + 0x3c8]
push ecx
call fcn.00401960
call fcn.004015fa
lea edx, [esp + 0x60c]
push edx
call fcn.00401212
push 1
call fcn.00404106
fld dword [esp + 0x40]
fcomp dword [0x634198]
add esp, 0x14
push 0x12
fnstsw ax
test ah, 0x40
jne 0x50af93
call fcn.00401104
mov eax, dword [esp + 0x44]
and eax, 0xffff
neg eax
push eax
call fcn.004040d4
add esp, 8
jmp 0x50af9b
call fcn.00402581
add esp, 4
mov ecx, dword [edi + 0x4c]
add ecx, 0x5c
push ecx
call fcn.00401212
push 0xe
call fcn.00401104
lea edx, [esp + 0x88]
push edx
call fcn.00403440
lea eax, [esp + 0x5c]
push eax
call fcn.00404386
mov edx, eax
push 0
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edx
call fcn.00401131
push 0xb02810
call fcn.00401960
call fcn.004015fa
push 0x64fa20
call fcn.004021da
lea eax, [esp + 0x9c]
push eax
call fcn.00401212
push 1
call fcn.00404106
push 0xb02868
call fcn.00401960
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
push ecx
push edx
push eax
call fcn.0040281a
movsx ecx, word [esi + 0xc8c]
mov dword [esp + 0x44], ecx
fild dword [esp + 0x44]
fmul dword [esp + 0x60]
call fcn.005f5950
push eax
call fcn.004040d4
lea edx, [esp + 0xb8]
push edx
call fcn.00403be8
mov eax, dword [edi + 0x3c]
add eax, 0x5c
push eax
call fcn.00401212
mov ecx, dword [esi + 0x20]
add esp, 0x40
mov eax, dword [ecx + 0x10]
push 0xa
cmp eax, 1
jne 0x50b07e
call fcn.00402581
add esp, 4
jmp 0x50b088
push 1
call fcn.00402f1d
add esp, 8
lea edx, [esp + 0x440]
push edx
call fcn.00401212
push 0
call fcn.00401131
push 0
push 0
push 0x3f800000
call fcn.0040281a
lea eax, [esp + 0x64]
push eax
call fcn.00404386
mov edx, eax
lea ebx, [esi + 0xcd4]
push 1
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edx
call fcn.00404106
push 0
call fcn.00401131
push 0
push 0
push 0x40800000
call fcn.0040281a
lea eax, [esp + 0x7c]
push eax
call fcn.00404386
mov edx, eax
lea ebx, [esi + 0xd04]
push 1
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [ebx], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
mov dword [ebx + 4], ecx
mov dword [esp + 0x80], edx
mov dword [ebx + 8], edx
call fcn.00404106
add esp, 0x34
lea ebx, [esi + 0xc18]
xor ebp, ebp
push 0
call fcn.00401131
mov eax, dword [esi + 0xc5c]
add esp, 4
cmp eax, 0xc
jne 0x50b156
mov eax, dword [ebp + 0x653c68]
mov ecx, dword [ebp + 0x653c64]
mov edx, dword [ebp + 0x653c60]
push eax
push ecx
jmp 0x50b16a
mov eax, dword [ebp + 0x653c38]
mov ecx, dword [ebp + 0x653c34]
mov edx, dword [ebp + 0x653c30]
push eax
push ecx
push edx
call fcn.0040281a
add esp, 0xc
lea eax, [esp + 0x50]
push eax
call fcn.00404386
mov edx, eax
push 1
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x30], edx
lea edx, [ebx - 8]
mov dword [ebx - 8], eax
mov eax, dword [esp + 0x30]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x54]
mov dword [edx + 8], eax
mov dword [ebx], ecx
call fcn.00404106
add ebp, 0xc
add esp, 8
add ebx, 0xc
cmp ebp, 0x30
jl 0x50b12b
push 1
call fcn.00404106
mov edx, dword [esp + 0x628]
add esp, 4
fld dword [esp + 0x620]
push edx
push ecx
fabs
fchs
fstp dword [esp]
call fcn.00403724
mov word [esp + 0x28], ax
mov eax, dword [esp + 0x28]
push 0x3f000000
push 0
push eax
call fcn.0040402a
push 0
mov bx, ax
call fcn.00401131
fld dword [esi + 0x4c]
fmul qword [0x645038]
add esp, 0x14
fstp dword [esp]
fld dword [esi + 0x4c]
fmul qword [0x654a10]
push ecx
fstp dword [esp]
fld dword [esi + 0x4c]
fmul qword [0x654a00]
push ecx
fstp dword [esp]
call fcn.0040281a
push 0xffffc000
call fcn.004040ca
movsx ecx, bx
neg ecx
push ecx
call fcn.004040ca
mov edx, dword [edi + 0x60]
add edx, 0x5c
push edx
call fcn.00401212
push 1
call fcn.00404106
push 1
call fcn.00404106
push 0
call fcn.00401131
push 3
call fcn.00402581
mov eax, dword [edi + 0x10]
add eax, 0x5c
push eax
call fcn.00401212
mov ecx, dword [edi + 0x5c]
add ecx, 0x5c
push ecx
call fcn.00401212
push 0
call fcn.00401131
call fcn.00402c84
lea edx, [esp + 0x3b4]
push edx
call fcn.00401212
push 1
call fcn.00404106
mov eax, dword [esi + 0xc5c]
add esp, 0x3c
lea eax, [eax + eax*2]
mov ecx, dword [eax*8 + 0x652474]
test ch, 0x10
jne 0x50b2c3
mov dword [esp + 0x2c], 0
push 0
call fcn.00401131
push 0xf
call fcn.00402581
lea ecx, [esp + 0x58]
push ecx
call fcn.00404386
mov edx, eax
push 0x10
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edx
call fcn.00402581
lea eax, [esp + 0x60]
push eax
call fcn.00404386
mov edx, eax
push 0xd
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
call fcn.00402581
lea eax, [esp + 0x98]
push eax
call fcn.00401212
lea ecx, [esp + 0x6c]
push ecx
call fcn.00404386
mov ebx, dword [eax]
push 1
mov dword [esp + 0x38], ebx
mov edx, dword [eax + 4]
mov dword [esp + 0x3c], edx
mov ebp, dword [eax + 8]
mov dword [esp + 0x40], ebp
call fcn.00404106
call fcn.00401b54
fld dword [esp + 0x40]
fsub dword [esp + 0x60]
add esp, 0x20
fstp dword [esp]
fld dword [esp + 0x18]
fsub dword [esp + 0x38]
push ecx
fstp dword [esp]
call fcn.00403724
neg eax
push eax
call fcn.004040cf
lea eax, [esp + 0x40]
lea ecx, [esp + 0x50]
push eax
lea edx, [esp + 0x80]
push ecx
push edx
call fcn.00401b4f
lea eax, [esp + 0x88]
lea ecx, [esp + 0x88]
push eax
push ecx
call fcn.00404340
push 1
call fcn.00404106
call fcn.00401b54
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
add esp, 0x18
mov edx, esp
sub esp, 0xc
mov dword [edx], eax
mov eax, dword [esp + 0x54]
mov dword [edx + 4], ecx
mov ecx, esp
mov dword [edx + 8], eax
mov dword [ecx], ebx
mov edx, dword [esp + 0x30]
mov dword [ecx + 4], edx
mov dword [ecx + 8], ebp
call fcn.00403e13
fstp dword [esp + 0x14]
fld dword [esp + 0x30]
fsub dword [esp + 0x50]
add esp, 0x14
push ecx
fstp dword [esp]
call fcn.00403724
push eax
call fcn.004040ca
lea eax, [esp + 0x7c]
lea ecx, [esp + 0x7c]
push eax
push ecx
call fcn.00404340
push 1
call fcn.00404106
mov edx, dword [esp + 0x8c]
add esp, 0x18
fld dword [esp + 0x70]
push edx
push ecx
fchs
fstp dword [esp]
call fcn.00403724
fld dword [esp + 0x34]
fmul dword [esi + 0xc84]
add esp, 4
mov dword [esp + 0x14], eax
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld dword [esp + 0x30]
fmul dword [esi + 0xc80]
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
fld dword [esp + 0x20]
fsub dword [esp + 0x40]
fstp dword [esp]
fld dword [esp + 0x18]
fsub dword [esp + 0x38]
push ecx
fstp dword [esp]
call fcn.00403724
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x20]
mov ebx, eax
mov eax, esp
sub esp, 0xc
sub ebx, 0x4000
mov dword [eax], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x50]
mov dword [eax + 8], ebp
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x54]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
call fcn.00403e13
fstp dword [esp + 0x14]
fld dword [esp + 0x30]
fsub dword [esp + 0x50]
add esp, 0x14
push ecx
fstp dword [esp]
call fcn.00403724
push 0
mov dword [esp + 0x3c], eax
call fcn.00401131
fld dword [esp + 0x38]
fcomp dword [0x634198]
add esp, 0xc
push 0xf
fnstsw ax
test ah, 0x40
jne 0x50b5c5
call fcn.00401104
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
sub esp, 8
mov edx, esp
sub esp, 0xc
mov dword [edx], eax
mov eax, dword [esp + 0x4c]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [edx + 8], ebp
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x54]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
call fcn.00403e13
fstp dword [esp + 0x74]
fld dword [esp + 0x30]
fsub dword [esp + 0x50]
mov eax, dword [0xd530b4]
add esp, 0x18
lea ecx, [esp + 0x68]
lea edx, [esp + 0x40]
push 1
push ecx
fstp dword [esp + 0x68]
fld dword [eax + 0x9c]
push edx
push ecx
fstp dword [esp]
fld dword [eax + 0xc0]
mov eax, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x70]
fstp dword [esp]
push eax
push ecx
call fcn.004017a8
push 0xb02868
call fcn.00403440
and ebx, 0xffff
push ebx
call fcn.004040cf
mov ebx, dword [esp + 0x54]
and ebx, 0xffff
push ebx
call fcn.004040d4
mov eax, dword [esp + 0x38]
and eax, 0xffff
push eax
call fcn.004040ca
neg ebx
push ebx
call fcn.004040d4
mov edx, dword [esp + 0x98]
and edx, 0xffff
neg edx
push edx
call fcn.004040d4
add esp, 0x34
jmp 0x50b5cd
call fcn.00402581
add esp, 4
mov eax, dword [edi + 0x40]
add eax, 0x5c
push eax
call fcn.00401212
push 0
call fcn.00401131
lea ecx, [esp + 0x388]
push ecx
call fcn.00401960
call fcn.004015fa
lea edx, [esp + 0x58c]
push edx
call fcn.00401212
push 1
call fcn.00404106
fld dword [esp + 0x40]
fcomp dword [0x634198]
add esp, 0x14
push 0x10
fnstsw ax
test ah, 0x40
jne 0x50b637
call fcn.00401104
mov eax, dword [esp + 0x44]
and eax, 0xffff
neg eax
push eax
call fcn.004040d4
add esp, 8
jmp 0x50b63f
call fcn.00402581
add esp, 4
mov ecx, dword [edi + 0x44]
add ecx, 0x5c
push ecx
call fcn.00401212
push 0xd
call fcn.00402581
lea edx, [esp + 0x88]
push edx
call fcn.00403440
lea eax, [esp + 0x5c]
push eax
call fcn.00404386
mov edx, eax
push 0
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edx
call fcn.00401131
push 0xb02810
call fcn.00401960
call fcn.004015fa
push 0x64fa20
call fcn.004021da
lea eax, [esp + 0x9c]
push eax
call fcn.00401212
push 1
call fcn.00404106
push 0xb02868
call fcn.00401960
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
push ecx
push edx
push eax
call fcn.0040281a
movsx ecx, word [esi + 0xc8c]
mov dword [esp + 0x44], ecx
fild dword [esp + 0x44]
fmul dword [esp + 0x60]
call fcn.005f5950
push eax
call fcn.004040d4
lea edx, [esp + 0xb8]
push edx
call fcn.00403be8
mov eax, dword [edi + 0x38]
add eax, 0x5c
push eax
call fcn.00401212
add esp, 0x40
push 0xbf051eb8
push 0
push 0x3f666666
call fcn.0040281a
lea ecx, [esp + 0x5c]
push ecx
call fcn.00404386
mov edx, eax
lea ebx, [esi + 0xcc8]
push 1
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edx
call fcn.00404106
mov eax, dword [esp + 0x5b8]
add esp, 0x14
fld dword [esp + 0x5a0]
push eax
push ecx
fabs
fstp dword [esp]
call fcn.00403724
sub eax, 0x8000
mov word [esp + 0x28], ax
mov ecx, dword [esp + 0x28]
push 0x3f000000
push 0
push ecx
call fcn.0040402a
push 0
mov bx, ax
call fcn.00401131
fld dword [esi + 0x4c]
fmul qword [0x64aab8]
add esp, 0x14
fstp dword [esp]
fld dword [esi + 0x4c]
fmul qword [0x654a10]
push ecx
fstp dword [esp]
fld dword [esi + 0x4c]
fmul qword [0x654a00]
push ecx
fstp dword [esp]
call fcn.0040281a
push 0x4000
call fcn.004040ca
movsx edx, bx
push edx
call fcn.004040ca
mov eax, dword [edi + 0x58]
add eax, 0x5c
push eax
call fcn.00401212
push 1
call fcn.00404106
push 1
call fcn.00404106
push 0
call fcn.00401131
push 6
call fcn.00402581
push 0xffffc000
call fcn.004040d4
push 0
push 0x3fd9999a
push 0x3f99999a
call fcn.0040281a
lea ecx, [esp + 0x88]
push ecx
call fcn.00404386
mov edx, eax
lea ebx, [esi + 0xaf4]
mov ebp, ebx
push 0
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [ebp], eax
mov dword [ebp + 4], ecx
mov dword [ebp + 8], edx
call fcn.00401131
add esp, 0x40
push 0xb02810
call fcn.00401960
call fcn.004015fa
lea eax, [esp + 0x84]
push eax
call fcn.00401212
push 1
call fcn.00404106
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x8c]
push ecx
push edx
call fcn.00403724
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x9c]
push eax
push ecx
push 0
push 0
call fcn.004026d0
mov edx, dword [esp + 0xa8]
add esp, 0x20
fstp dword [esp]
push edx
call fcn.00403724
push 1
mov dword [esp + 0x88], eax
call fcn.00404106
mov ebp, dword [esp + 0x70]
add esp, 0xc
test ebp, ebp
je 0x50c329
push 0
call fcn.00401131
lea eax, [esp + 0x104]
push eax
call fcn.00401960
lea ecx, [esp + 0x88]
push ecx
call fcn.00401212
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0x9c]
push edx
push eax
call fcn.00403724
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xa4]
push ecx
push edx
mov ebp, eax
push 0
push 0
sub ebp, 0x8000
call fcn.004026d0
mov eax, dword [esp + 0xb8]
add esp, 0x20
fstp dword [esp]
push eax
call fcn.00403724
neg eax
push 1
mov dword [esp + 0x38], eax
call fcn.00404106
fld dword [0xb02c1c]
fsub dword [esi + 0xafc]
add esp, 8
fstp dword [esp]
fld dword [0xb02c14]
fsub dword [ebx]
push ecx
fstp dword [esp]
call fcn.00403724
push ebp
push eax
mov dword [esp + 0x20], eax
call fcn.00403a99
movsx ecx, ax
mov dword [esp + 0x40], ecx
add esp, 0x10
fild dword [esp + 0x30]
fabs
fcomp qword [0x64ac18]
fnstsw ax
test ah, 0x41
jne 0x50b9c9
mov dx, word [esi + 0xb12]
push ebp
push edx
call fcn.00403a99
add esp, 8
test ax, ax
jle 0x50b9a1
mov eax, 1
jmp 0x50b9bd
mov ax, word [esi + 0xb12]
push ebp
push eax
call fcn.00403a99
add esp, 8
xor ecx, ecx
test ax, ax
setge cl
dec ecx
mov eax, ecx
lea eax, [eax + eax*2]
shl eax, 0xc
add eax, ebp
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
sub esp, 0xc
mov edx, esp
sub esp, 0xc
mov dword [edx], eax
mov eax, dword [ebx + 8]
mov dword [edx + 4], ecx
mov ecx, esp
mov dword [edx + 8], eax
mov edx, dword [0xb02c14]
mov eax, dword [0xb02c18]
mov dword [ecx], edx
mov edx, dword [0xb02c1c]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
call fcn.00403e13
fstp dword [esp + 0x14]
fld dword [0xb02c18]
fsub dword [esi + 0xaf8]
add esp, 0x14
push ecx
fstp dword [esp]
call fcn.00403724
mov ebx, eax
mov eax, dword [esp + 0x34]
push eax
push ebx
call fcn.00403a99
movsx ecx, ax
mov dword [esp + 0x40], ecx
add esp, 0x10
fild dword [esp + 0x30]
fabs
fcomp qword [0x6549f0]
fnstsw ax
test ah, 0x41
jne 0x50ba81
mov edx, dword [esp + 0x2c]
push edx
push ebx
call fcn.00403a99
add esp, 8
test ax, ax
jle 0x50ba61
mov ebx, 1
jmp 0x50ba78
mov eax, dword [esp + 0x2c]
push eax
push ebx
call fcn.00403a99
add esp, 8
xor ebx, ebx
test ax, ax
setge bl
dec ebx
mov eax, dword [esp + 0x2c]
shl ebx, 0xd
add ebx, eax
mov eax, dword [0xcdc708]
test eax, eax
jne 0x50bb2b
mov cx, word [esi + 0xb12]
mov edx, dword [esp + 0x10]
push ecx
push edx
call fcn.00403a99
movsx ecx, word [esi + 0xb12]
movsx eax, ax
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
mov dword [esp + 0x18], ecx
fmul qword [section..rdata]
fild dword [esp + 0x18]
faddp st(1)
call fcn.005f5950
mov dx, word [esi + 0xb10]
mov word [esi + 0xb12], ax
push edx
push ebx
call fcn.00403a99
movsx ecx, word [esi + 0xb10]
movsx eax, ax
mov dword [esp + 0x20], eax
add esp, 0x10
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
fmul qword [section..rdata]
fild dword [esp + 0x10]
faddp st(1)
call fcn.005f5950
fld dword [esi + 0xb18]
fsub dword [esi + 0xb14]
mov word [esi + 0xb10], ax
fmul dword [0x6342a4]
fadd dword [esi + 0xb14]
fstp dword [esi + 0xb14]
mov dx, word [esi + 0xb12]
push ebp
push edx
call fcn.00403a99
movsx eax, ax
mov dword [esp + 0x18], eax
add esp, 8
fild dword [esp + 0x10]
fabs
fcomp qword [0x64ac18]
fnstsw ax
test ah, 0x41
jne 0x50bb9e
mov cx, word [esi + 0xb12]
push ebp
push ecx
call fcn.00403a99
add esp, 8
test ax, ax
jle 0x50bb73
mov eax, 1
jmp 0x50bb8f
mov dx, word [esi + 0xb12]
push ebp
push edx
call fcn.00403a99
add esp, 8
xor ecx, ecx
test ax, ax
setge cl
dec ecx
mov eax, ecx
lea edx, [eax + eax*2]
shl edx, 0xc
add edx, ebp
mov word [esi + 0xb12], dx
mov ebx, dword [esp + 0x2c]
mov ax, word [esi + 0xb10]
push ebx
push eax
call fcn.00403a99
movsx ecx, ax
mov dword [esp + 0x18], ecx
add esp, 8
fild dword [esp + 0x10]
fabs
fcomp qword [0x6549f0]
fnstsw ax
test ah, 0x41
jne 0x50bc12
mov dx, word [esi + 0xb10]
push ebx
push edx
call fcn.00403a99
add esp, 8
test ax, ax
jle 0x50bbea
mov eax, 1
jmp 0x50bc06
mov ax, word [esi + 0xb10]
push ebx
push eax
call fcn.00403a99
add esp, 8
xor ecx, ecx
test ax, ax
setge cl
dec ecx
mov eax, ecx
shl eax, 0xd
add eax, ebx
mov word [esi + 0xb10], ax
push 0
call fcn.00401131
push 6
call fcn.00402581
push 0xffffc000
call fcn.004040d4
mov edx, dword [esp + 0x88]
mov ax, word [esi + 0xb10]
push edx
push eax
call fcn.00403a99
movsx ecx, ax
mov dword [esp + 0x90], ecx
fild dword [esp + 0x90]
fmul dword [esi + 0xb14]
call fcn.005f5950
push eax
call fcn.004040d4
mov edx, dword [esp + 0x38]
mov ax, word [esi + 0xb12]
push edx
push eax
call fcn.00403a99
movsx ecx, ax
mov dword [esp + 0x40], ecx
fild dword [esp + 0x40]
fimul dword [esp + 0x8c]
fmul dword [esi + 0xb14]
call fcn.005f5950
push eax
call fcn.004040cf
mov edx, dword [0xb30e9c]
mov eax, dword [edi + edx*4 + 0x1c]
add eax, 0x5c
push eax
call fcn.00401212
push 0
call fcn.00401131
push 0xb02810
call fcn.00401960
call fcn.004015fa
lea ecx, [esp + 0xb0]
push ecx
call fcn.00401212
push 1
call fcn.00404106
push 0
call fcn.00401131
push 0
push 0x400b3190
push 0xbf8631f9
call fcn.0040281a
lea ebx, [esi + 0xd54]
lea ebp, [esi + 0xd60]
mov edx, ebx
mov eax, ebp
add esp, 0x48
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov edx, dword [edx + 8]
mov dword [eax + 8], edx
lea eax, [esp + 0x50]
push eax
call fcn.00404386
mov edx, eax
push ebp
push ebx
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x34], edx
mov edx, ebx
mov dword [edx], eax
mov eax, dword [esp + 0x34]
mov dword [edx + 4], ecx
lea ecx, [esp + 0x20]
push ecx
mov dword [edx + 8], eax
call fcn.00401b4f
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x90]
push edx
push eax
call fcn.00403724
mov ebx, eax
call fcn.00401b54
and ebx, 0xffff
neg ebx
push ebx
call fcn.004040cf
lea ecx, [esp + 0x30]
lea edx, [esp + 0x30]
push ecx
push edx
call fcn.00404340
push 1
call fcn.00404106
push 1
call fcn.00404106
mov eax, dword [esi + 0x38]
add esp, 0x2c
cmp eax, 0x73e968
je 0x50bd9f
cmp eax, 0x73ea70
jne 0x50befa
mov eax, dword [0xcdc708]
xor ebx, ebx
cmp eax, ebx
jne 0x50be25
movsx eax, word [esi + 0xb28]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fld dword [esp + 0x14]
fmul dword [0x6443c4]
fsubr dword [esi + 0xb2c]
fld st(1)
fmul dword [0x6549e8]
fsubp st(1)
fstp dword [esi + 0xb2c]
fmul dword [0x6549e4]
call fcn.005f5950
movsx ecx, ax
mov dword [esp + 0x20], ecx
mov word [esi + 0xb28], ax
fild dword [esp + 0x20]
fld st(0)
fadd dword [esi + 0xb2c]
fabs
fcomp qword [0x654a28]
fnstsw ax
test ah, 0x41
jne 0x50be13
mov dword [esi + 0xb2c], ebx
fadd dword [esi + 0xb2c]
call fcn.005f5950
mov word [esi + 0xb28], ax
movsx edx, word [esi + 0xb28]
neg edx
push edx
call fcn.004040cf
mov eax, dword [0xaf968c]
mov ecx, dword [edi + eax*4 + 0x68]
add ecx, 0x5c
push ecx
call fcn.00401212
mov eax, dword [0xcdc708]
add esp, 8
cmp eax, ebx
jne 0x50becd
movsx edx, word [esi + 0xb2a]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fld dword [esp + 0x14]
fmul dword [0x6443c4]
fsubr dword [esi + 0xb30]
fld st(1)
fmul dword [0x6549e8]
fsubp st(1)
fstp dword [esi + 0xb30]
fmul dword [0x6549e4]
call fcn.005f5950
mov word [esi + 0xb2a], ax
movsx eax, ax
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fld st(0)
fadd dword [esi + 0xb30]
fabs
fcomp qword [0x6549f0]
fnstsw ax
test ah, 0x41
jne 0x50bebb
mov dword [esi + 0xb30], ebx
fadd dword [esi + 0xb30]
call fcn.005f5950
mov word [esi + 0xb2a], ax
movsx ecx, word [esi + 0xb2a]
movsx edx, word [esi + 0xb28]
sub edx, ecx
push edx
call fcn.004040cf
mov eax, dword [0xaf968c]
mov ecx, dword [edi + eax*4 + 0x6c]
add ecx, 0x5c
push ecx
call fcn.00401212
add esp, 8
jmp 0x50befc
xor ebx, ebx
cmp dword [esi + 0x38], 0x73ef98
jne 0x50c31b
push ebx
call fcn.00401131
push ebx
push 0x400b3190
push 0xbf8631f9
call fcn.0040281a
mov eax, dword [0xcdc708]
add esp, 0x10
cmp eax, ebx
jne 0x50bfa6
movsx edx, word [esi + 0xb3a]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fld dword [esp + 0x18]
fmul dword [0x6444ac]
fsubr dword [esi + 0xb4c]
fld st(1)
fmul qword [0x634228]
fsubp st(1)
fstp dword [esi + 0xb4c]
fmul qword [0x64a318]
call fcn.005f5950
mov word [esi + 0xb3a], ax
movsx eax, ax
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fld st(0)
fadd dword [esi + 0xb4c]
fabs
fcomp qword [0x6549f0]
fnstsw ax
test ah, 0x41
jne 0x50bf94
mov dword [esi + 0xb4c], ebx
fadd dword [esi + 0xb4c]
call fcn.005f5950
mov word [esi + 0xb3a], ax
movsx ecx, word [esi + 0xb3a]
neg ecx
push ecx
call fcn.004040d4
mov eax, dword [0xcdc708]
add esp, 4
cmp eax, ebx
jne 0x50c03c
movsx edx, word [esi + 0xb34]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fld dword [esp + 0x14]
fmul dword [0x6444ac]
fsubr dword [esi + 0xb40]
fld st(1)
fmul qword [0x634228]
fsubp st(1)
fstp dword [esi + 0xb40]
fmul qword [0x64a318]
call fcn.005f5950
mov word [esi + 0xb34], ax
movsx eax, ax
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fld st(0)
fadd dword [esi + 0xb40]
fabs
fcomp qword [0x6549f0]
fnstsw ax
test ah, 0x41
jne 0x50c02a
mov dword [esi + 0xb40], ebx
fadd dword [esi + 0xb40]
call fcn.005f5950
mov word [esi + 0xb34], ax
movsx ecx, word [esi + 0xb34]
push ecx
call fcn.004040ca
mov edx, dword [0xaf968c]
mov eax, dword [edi + edx*4 + 0x68]
add eax, 0x5c
push eax
call fcn.00401212
push ebx
push 0xbef27bb3
push 0xbeb1eb85
call fcn.0040281a
mov eax, dword [0xcdc708]
add esp, 0x14
cmp eax, ebx
jne 0x50c0f3
movsx ecx, word [esi + 0xb3c]
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
fld dword [esp + 0x18]
fmul dword [0x6444ac]
fsubr dword [esi + 0xb50]
fld st(1)
fmul qword [0x634228]
fsubp st(1)
fstp dword [esi + 0xb50]
fmul qword [0x64a318]
call fcn.005f5950
movsx edx, ax
mov dword [esp + 0x20], edx
mov word [esi + 0xb3c], ax
fild dword [esp + 0x20]
fld st(0)
fadd dword [esi + 0xb50]
fabs
fcomp qword [0x6549f0]
fnstsw ax
test ah, 0x41
jne 0x50c0e1
mov dword [esi + 0xb50], ebx
fadd dword [esi + 0xb50]
call fcn.005f5950
mov word [esi + 0xb3c], ax
movsx eax, word [esi + 0xb3a]
movsx ecx, word [esi + 0xb3c]
sub eax, ecx
push eax
call fcn.004040d4
mov eax, dword [0xcdc708]
add esp, 4
cmp eax, ebx
jne 0x50c190
movsx edx, word [esi + 0xb36]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fld dword [esp + 0x14]
fmul dword [0x6444ac]
fsubr dword [esi + 0xb44]
fld st(1)
fmul qword [0x634228]
fsubp st(1)
fstp dword [esi + 0xb44]
fmul qword [0x64a318]
call fcn.005f5950
mov word [esi + 0xb36], ax
movsx eax, ax
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fld st(0)
fadd dword [esi + 0xb44]
fabs
fcomp qword [0x6549d8]
fnstsw ax
test ah, 0x41
jne 0x50c17e
mov dword [esi + 0xb44], ebx
fadd dword [esi + 0xb44]
call fcn.005f5950
mov word [esi + 0xb36], ax
movsx ecx, word [esi + 0xb34]
movsx edx, word [esi + 0xb36]
sub edx, ecx
push edx
call fcn.004040ca
mov eax, dword [0xaf968c]
mov ecx, dword [edi + eax*4 + 0x6c]
add ecx, 0x5c
push ecx
call fcn.00401212
push ebx
push 0xbf2f7660
push ebx
call fcn.0040281a
mov eax, dword [0xcdc708]
add esp, 0x14
cmp eax, ebx
jne 0x50c24b
movsx edx, word [esi + 0xb3e]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fld dword [esp + 0x18]
fmul dword [0x6444ac]
fsubr dword [esi + 0xb54]
fld st(1)
fmul qword [0x634228]
fsubp st(1)
fstp dword [esi + 0xb54]
fmul qword [0x64a318]
call fcn.005f5950
mov word [esi + 0xb3e], ax
movsx eax, ax
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fld st(0)
fadd dword [esi + 0xb54]
fabs
fcomp qword [0x6549f0]
fnstsw ax
test ah, 0x41
jne 0x50c239
mov dword [esi + 0xb54], ebx
fadd dword [esi + 0xb54]
call fcn.005f5950
mov word [esi + 0xb3e], ax
movsx ecx, word [esi + 0xb3e]
movsx edx, word [esi + 0xb3c]
sub edx, ecx
push edx
call fcn.004040d4
mov eax, dword [0xcdc708]
add esp, 4
cmp eax, ebx
jne 0x50c2e8
movsx eax, word [esi + 0xb38]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fld dword [esp + 0x14]
fmul dword [0x6444ac]
fsubr dword [esi + 0xb48]
fld st(1)
fmul qword [0x634228]
fsubp st(1)
fstp dword [esi + 0xb48]
fmul qword [0x64a318]
call fcn.005f5950
movsx ecx, ax
mov dword [esp + 0x20], ecx
mov word [esi + 0xb38], ax
fild dword [esp + 0x20]
fld st(0)
fadd dword [esi + 0xb48]
fabs
fcomp qword [0x6549c8]
fnstsw ax
test ah, 0x41
jne 0x50c2d6
mov dword [esi + 0xb48], ebx
fadd dword [esi + 0xb48]
call fcn.005f5950
mov word [esi + 0xb38], ax
movsx edx, word [esi + 0xb38]
movsx eax, word [esi + 0xb36]
sub edx, eax
push edx
call fcn.004040ca
mov ecx, dword [0xaf968c]
mov edx, dword [edi + ecx*4 + 0x70]
add edx, 0x5c
push edx
call fcn.00401212
push 1
call fcn.00404106
add esp, 0xc
push 1
call fcn.00404106
mov ebp, dword [esp + 0x68]
add esp, 4
mov eax, dword [esi + 0xb5c]
test eax, eax
jne 0x50c357
push str.MOTN
call fcn.00403800
mov eax, dword [esi + 0xb5c]
add esp, 4
test eax, eax
jne 0x50c357
push str.PUT
call fcn.004035a8
add esp, 4
test ebp, ebp
je 0x50c3e7
lea ebx, [esi + 0x1e0]
mov dword [esp + 0x10], 0x21
mov eax, dword [edi]
test eax, eax
je 0x50c380
add eax, 0x5c
push eax
push ebx
call fcn.00401a55
add esp, 8
mov eax, dword [esp + 0x10]
add edi, 4
add ebx, 0x40
dec eax
mov dword [esp + 0x10], eax
jne 0x50c36d
lea eax, [esp + 0x440]
lea ecx, [esi + 0x4a0]
push eax
push ecx
call fcn.00401a55
mov edx, dword [esi + 0xb5c]
push edx
call fcn.00403c60
push esi
call fcn.004042aa
mov eax, dword [0xcdc708]
add esp, 0x10
test eax, eax
jne 0x50c3e7
cmp dword [esi + 0xd6c], 0xffffffff
jne 0x50c3e7
test dword [esi + 0xb60], 0x10000
je 0x50c3e7
mov eax, dword [esi + 0xb5c]
push eax
call fcn.00403c79
add esp, 4
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x730
ret