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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x214
mov eax, dword [0x628d00]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push edi
mov edi, dword [ebp + 8]
mov al, byte [edi + 2]
mov dword [ebp - 0x1e8], edi
lea ebx, [edi + 0x40]
cmp al, 0xfe
je 0x44b46d
cmp al, 0xff
je 0x44b8b4
cmp al, 1
je 0x44b8a0
mov eax, dword [ebx + 4]
mov byte [ebx + 0x1df], 0
test eax, 0x1000000
je 0x44a7d6
movsx eax, word [0x65c280]
jmp 0x44a7e3
and eax, 0x10000000
or eax, 0x8000000
shr eax, 0x1b
mov dword [ebp - 0x1ec], eax
push esi
mov dword [ebp - 0x1f4], 0
test eax, eax
jle 0x44b3b9
mov edi, 0x1000
mov ecx, dword [ebx + 4]
fld qword [0x5bed80]
test ecx, ecx
js 0x44b45b
fld dword [ebx + 0x2c]
fadd dword [ebx + 8]
fstp dword [ebp - 0x1e0]
fld dword [ebp - 0x1e0]
fst dword [ebx + 8]
fld dword [ebx + 0x30]
fadd dword [ebx + 0xc]
fstp dword [ebp - 0x1e0]
fld dword [ebp - 0x1e0]
fst dword [ebx + 0xc]
fld dword [ebx + 0x34]
fadd dword [ebx + 0x10]
fstp dword [ebx + 0x10]
test ecx, 0x40000
je 0x44a99d
fld st(1)
fsub dword [ebx + 0x44]
fld dword [ebx + 0x1a8]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x44a884
fsub dword [ebx + 0x1a8]
fsubp st(2)
fxch st(1)
fstp dword [ebx + 8]
fld dword [ebx + 0x2c]
fchs
fstp dword [ebx + 0x2c]
fld dword [ebx + 0x38]
fchs
fstp dword [ebx + 0x38]
jmp 0x44a888
fstp st(0)
fstp st(1)
fld dword [ebx + 8]
fsub dword [ebx + 0x44]
fld dword [ebx + 0x1ac]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x44a8bd
fld dword [ebx + 0x1ac]
fsubp st(1)
fsubr dword [ebx + 8]
fstp dword [ebx + 8]
fld dword [ebx + 0x2c]
fchs
fstp dword [ebx + 0x2c]
fld dword [ebx + 0x38]
fchs
fstp dword [ebx + 0x38]
jmp 0x44a8bf
fstp st(0)
fsub dword [ebx + 0x48]
fld dword [ebx + 0x1b0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x44a935
fld dword [ebx + 0x1b0]
fadd dword [ebx + 0x48]
fstp dword [ebx + 0xc]
test cl, 0x40
je 0x44a923
mov eax, dword [0x659808]
test eax, eax
je 0x44a923
fld dword [ebx + 0x30]
fsub dword [eax + 0x30]
fstp dword [ebp - 0x1e0]
fld dword [ebp - 0x1e0]
fchs
fstp dword [ebp - 0x1e0]
fld dword [ebp - 0x1e0]
fst dword [ebx + 0x30]
mov eax, dword [0x659808]
fadd dword [eax + 0x30]
fstp dword [ebx + 0x30]
fld dword [ebx + 0x3c]
fchs
fstp dword [ebx + 0x3c]
jmp 0x44a9a1
fld dword [ebx + 0x30]
fchs
fstp dword [ebx + 0x30]
fld dword [ebx + 0x3c]
fchs
fstp dword [ebx + 0x3c]
jmp 0x44a9a1
fld dword [ebx + 0xc]
fsub dword [ebx + 0x48]
fld dword [ebx + 0x1b4]
fcompp
fnstsw ax
test ah, 5
jp 0x44a9a1
fld dword [ebx + 0x1b4]
fadd dword [ebx + 0x48]
fstp dword [ebx + 0xc]
test cl, 0x40
je 0x44a923
mov eax, dword [0x659808]
test eax, eax
je 0x44a923
fld dword [ebx + 0x30]
fsub dword [eax + 0x30]
fstp dword [ebp - 0x1e0]
fld dword [ebp - 0x1e0]
fchs
fstp dword [ebp - 0x1e0]
fld dword [ebp - 0x1e0]
fst dword [ebx + 0x30]
mov ecx, dword [0x659808]
fadd dword [ecx + 0x30]
fstp dword [ebx + 0x30]
fld dword [ebx + 0x3c]
fchs
fstp dword [ebx + 0x3c]
jmp 0x44a9a1
fstp st(1)
fstp st(0)
test byte [ebx + 0x94], 2
fld dword [ebx + 0x38]
fadd dword [ebx + 0x2c]
fstp dword [ebx + 0x2c]
fld dword [ebx + 0x3c]
fadd dword [ebx + 0x30]
fstp dword [ebx + 0x30]
fld dword [ebx + 0x40]
fadd dword [ebx + 0x34]
fstp dword [ebx + 0x34]
je 0x44a9f4
movzx edx, word [ebx + 0x5e]
fstp st(0)
push edx
lea esi, [ebx + 0x64]
push esi
call fcn.00403f30
movzx eax, word [ebx + 0x5c]
push eax
push esi
call fcn.00404291
movzx ecx, word [ebx + 0x60]
push ecx
push esi
call fcn.00403724
add esp, 0x18
fld qword [0x5bed80]
mov cx, word [ebx + 0x5c]
add cx, word [ebx + 0x56]
mov si, word [ebx + 0x60]
add si, word [ebx + 0x5a]
mov edx, 0xfff
and cx, dx
mov dx, word [ebx + 0x5e]
add dx, word [ebx + 0x58]
mov eax, 0xfff
and dx, ax
and si, ax
test byte [ebx + 4], 4
mov word [ebx + 0x56], cx
mov word [ebx + 0x58], dx
mov word [ebx + 0x5a], si
jne 0x44aac7
fld dword [ebx + 0x20]
fld dword [0x65a118]
fsub st(2)
fcompp
fnstsw ax
test ah, 0x41
je 0x44b47d
fld dword [ebx + 0x20]
fld dword [0x65a11c]
fadd st(2)
fcompp
fnstsw ax
test ah, 5
jnp 0x44b47d
fld dword [ebx + 0x24]
fld dword [0x65a120]
fsub st(2)
fcompp
fnstsw ax
test ah, 0x41
je 0x44b47d
fld dword [ebx + 0x24]
fld dword [0x65a124]
fadd st(2)
fcompp
fnstsw ax
test ah, 5
jnp 0x44b47d
fld dword [ebx + 0x28]
fld dword [0x65a128]
fsub st(2)
fcompp
fnstsw ax
test ah, 0x41
je 0x44b47d
fld dword [ebx + 0x28]
fld dword [0x65a12c]
faddp st(2)
fcompp
fnstsw ax
test ah, 0x41
je 0x44b47f
jmp 0x44aac9
fstp st(0)
fld dword [ebx + 0x90]
fcomp qword [0x5c2200]
fnstsw ax
test ah, 0x41
jne 0x44abe6
test byte [ebx + 0x94], 2
fld dword [ebx + 8]
fsub dword [ebx + 0x14]
fdiv dword [ebx + 0x90]
fadd dword [ebx + 0x14]
fstp dword [ebx + 0x14]
fld dword [ebx + 0xc]
fsub dword [ebx + 0x18]
fdiv dword [ebx + 0x90]
fadd dword [ebx + 0x18]
fstp dword [ebx + 0x18]
fld dword [ebx + 0x10]
fsub dword [ebx + 0x1c]
fdiv dword [ebx + 0x90]
fadd dword [ebx + 0x1c]
fstp dword [ebx + 0x1c]
je 0x44ab4f
fld dword [ebx + 0x90]
push ecx
fld1
lea ecx, [ebx + 0x64]
fdivrp st(1)
lea eax, [ebx + 0x74]
fstp dword [ebp - 0x1e0]
fld dword [ebp - 0x1e0]
fstp dword [esp]
push ecx
push eax
push eax
call fcn.00402dc4
add esp, 0x10
jmp 0x44ac33
movsx edx, word [ebx + 0x9c]
movsx eax, cx
push edx
push eax
push edi
call fcn.0040402f
mov dword [ebp - 0x1e0], eax
fild dword [ebp - 0x1e0]
fdiv dword [ebx + 0x90]
call fcn.00535880
movsx ecx, word [ebx + 0x9e]
movsx edx, word [ebx + 0x58]
add word [ebx + 0x9c], ax
push ecx
push edx
push edi
call fcn.0040402f
mov dword [ebp - 0x1e0], eax
fild dword [ebp - 0x1e0]
fdiv dword [ebx + 0x90]
call fcn.00535880
add word [ebx + 0x9e], ax
movsx eax, word [ebx + 0xa0]
movsx ecx, word [ebx + 0x5a]
push eax
push ecx
push edi
call fcn.0040402f
mov dword [ebp - 0x1e0], eax
add esp, 0x24
fild dword [ebp - 0x1e0]
fdiv dword [ebx + 0x90]
call fcn.00535880
add word [ebx + 0xa0], ax
jmp 0x44ac33
test byte [ebx + 0x94], 2
fld dword [ebx + 8]
fstp dword [ebx + 0x14]
fld dword [ebx + 0xc]
fstp dword [ebx + 0x18]
fld dword [ebx + 0x10]
fstp dword [ebx + 0x1c]
je 0x44ac1e
mov edx, dword [ebx + 0x64]
mov eax, dword [ebx + 0x68]
mov ecx, dword [ebx + 0x6c]
mov dword [ebx + 0x74], edx
mov edx, dword [ebx + 0x70]
mov dword [ebx + 0x78], eax
mov dword [ebx + 0x7c], ecx
mov dword [ebx + 0x80], edx
jmp 0x44ac33
mov word [ebx + 0x9c], cx
mov word [ebx + 0x9e], dx
mov word [ebx + 0xa0], si
cmp word [ebx + 0x188], 0
je 0x44ad2b
test dword [ebx + 4], 0x80000
je 0x44ad2b
mov eax, dword [0x6e0790]
fld dword [eax + 0xc]
sub esp, 8
fsub dword [ebx + 0xc]
fstp dword [ebp - 0x1e0]
fld dword [ebp - 0x1e0]
fstp dword [esp + 4]
fld dword [eax + 8]
fsub dword [ebx + 8]
fstp dword [ebp - 0x1e0]
fld dword [ebp - 0x1e0]
fstp dword [esp]
call fcn.00401479
movzx eax, ax
and eax, 0xfff
add eax, eax
add eax, eax
add esp, 8
fld dword [eax + 0x6e59f8]
fld qword [0x5bd5a8]
fmul st(1), st(0)
fld dword [ebx + 0x14]
faddp st(2)
fxch st(1)
fstp dword [ebx + 0x14]
fmul dword [eax + 0x6e17d0]
fadd dword [ebx + 0x18]
fstp dword [ebx + 0x18]
fld dword [0x65a118]
fld qword [0x5bed80]
fsub st(1), st(0)
fld dword [ebx + 0x14]
fcomp st(2)
fnstsw ax
test ah, 5
jp 0x44acda
fxch st(1)
fstp dword [ebx + 0x14]
jmp 0x44acdc
fstp st(1)
fld dword [0x65a11c]
fadd st(1)
fld dword [ebx + 0x14]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x44acf5
fstp dword [ebx + 0x14]
jmp 0x44acf7
fstp st(0)
fld dword [0x65a120]
fsub st(1)
fld dword [ebx + 0x18]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x44ad10
fstp dword [ebx + 0x18]
jmp 0x44ad12
fstp st(0)
fadd dword [0x65a124]
fld dword [ebx + 0x18]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x44ad29
fstp dword [ebx + 0x18]
jmp 0x44ad2b
fstp st(0)
xor eax, eax
mov word [ebx + 0x188], ax
mov eax, dword [ebx + 4]
test eax, 0x10000
je 0x44aece
mov esi, dword [0x659808]
test esi, esi
je 0x44b042
test al, 0x40
je 0x44ae3a
test eax, 0x800000
je 0x44ad70
fld dword [esi + 0x20]
fstp dword [ebx + 0x44]
mov ecx, dword [0x659808]
fld dword [ecx + 0x24]
jmp 0x44ad85
fld dword [esi + 0x2c]
fadd dword [ebx + 0x44]
fstp dword [ebx + 0x44]
mov edx, dword [0x659808]
fld dword [edx + 0x30]
fadd dword [ebx + 0x48]
fstp dword [ebx + 0x48]
mov eax, dword [0x659808]
fld dword [eax + 0x28]
sub esp, 0xc
fstp dword [ebx + 0x4c]
lea ecx, [ebp - 0x5c]
fld dword [ebx + 0x1c]
fstp dword [esp + 8]
fld dword [ebx + 0x18]
fstp dword [esp + 4]
fld dword [ebx + 0x14]
fstp dword [esp]
push ecx
call fcn.00401915
fld dword [ebp - 0x2c]
fsub dword [ebx + 0x44]
lea edx, [esi + 0xcc]
push edx
lea eax, [ebp - 0x5c]
fstp dword [ebp - 0x2c]
push eax
fld dword [ebp - 0x28]
fsub dword [ebx + 0x48]
fstp dword [ebp - 0x28]
fld dword [ebp - 0x24]
fadd dword [ebx + 0x4c]
fstp dword [ebp - 0x24]
fld dword [esi + 0xb0]
fadd dword [ebp - 0x2c]
fstp dword [ebp - 0x2c]
fld dword [esi + 0xb4]
fadd dword [ebp - 0x28]
fstp dword [ebp - 0x28]
fld dword [esi + 0xb8]
fadd dword [ebp - 0x24]
fstp dword [ebp - 0x24]
call fcn.00404a75
fld dword [ebp - 0x2c]
add esp, 0x18
fsub dword [esi + 0xb0]
fstp dword [ebp - 0x2c]
fld dword [ebp - 0x28]
fsub dword [esi + 0xb4]
fstp dword [ebp - 0x28]
fld dword [ebp - 0x24]
fsub dword [esi + 0xb8]
fstp dword [ebp - 0x24]
fld dword [ebp - 0x2c]
fstp dword [ebx + 0x20]
fld dword [ebp - 0x28]
fstp dword [ebx + 0x24]
fld dword [ebp - 0x24]
jmp 0x44ae49
fld dword [ebx + 0x14]
fstp dword [ebx + 0x20]
fld dword [ebx + 0x18]
fstp dword [ebx + 0x24]
fld dword [ebx + 0x1c]
fstp dword [ebx + 0x28]
mov ecx, dword [esi + 0xbc]
mov dword [ebp - 0x204], ecx
mov edx, dword [esi + 0xc0]
mov dword [ebp - 0x200], edx
mov eax, dword [esi + 0xc4]
movzx edx, word [ebx + 0x52]
mov dword [ebp - 0x1fc], eax
mov ecx, dword [esi + 0xc8]
push edx
lea eax, [ebp - 0x204]
push eax
mov dword [ebp - 0x1f8], ecx
call fcn.00403f30
movzx ecx, word [ebx + 0x50]
push ecx
lea edx, [ebp - 0x204]
push edx
call fcn.00404291
movzx eax, word [ebx + 0x54]
push eax
lea ecx, [ebp - 0x204]
push ecx
call fcn.00403724
lea edx, [ebp - 0x204]
push edx
lea eax, [ebx + 0x74]
push eax
lea ecx, [ebx + 0xbc]
push ecx
call fcn.004011e0
add esp, 0x24
jmp 0x44b042
test al, 0x10
je 0x44b000
movsx esi, word [ebx + 0x18c]
mov edx, dword [ebx + 0x1a4]
imul esi, esi, 0x340
cmp edx, dword [esi + 0x7575d0]
jne 0x44b488
fld dword [ebx + 0x1c]
sub esp, 0xc
fstp dword [esp + 8]
lea eax, [ebp - 0x9c]
fld dword [ebx + 0x18]
fstp dword [esp + 4]
fld dword [ebx + 0x14]
fstp dword [esp]
push eax
call fcn.00401915
lea ecx, [esi + 0x7576d4]
push ecx
lea edx, [ebp - 0x9c]
push edx
call fcn.00404a75
fld dword [esi + 0x757628]
fadd dword [ebp - 0x6c]
fstp dword [ebx + 0x20]
fld dword [esi + 0x75762c]
fadd dword [ebp - 0x68]
fstp dword [ebx + 0x24]
fld dword [esi + 0x757630]
fadd dword [ebp - 0x64]
fstp dword [ebx + 0x28]
mov ecx, dword [esi + 0x7576c8]
mov edx, dword [esi + 0x7576cc]
mov eax, dword [esi + 0x7576c4]
mov dword [ebp - 0x210], ecx
movzx ecx, word [ebx + 0x52]
mov dword [ebp - 0x20c], edx
mov dword [ebp - 0x214], eax
mov eax, dword [esi + 0x7576d0]
push ecx
lea edx, [ebp - 0x214]
push edx
mov dword [ebp - 0x208], eax
call fcn.00403f30
movzx eax, word [ebx + 0x50]
push eax
lea ecx, [ebp - 0x214]
push ecx
call fcn.00404291
movzx edx, word [ebx + 0x54]
push edx
lea eax, [ebp - 0x214]
push eax
call fcn.00403724
lea ecx, [ebp - 0x214]
push ecx
lea edx, [ebx + 0x74]
push edx
lea eax, [ebx + 0xbc]
push eax
call fcn.004011e0
add esp, 0x3c
mov eax, ebx
test dword [ebx + 4], edi
je 0x44aff2
movzx ecx, word [eax + 0x18c]
test cx, cx
je 0x44aff2
movsx eax, cx
imul eax, eax, 0x340
add eax, 0x757608
test dword [eax + 4], edi
jne 0x44afd3
fld dword [eax + 0x88]
fstp dword [ebx + 0x88]
jmp 0x44b042
test byte [ebx + 0x94], 2
fld dword [ebx + 0x14]
fstp dword [ebx + 0x20]
fld dword [ebx + 0x18]
fstp dword [ebx + 0x24]
fld dword [ebx + 0x1c]
fstp dword [ebx + 0x28]
je 0x44b042
mov ecx, dword [ebx + 0x74]
mov edx, dword [ebx + 0x78]
mov eax, dword [ebx + 0x7c]
mov dword [ebx + 0xbc], ecx
mov ecx, dword [ebx + 0x80]
mov dword [ebx + 0xc0], edx
mov dword [ebx + 0xc4], eax
mov dword [ebx + 0xc8], ecx
test dword [ebx + 4], 0x200000
je 0x44b254
mov al, byte [ebx + 0x1dc]
lea edx, [eax - 1]
mov byte [ebx + 0x1dc], dl
test al, al
jne 0x44b168
push 0xa
mov byte [ebx + 0x1dc], 0xf
call fcn.00402e96
and eax, 0x800
sub eax, 0x400
mov dword [ebp - 0x1e0], eax
fild dword [ebp - 0x1e0]
push 0xb
fmul qword [0x5bed60]
fstp dword [ebp - 0x1e4]
call fcn.00402e96
and eax, 0x800
sub eax, 0x400
mov dword [ebp - 0x1e0], eax
fild dword [ebp - 0x1e0]
push 0xc
fmul qword [0x5bed60]
fstp dword [ebp - 0x1f0]
call fcn.00402e96
and eax, 0x800
sub eax, 0x400
mov dword [ebp - 0x1e0], eax
fild dword [ebp - 0x1e0]
add esp, 0xc
lea eax, [ebx + 0x1d8]
push eax
fmul qword [0x5bed60]
lea ecx, [ebx + 0x1d4]
push ecx
lea edx, [ebx + 0x1d0]
fstp dword [ebp - 0x1e0]
push edx
fld dword [0x5bdf14]
sub esp, 0x10
fstp dword [esp + 0xc]
fld dword [ebp - 0x1e0]
fsub dword [ebx + 0x1c0]
fstp dword [ebp - 0x1e0]
fld dword [ebp - 0x1e0]
fstp dword [esp + 8]
fld dword [ebp - 0x1f0]
fsub dword [ebx + 0x1c8]
fstp dword [ebp - 0x1f0]
fld dword [ebp - 0x1f0]
fstp dword [esp + 4]
fld dword [ebp - 0x1e4]
fsub dword [ebx + 0x1c4]
fstp dword [ebp - 0x1e4]
fld dword [ebp - 0x1e4]
fstp dword [esp]
call fcn.0040201d
add esp, 0x1c
fld dword [ebx + 0x1d0]
fadd dword [ebx + 0x1b8]
fstp dword [ebp - 0x1e4]
fld dword [ebp - 0x1e4]
fst dword [ebx + 0x1b8]
fld dword [ebx + 0x1d4]
fadd dword [ebx + 0x1bc]
fstp dword [ebp - 0x1e4]
fld dword [ebp - 0x1e4]
fst dword [ebx + 0x1bc]
fld dword [ebx + 0x1d8]
fadd dword [ebx + 0x1c0]
fstp dword [ebp - 0x1e4]
fld dword [ebp - 0x1e4]
fst dword [ebx + 0x1c0]
fld dword [ebx + 0x1c4]
fsubp st(3)
fld qword [0x5bedd8]
fmul st(3), st(0)
fld dword [ebx + 0x1c4]
faddp st(4)
fxch st(3)
fstp dword [ebp - 0x1e4]
fld dword [ebp - 0x1e4]
fst dword [ebx + 0x1c4]
fld dword [ebx + 0x1c8]
fsubp st(3)
fxch st(2)
fmul st(3)
fadd dword [ebx + 0x1c8]
fstp dword [ebp - 0x1e4]
fld dword [ebp - 0x1e4]
fst dword [ebx + 0x1c8]
fld dword [ebx + 0x1cc]
fsubp st(2)
fxch st(1)
fmulp st(3)
fld dword [ebx + 0x1cc]
faddp st(3)
fxch st(2)
fstp dword [ebp - 0x1e4]
fld dword [ebp - 0x1e4]
fst dword [ebx + 0x1cc]
fld dword [ebx + 0x20]
faddp st(2)
fxch st(1)
fstp dword [ebx + 0x20]
fld dword [ebx + 0x24]
faddp st(2)
fxch st(1)
fstp dword [ebx + 0x24]
fadd dword [ebx + 0x28]
fstp dword [ebx + 0x28]
movzx eax, word [ebx + 0x94]
test al, 4
je 0x44b322
test al, 2
je 0x44b27f
lea eax, [ebx + 0xbc]
push eax
lea ecx, [ebx + 0xcc]
push ecx
call fcn.004021b7
jmp 0x44b31f
movzx edx, word [ebx + 0x9c]
push edx
lea eax, [ebp - 0x1dc]
push eax
call fcn.004049d0
movzx ecx, word [ebx + 0x9e]
push ecx
lea edx, [ebp - 0x15c]
push edx
call fcn.00402621
mov ax, word [ebx + 0xa0]
neg ax
movzx ecx, ax
push ecx
lea edx, [ebp - 0x19c]
push edx
call fcn.004028ec
add esp, 0x18
lea eax, [ebp - 0x15c]
push eax
lea ecx, [ebp - 0x1dc]
push ecx
lea edx, [ebp - 0xdc]
push edx
call sub.d3dx9_43.dll_D3DXMatrixMultiply
lea eax, [ebp - 0x19c]
push eax
lea ecx, [ebp - 0xdc]
push ecx
lea edx, [ebp - 0x11c]
push edx
call sub.d3dx9_43.dll_D3DXMatrixMultiply
lea eax, [ebx + 0xcc]
mov edi, eax
push eax
lea eax, [ebx + 0xbc]
mov ecx, 0x10
lea esi, [ebp - 0x11c]
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.004044ee
mov edi, 0x1000
add esp, 8
mov eax, dword [ebp - 0x1e8]
test word [ebx + 0x94], di
jne 0x44b345
fld dword [ebx + 0x24]
fmul dword [0x64bbd4]
fld dword [ebx + 0x28]
fmul dword [0x64bbd8]
jmp 0x44b359
fld dword [0x64bbd8]
fld qword [0x5c21f0]
fmul st(1), st(0)
fmul dword [0x64bbd4]
fsubp st(1)
push eax
fstp dword [eax + 0x10]
call fcn.00403319
movzx eax, word [ebx + 0x8e]
add esp, 4
cmp ax, 1
jle 0x44b39a
dec eax
mov word [ebx + 0x8e], ax
cmp ax, 1
jne 0x44b39a
fldz
or dword [ebx + 4], 0x2000000
push ebx
fstp dword [ebx + 0x88]
call fcn.0040280b
add esp, 4
mov eax, dword [ebp - 0x1f4]
inc eax
mov dword [ebp - 0x1f4], eax
cmp eax, dword [ebp - 0x1ec]
jl 0x44a801
mov edi, dword [ebp - 0x1e8]
cmp byte [0x65a0cf], 0
je 0x44b3d3
test dword [ebx + 4], 0x800
je 0x44b3d3
fldz
fstp dword [ebx + 0x88]
fldz
fcomp dword [ebx + 0x88]
fnstsw ax
test ah, 1
jne 0x44b63f
mov eax, dword [ebx + 4]
test eax, 0x800
je 0x44b491
test eax, 0x2400000
jne 0x44b405
push 0xa
call fcn.00401947
add esp, 4
push edi
call fcn.00403d2d
fld1
add esp, 4
push 0
sub esp, 0x1c
fstp dword [esp + 0x18]
fld dword [ebx + 0x34]
fstp dword [esp + 0x14]
fld dword [ebx + 0x30]
fstp dword [esp + 0x10]
fld dword [ebx + 0x2c]
fstp dword [esp + 0xc]
fld dword [ebx + 0x28]
fstp dword [esp + 8]
fld dword [ebx + 0x24]
fstp dword [esp + 4]
fld dword [ebx + 0x20]
fstp dword [esp]
call fcn.00402220
add esp, 0x20
pop esi
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00531be5
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x1e8]
fstp st(0)
push edx
call fcn.00403d2d
add esp, 4
pop esi
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00531be5
mov esp, ebp
pop ebp
ret
fstp st(0)
mov eax, dword [ebp - 0x1e8]
push eax
jmp 0x44b464
mov ecx, dword [ebp - 0x1e8]
push ecx
jmp 0x44b464
push ebx
call fcn.004046e7
add esp, 4
test byte [ebx + 4], 0x20
je 0x44b4aa
push 0
call fcn.0040344a
add esp, 4
mov edx, dword [edi + 8]
mov dword [ebp - 0x1e4], edx
call fcn.0040152d
fld1
mov dword [edi + 8], eax
fstp dword [ebx + 0x88]
and dword [ebx + 4], 0xfffffffc
xor eax, eax
push 3
mov word [ebx + 0x188], ax
call fcn.00402b6c
movsx esi, ax
add esp, 4
cmp esi, 0xffffffff
jle 0x44b577
jmp 0x44b4f0
imul esi, esi, 0x340
add esi, 0x7575c8
mov cx, word [esi + 0x1cc]
cmp cx, word [edi + 6]
jne 0x44b56a
mov edx, dword [esi + 0x1e4]
cmp edx, dword [ebp - 0x1e4]
jne 0x44b56a
xor eax, eax
mov word [esi + 0x1b8], ax
mov eax, dword [esi + 0x44]
test al, 0x10
je 0x44b56a
mov ecx, dword [esi + 0x1dc]
test ecx, ecx
je 0x44b559
xor eax, eax
mov dword [esi + 0x1b4], eax
mov dword [esi + 0x194], ecx
mov dword [esi + 0x1dc], eax
mov ecx, dword [edi + 8]
push edi
mov dword [esi + 0x1e4], ecx
call fcn.00403319
add esp, 4
jmp 0x44b56a
or eax, 0x80000000
mov dword [esi + 0x44], eax
mov edx, dword [edi + 8]
mov dword [esi + 0x1e4], edx
movsx esi, word [esi + 0xe]
cmp esi, 0xffffffff
jg 0x44b4f0
xor eax, eax
mov word [ebx + 0x178], ax
mov eax, dword [ebx + 0x198]
push edi
test eax, eax
je 0x44b5fe
xor ecx, ecx
xor esi, esi
mov word [ebx + 0x8e], cx
mov dword [ebx + 0x174], esi
mov dword [ebx + 0x154], eax
mov dword [ebx + 0x198], esi
call fcn.00403319
add esp, 4
test dword [ebx + 4], 0x8000000
je 0x44b612
movsx eax, byte [0x65a03d]
cmp eax, 1
jge 0x44b5df
mov eax, 1
lea eax, [eax + eax*4 - 5]
shl eax, 4
inc dword [eax + 0x65a1fc]
lea eax, [eax + 0x65a1fc]
jmp 0x44b612
cmp eax, 0x1a
jle 0x44b5e9
mov eax, 0x1a
lea eax, [eax + eax*4 - 5]
shl eax, 4
inc dword [eax + 0x65a1fc]
lea eax, [eax + 0x65a1fc]
jmp 0x44b612
mov dword [ebx + 0x154], 0
call fcn.00403d2d
add esp, 4
xor esi, esi
mov eax, dword [ebx + 0x194]
cmp eax, esi
je 0x44b63f
push edi
mov dword [ebx + 0x174], esi
mov dword [ebx + 0x194], esi
call eax
add esp, 4
pop esi
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00531be5
mov esp, ebp
pop ebp
ret
test byte [ebx + 4], 1
je 0x44b842
mov edx, dword [ebx + 0x1a0]
movzx eax, word [edx]
cmp ax, 0xffff
jle 0x44b842
lea esp, [esp]
fld dword [ebx + 0x20]
cwde
push 1
fstp dword [ebp - 0x10]
fld dword [ebx + 0x24]
shl eax, 4
lea ecx, [ebp - 0x10]
fstp dword [ebp - 0xc]
fld dword [ebx + 0x28]
push ecx
lea edx, [ebp - 0x1c]
fstp dword [ebp - 8]
mov dword [ebp - 0x1f0], eax
push edx
lea eax, [eax + 0x630e4c]
push eax
push ebx
call fcn.0040302b
movsx ecx, word [ebp - 0x1c]
movsx edx, word [ebp - 0x16]
mov dword [ebp - 0x1e4], ecx
add esp, 0x14
fild dword [ebp - 0x1e4]
mov dword [ebp - 0x1e4], edx
fadd dword [ebp - 0x10]
fild dword [ebp - 0x1e4]
fld st(1)
fsub st(1)
fld qword [0x5c21e0]
fadd st(1), st(0)
fld qword [0x5bd560]
fsub st(2), st(0)
fxch st(2)
call fcn.00535880
movsx ecx, word [ebp - 0x14]
cdq
and edx, 0x1f
lea edi, [edx + eax]
movsx eax, word [ebp - 0x1a]
mov dword [ebp - 0x1e4], eax
sar edi, 5
fild dword [ebp - 0x1e4]
mov dword [ebp - 0x1e4], ecx
fadd dword [ebp - 0xc]
fild dword [ebp - 0x1e4]
fld st(1)
fsub st(1)
fadd qword [0x5c21d0]
fsub st(4)
call fcn.00535880
fxch st(4)
faddp st(5)
cdq
fxch st(4)
and edx, 0x1f
lea esi, [edx + eax]
faddp st(1)
sar esi, 5
fsub st(1)
call fcn.00535880
fxch st(1)
cdq
faddp st(2)
and edx, 0x1f
fxch st(1)
add eax, edx
fadd qword [0x5c21d0]
sar eax, 5
sub eax, edi
inc eax
fsubrp st(1)
mov dword [ebp - 0x1e4], eax
call fcn.00535880
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
sub eax, esi
inc eax
test eax, eax
jle 0x44b82b
add esi, esi
lea edx, [edi + esi*8]
mov edi, dword [ebp - 0x1e8]
mov dword [ebp - 0x1f4], edx
mov dword [ebp - 0x1e0], eax
jmp 0x44b780
mov ecx, dword [ebp - 0x1e4]
mov eax, edx
test ecx, ecx
jle 0x44b816
mov dword [ebp - 0x1ec], ecx
cmp edx, 0x13f
ja 0x44b806
inc byte [eax + 0x630d08]
cmp byte [eax + 0x630d08], 8
jbe 0x44b7b4
mov byte [eax + 0x630d08], 8
mov cl, byte [eax + 0x630d08]
movsx esi, word [edi + 6]
inc esi
cmp cl, 1
mov cl, byte [eax + 0x630d08]
movzx ecx, cl
je 0x44b7ee
lea ecx, [ecx + ecx*4 - 0xa]
shl ecx, 6
add ecx, eax
mov cx, word [ecx*2 + 0x62d1f8]
movsx ecx, cx
cmp ecx, esi
je 0x44b800
mov cl, byte [eax + 0x630d08]
movzx ecx, cl
lea ecx, [ecx + ecx*4]
shl ecx, 6
add ecx, eax
mov word [ecx*2 + 0x62cf78], si
jmp 0x44b806
dec byte [eax + 0x630d08]
inc eax
inc edx
dec dword [ebp - 0x1ec]
jne 0x44b796
mov edx, dword [ebp - 0x1f4]
add edx, 0x10
dec dword [ebp - 0x1e0]
mov dword [ebp - 0x1f4], edx
jne 0x44b780
mov edx, dword [ebp - 0x1f0]
movzx eax, word [edx + 0x630e4a]
cmp ax, 0xffff
jg 0x44b660
test dword [ebx + 4], 0x4000000
je 0x44b85b
mov eax, dword [ebp - 0x1e8]
push ebx
push eax
call fcn.0040470a
add esp, 8
test byte [ebx + 4], 2
je 0x44b879
push ebx
call fcn.0040267b
add esp, 4
test byte [ebx + 4], 8
jne 0x44b879
push ebx
call fcn.0040178f
add esp, 4
mov al, byte [ebx + 0x9b]
test al, al
je 0x44b46c
pop esi
dec al
pop edi
mov byte [ebx + 0x9b], al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00531be5
mov esp, ebp
pop ebp
ret
mov byte [edi + 2], 2
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00531be5
mov esp, ebp
pop ebp
ret
push edi
call fcn.00403d2d
mov ecx, dword [ebp - 4]
add esp, 4
pop edi
xor ecx, ebp
pop ebx
call fcn.00531be5
mov esp, ebp
pop ebp
ret