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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x511368
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x54a050]
xor eax, esp
push eax
lea eax, [esp + 0x70]
mov dword fs:[0], eax
mov eax, dword [0xa7f3c0]
xor ebp, ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], ebp
mov ecx, dword [eax]
mov edx, dword [ecx + 0xc]
push eax
call edx
cmp eax, ebp
jne 0x44e7e4
mov eax, dword [0xa7f3c0]
mov ecx, dword [eax]
lea edx, [esp + 0x1c]
push edx
push ebp
push 0x15
push 1
push 1
push 0x100
push 0x100
push eax
mov eax, dword [ecx + 0x50]
call eax
mov eax, dword [esp + 0x1c]
cmp eax, ebp
je 0x44e9b3
mov ecx, dword [eax]
lea edx, [esp + 0x14]
push edx
push ebp
push eax
mov eax, dword [ecx + 0x3c]
call eax
cmp dword [esp + 0x14], ebp
jne 0x44e517
mov eax, dword [esp + 0x1c]
cmp eax, ebp
je 0x44e9b3
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ecx, dword [esp + 0x70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, 0x54f014
cmp dword [ebx + 0x50], 0
je 0x44e78a
cmp dword [ebx + 0x8c], 0
lea ebp, [ebx + 0x8c]
jne 0x44e78a
mov eax, dword [0xa7f3c0]
mov ecx, dword [eax]
lea edx, [esp + 0x20]
push edx
push eax
mov eax, dword [ecx + 0x80]
call eax
mov eax, dword [0xa7f3c0]
mov ecx, dword [eax]
lea edx, [esp + 0x24]
push edx
push eax
mov eax, dword [ecx + 0x84]
call eax
mov eax, dword [0xa7f3c0]
mov edx, dword [esp + 0x14]
mov ecx, dword [eax]
push 0
push edx
push eax
mov eax, dword [ecx + 0x7c]
call eax
fldz
mov eax, dword [0xa7f3c0]
fst dword [esp + 0x64]
fst dword [esp + 0x60]
lea edx, [esp + 0x2c]
fst dword [esp + 0x5c]
push edx
fst dword [esp + 0x5c]
push 0x100
fst dword [esp + 0x58]
push eax
fst dword [esp + 0x58]
fst dword [esp + 0x54]
fst dword [esp + 0x50]
fst dword [esp + 0x48]
fst dword [esp + 0x44]
fst dword [esp + 0x40]
fstp dword [esp + 0x3c]
fld1
fst dword [esp + 0x74]
fst dword [esp + 0x60]
fst dword [esp + 0x4c]
fstp dword [esp + 0x38]
mov ecx, dword [eax]
mov eax, dword [ecx + 0x94]
call eax
fld dword [ebx + 4]
fcomp qword [0x5353d0]
fnstsw ax
test ah, 5
jp 0x44e638
mov ecx, dword [esp + 0x14]
fld dword [ebx + 0x2c]
mov edx, dword [ebx + 0x70]
mov eax, dword [ebx + 0x64]
push ebp
push ecx
mov ecx, dword [ebx + 0x68]
push edx
push eax
push ecx
sub esp, 0xc
fstp dword [esp + 8]
fld dword [0x535498]
fstp dword [esp + 4]
fld1
fstp dword [esp]
call fcn.0044e9d0
mov edi, dword [ebx + 0x6c]
add esp, 0x20
test edi, edi
je 0x44e749
mov edx, dword [ebp]
push edx
xor esi, esi
call fcn.004046a0
mov esi, 1
jmp 0x44e73d
fld dword [ebx]
fcomp dword [ebx - 8]
fnstsw ax
test ah, 5
jp 0x44e66f
fld1
fld dword [ebx]
fmul qword [0x535440]
fld dword [ebx - 8]
fmul qword [0x535448]
faddp st(1)
fld1
fld st(0)
fsub st(2)
fld dword [0x5353b8]
fstp dword [esp + 0x28]
fxch st(2)
faddp st(1)
jmp 0x44e698
fld dword [0x5353b8]
fld dword [ebx]
fmul qword [0x535440]
fld dword [ebx - 8]
fmul qword [0x535448]
faddp st(1)
fld st(0)
fld1
fadd st(1), st(0)
fld1
fstp dword [esp + 0x28]
fsubrp st(2)
fxch st(1)
mov ecx, dword [esp + 0x14]
fstp dword [esp + 0x18]
mov edx, dword [ebx + 0x70]
fld dword [ebx + 0x2c]
mov eax, dword [ebx + 0x64]
push ebp
push ecx
mov ecx, dword [ebx + 0x68]
push edx
push eax
push ecx
sub esp, 0xc
fstp dword [esp + 8]
fstp dword [esp + 4]
fstp dword [esp]
call fcn.0044e9d0
mov edi, dword [ebx + 0x6c]
add esp, 0x20
test edi, edi
je 0x44e6ea
mov edx, dword [ebp]
push edx
xor esi, esi
call fcn.004046a0
mov eax, dword [ebp]
mov edi, dword [ebx + 0x6c]
push eax
mov esi, 1
call fcn.004046a0
mov ecx, dword [esp + 0x14]
fld dword [ebx + 4]
mov edx, dword [ebx + 0x70]
mov eax, dword [ebx + 0x64]
lea ebp, [ebx + 0x90]
push ebp
push ecx
mov ecx, dword [ebx + 0x68]
push edx
push eax
push ecx
sub esp, 0xc
fstp dword [esp + 8]
fld dword [esp + 0x38]
fstp dword [esp + 4]
fld dword [esp + 0x48]
fstp dword [esp]
call fcn.0044e9d0
mov edi, dword [ebx + 0x6c]
add esp, 0x20
test edi, edi
je 0x44e749
mov edx, dword [ebp]
push edx
mov esi, 2
call fcn.004046a0
mov esi, 3
mov eax, dword [ebp]
mov edi, dword [ebx + 0x6c]
push eax
call fcn.004046a0
mov edx, dword [esp + 0x24]
mov eax, dword [0xa7f3c0]
mov ecx, dword [eax]
push edx
mov edx, dword [esp + 0x24]
push edx
push eax
mov eax, dword [ecx + 0x7c]
call eax
mov eax, dword [esp + 0x20]
xor esi, esi
cmp eax, esi
je 0x44e776
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x20], esi
mov eax, dword [esp + 0x24]
cmp eax, esi
je 0x44e78a
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x24], esi
add ebx, 0xe8
cmp ebx, 0x54f3b4
jl 0x44e51c
mov eax, dword [esp + 0x14]
xor esi, esi
cmp eax, esi
je 0x44e7b2
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x1c]
cmp eax, esi
je 0x44e7c6
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x1c], esi
mov eax, 0x9d7d90
call fcn.00403240
mov ecx, dword [esp + 0x70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.004a7b93
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x44e7fe
push 0x80004005
call fcn.00401710
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov dword [esp + 0x78], ebp
mov ebx, 0x54f0a0
cmp dword [ebx - 0x3c], 0
je 0x44e979
cmp dword [ebx], 0
jne 0x44e979
fld dword [ebx - 0x88]
push ebp
fcomp qword [0x5353d0]
push str.tmp_d.dds
fnstsw ax
test ah, 5
jp 0x44e8a6
lea ecx, [esp + 0x20]
push ecx
call fcn.004018d0
mov edi, dword [esp + 0x24]
add esp, 8
lea eax, [edi - 0x10]
mov dword [esp + 0x2c], esp
mov esi, esp
push eax
add ebp, 1
call fcn.00401a80
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.0043d700
test eax, eax
je 0x44e885
mov edx, dword [0xa7f3c0]
push ebx
push edi
push edx
call fcn.0046da95
mov edi, dword [ebx - 0x20]
test edi, edi
je 0x44e979
mov eax, dword [ebx]
push eax
xor esi, esi
call fcn.004046a0
mov ecx, dword [ebx]
mov esi, 1
jmp 0x44e970
lea edx, [esp + 0x20]
push edx
call fcn.004018d0
mov edi, dword [esp + 0x24]
add esp, 8
lea eax, [edi - 0x10]
mov dword [esp + 0x2c], esp
mov esi, esp
push eax
add ebp, 1
call fcn.00401a80
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.0043d700
test eax, eax
je 0x44e8e7
mov eax, dword [0xa7f3c0]
push ebx
push edi
push eax
call fcn.0046da95
mov edi, dword [ebx - 0x20]
test edi, edi
je 0x44e908
mov ecx, dword [ebx]
push ecx
xor esi, esi
call fcn.004046a0
mov edx, dword [ebx]
mov edi, dword [ebx - 0x20]
push edx
mov esi, 1
call fcn.004046a0
push ebp
lea eax, [esp + 0x1c]
push str.tmp_d.dds
push eax
call fcn.004018d0
mov edi, dword [esp + 0x24]
add esp, 8
lea eax, [edi - 0x10]
mov dword [esp + 0x2c], esp
mov esi, esp
push eax
add ebp, 1
call fcn.00401a80
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.0043d700
test eax, eax
je 0x44e953
mov edx, dword [0xa7f3c0]
lea ecx, [ebx + 4]
push ecx
push edi
push edx
call fcn.0046da95
mov edi, dword [ebx - 0x20]
test edi, edi
je 0x44e979
mov eax, dword [ebx + 4]
push eax
mov esi, 2
call fcn.004046a0
mov ecx, dword [ebx + 4]
mov esi, 3
mov edi, dword [ebx - 0x20]
push ecx
call fcn.004046a0
add ebx, 0xe8
cmp ebx, 0x54f440
jl 0x44e817
mov dword [esp + 0x78], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x44e9b3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret