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

Disassembly:
push 0xffffffffffffffff
push 0x685a49
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1bc
mov edx, dword [ecx + 0x178]
push ebx
push ebp
push esi
test edx, edx
push edi
mov dword [esp + 0x18], ecx
jne 0x4459c5
xor ebx, ebx
mov dword [esp + 0x10], ebx
jmp 0x4459d6
mov eax, dword [ecx + 0x17c]
sub eax, edx
sar eax, 2
mov dword [esp + 0x10], eax
mov ebx, eax
xor edi, edi
xor ebp, ebp
xor edx, edx
test ebx, ebx
jle 0x44610f
mov esi, dword [ecx + 0x178]
mov eax, dword [esi + edx*4]
mov ecx, dword [esi + edx*4]
add ecx, 0xf8
mov eax, dword [eax + 0x120]
test eax, eax
je 0x445a0e
test ecx, ecx
je 0x445a0e
mov ecx, dword [eax + 0x48]
mov eax, dword [eax + 0x4c]
add edi, ecx
add ebp, eax
inc edx
cmp edx, ebx
jl 0x4459ea
xor esi, esi
cmp edi, esi
jle 0x44610f
cmp ebp, esi
jle 0x44610f
push 0x58
call fcn.00673b05
add esp, 4
mov dword [esp + 0x24], eax
cmp eax, esi
mov dword [esp + 0x1d4], esi
je 0x445a4d
mov ecx, eax
call fcn.00447f10
mov ebx, eax
mov dword [esp + 0x28], ebx
jmp 0x445a53
mov dword [esp + 0x28], esi
mov ebx, esi
push edi
mov ecx, ebx
mov dword [esp + 0x1d8], 0xffffffff
call fcn.00448190
push ebp
mov ecx, ebx
call fcn.00448250
mov eax, dword [esp + 0x18]
mov ecx, dword [ebx + 0x2c]
mov edx, dword [ebx + 0x34]
add eax, 0x54
mov dword [esp + 0x80], ecx
mov ecx, 0x10
mov esi, eax
lea edi, [esp + 0x40]
rep movsd dword es:[edi], dword [esi]
xor ebp, ebp
push eax
lea ecx, [esp + 0x44]
push ebp
push ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x2c], ebp
call fcn.0064c6ce
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x178]
mov ecx, dword [eax + ebp*4]
mov esi, ecx
mov edi, dword [ecx + 0x120]
add esi, 0xf8
test edi, edi
je 0x445f4a
test esi, esi
je 0x445f4a
mov eax, dword [edi + 0x48]
mov edx, dword [edi + 0x4c]
push eax
mov ecx, esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x88], edx
call fcn.00441960
mov ebx, dword [edi + 0x3c]
mov esi, dword [esi + 0x18]
test ebx, ebx
mov dword [esp + 0x88], esi
je 0x445f46
test esi, esi
je 0x445f46
mov esi, dword [esp + 0x18]
push 0x3f800000
mov eax, dword [esi + 0x178]
lea ecx, [esi + 0x2c]
push ecx
lea ecx, [esi + 0x54]
push ecx
mov ecx, dword [eax + ebp*4]
call fcn.004429b0
mov eax, dword [esi + 0x178]
mov ecx, 0x10
lea edi, [esp + 0x8c]
mov esi, dword [eax + ebp*4]
mov al, byte [0x81a27c]
add esi, 0x38
test al, 1
rep movsd dword es:[edi], dword [esi]
jne 0x445b64
mov dl, al
push fcn.004465e0
or dl, 1
mov byte [0x81a27c], dl
call fcn.00673ac4
add esp, 4
fld dword [esp + 0x94]
fmul dword [esp + 0x60]
fld dword [esp + 0x90]
fmul dword [esp + 0x50]
mov ecx, 0x10
lea esi, [esp + 0x8c]
mov edi, 0x81a280
faddp st(1)
fld dword [esp + 0x8c]
fmul dword [esp + 0x40]
rep movsd dword es:[edi], dword [esi]
faddp st(1)
fld dword [esp + 0x98]
fmul dword [esp + 0x70]
faddp st(1)
fstp dword [esp + 0x8c]
fld dword [esp + 0x74]
fmul dword [0x81a28c]
fld dword [esp + 0x64]
fmul dword [0x81a288]
faddp st(1)
fld dword [esp + 0x54]
fmul dword [0x81a284]
faddp st(1)
fld dword [esp + 0x44]
fmul dword [0x81a280]
faddp st(1)
fstp dword [esp + 0x90]
fld dword [esp + 0x78]
fmul dword [0x81a28c]
fld dword [esp + 0x68]
fmul dword [0x81a288]
faddp st(1)
fld dword [esp + 0x58]
fmul dword [0x81a284]
faddp st(1)
fld dword [esp + 0x48]
fmul dword [0x81a280]
faddp st(1)
fstp dword [esp + 0x94]
fld dword [esp + 0x70]
fmul dword [0x81a29c]
fld dword [esp + 0x60]
fmul dword [0x81a298]
faddp st(1)
fld dword [esp + 0x50]
fmul dword [0x81a294]
faddp st(1)
fld dword [esp + 0x40]
fmul dword [0x81a290]
faddp st(1)
fstp dword [esp + 0x9c]
fld dword [esp + 0x74]
fmul dword [0x81a29c]
fld dword [esp + 0x64]
fmul dword [0x81a298]
faddp st(1)
fld dword [esp + 0x54]
fmul dword [0x81a294]
faddp st(1)
fld dword [esp + 0x44]
fmul dword [0x81a290]
faddp st(1)
fstp dword [esp + 0xa0]
fld dword [esp + 0x78]
fmul dword [0x81a29c]
fld dword [esp + 0x68]
fmul dword [0x81a298]
faddp st(1)
fld dword [esp + 0x58]
fmul dword [0x81a294]
faddp st(1)
fld dword [esp + 0x48]
fmul dword [0x81a290]
faddp st(1)
fstp dword [esp + 0xa4]
fld dword [esp + 0x70]
fmul dword [0x81a2ac]
fld dword [esp + 0x60]
fmul dword [0x81a2a8]
faddp st(1)
fld dword [esp + 0x50]
fmul dword [0x81a2a4]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
faddp st(1)
fld dword [esp + 0x40]
fmul dword [0x81a2a0]
faddp st(1)
fstp dword [esp + 0xac]
fld dword [esp + 0x74]
fmul dword [0x81a2ac]
fld dword [esp + 0x64]
fmul dword [0x81a2a8]
faddp st(1)
fld dword [esp + 0x54]
fmul dword [0x81a2a4]
faddp st(1)
fld dword [esp + 0x44]
fmul dword [0x81a2a0]
faddp st(1)
fstp dword [esp + 0xb0]
fld dword [esp + 0x78]
fmul dword [0x81a2ac]
fld dword [esp + 0x68]
fmul dword [0x81a2a8]
faddp st(1)
fld dword [esp + 0x58]
fmul dword [0x81a2a4]
faddp st(1)
fld dword [esp + 0x48]
fmul dword [0x81a2a0]
faddp st(1)
fstp dword [esp + 0xb4]
fld dword [esp + 0x70]
fmul dword [0x81a2bc]
fld dword [0x81a2b8]
fmul dword [esp + 0x60]
faddp st(1)
fld dword [0x81a2b4]
fmul dword [esp + 0x50]
faddp st(1)
fld dword [esp + 0x40]
fmul dword [0x81a2b0]
faddp st(1)
fstp dword [esp + 0xbc]
fld dword [esp + 0x74]
fmul dword [0x81a2bc]
fld dword [esp + 0x64]
fmul dword [0x81a2b8]
faddp st(1)
fld dword [esp + 0x54]
fmul dword [0x81a2b4]
faddp st(1)
fld dword [esp + 0x44]
fmul dword [0x81a2b0]
faddp st(1)
fstp dword [esp + 0xc0]
fld dword [esp + 0x78]
fmul dword [0x81a2bc]
fld dword [esp + 0x68]
fmul dword [0x81a2b8]
faddp st(1)
fld dword [esp + 0x58]
fmul dword [0x81a2b4]
faddp st(1)
fld dword [esp + 0x48]
fmul dword [0x81a2b0]
faddp st(1)
fstp dword [esp + 0xc4]
jle 0x445efa
mov eax, dword [esp + 0x14]
lea esi, [ebx + 4]
mov ebx, ecx
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x80]
lea edi, [eax + edx*4 + 8]
mov al, byte [0x81a24c]
test al, 1
jne 0x445e3b
mov dl, al
push fcn.004465e0
or dl, 1
mov byte [0x81a24c], dl
call fcn.00673ac4
add esp, 4
fld dword [esp + 0xac]
fmul dword [esi + 4]
fld dword [esp + 0x9c]
fmul dword [esi]
add edi, 0xc
add esi, 0x20
dec ebx
faddp st(1)
fld dword [esp + 0x8c]
fmul dword [esi - 0x24]
faddp st(1)
fadd dword [esp + 0xbc]
fstp dword [0x81a250]
fld dword [esp + 0xb0]
fmul dword [esi - 0x1c]
fld dword [esp + 0xa0]
fmul dword [esi - 0x20]
mov ecx, dword [0x81a250]
mov dword [esp + 0x30], ecx
faddp st(1)
fld dword [esp + 0x90]
fmul dword [esi - 0x24]
faddp st(1)
fadd dword [esp + 0xc0]
fstp dword [0x81a254]
fld dword [esp + 0xb4]
fmul dword [esi - 0x1c]
fld dword [esp + 0xa4]
fmul dword [esi - 0x20]
mov edx, dword [0x81a254]
mov dword [esp + 0x34], edx
faddp st(1)
fld dword [esp + 0x94]
fmul dword [esi - 0x24]
faddp st(1)
fadd dword [esp + 0xc4]
fstp dword [0x81a258]
mov eax, dword [0x81a258]
mov dword [edi - 0x14], ecx
mov dword [edi - 0x10], edx
mov dword [edi - 0xc], eax
mov dword [esp + 0x38], eax
jne 0x445e1a
mov esi, dword [esp + 0x84]
test esi, esi
jle 0x445f2e
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x88]
lea ecx, [ecx + edx*2]
mov edx, esi
mov di, word [esp + 0x14]
add ecx, 2
add di, word [eax]
add eax, 2
dec edx
mov word [ecx - 2], di
jne 0x445f19
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esp + 0x20]
add eax, esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
inc ebp
cmp ebp, eax
jl 0x445aa9
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x446102
mov eax, dword [esp + 0x20]
test eax, eax
jle 0x446102
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x1c]
test eax, eax
jne 0x445f7f
mov eax, 0x6a3560
mov edx, dword [0x792838]
push edx
push eax
lea eax, [esp + 0xd4]
push 0x6d3f6c
push eax
call fcn.0067429f
mov ecx, dword [0x792838]
add esp, 0x10
inc ecx
mov dword [0x792838], ecx
mov cl, byte [esp + 0x2f]
mov byte [esp + 0x30], cl
push 0
lea ecx, [esp + 0x34]
call fcn.004031c0
lea edi, [esp + 0xcc]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x34]
push ebp
call fcn.00403350
test al, al
je 0x446004
mov edi, dword [esp + 0x34]
mov ecx, ebp
mov edx, ecx
lea esi, [esp + 0xcc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x34]
call fcn.00403330
lea eax, [esp + 0x30]
mov ecx, ebx
push eax
mov dword [esp + 0x1d8], 1
call fcn.00438980
push 1
lea ecx, [esp + 0x34]
mov dword [esp + 0x1d8], 0xffffffff
call fcn.004031c0
mov edi, dword [esp + 0x18]
lea esi, [edi + 0x134]
test esi, esi
je 0x4460d8
mov eax, dword [esi]
test eax, eax
je 0x4460d8
add eax, 0x18
lea ecx, [esp + 0x1c]
push eax
push ecx
mov ecx, 0x6e2638
call fcn.0043ca70
mov edx, dword [esp + 0x1c]
mov eax, dword [0x6e263c]
cmp edx, eax
je 0x4460d8
lea eax, [esp + 0x10]
push esi
push eax
mov ecx, 0x6e2648
call fcn.0043cb40
mov eax, dword [esp + 0x10]
mov ecx, dword [0x6e264c]
cmp eax, ecx
je 0x4460d2
mov ecx, dword [eax + 0x10]
dec ecx
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x10]
test eax, eax
jne 0x4460d2
mov ecx, dword [esi]
test ecx, ecx
je 0x4460aa
mov edx, dword [ecx]
push 1
call dword [edx + 4]
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x24]
push eax
push ecx
mov ecx, 0x6e2638
call fcn.004463f0
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x24]
push edx
push eax
mov ecx, 0x6e2648
call fcn.0043cb20
mov dword [esi], 0
push ebx
mov ecx, 0x6e2638
call fcn.0043c8e0
push 0
add ebx, 0x18
push 1
push ebx
mov ecx, 0x6e2638
call fcn.0043c590
mov edx, dword [edi]
mov ecx, edi
mov dword [esi], eax
call dword [edx + 0x40]
mov al, 1
jmp 0x446111
test ebx, ebx
je 0x44610f
mov eax, dword [ebx]
push 1
mov ecx, ebx
call dword [eax + 4]
xor al, al
mov ecx, dword [esp + 0x1cc]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1c8
ret