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

Disassembly:
sub esp, 0x170
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x180]
push ebp
push esi
mov esi, dword [esp + 0x180]
mov eax, dword [ecx + 0x510]
mov ebp, dword [ecx + 0x504]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x40]
push edi
xor edi, edi
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x34], eax
mov eax, dword [eax + 0xb20]
mov dword [esp + 0x30], eax
test edx, edx
je 0x44ca57
push ebx
mov ebx, edi
test ebp, ebp
jle 0x44c60c
mov edi, dword [esp + 0x10]
mov esi, dword [edx + ebx*4]
mov eax, esi
mov ecx, dword [edi + 0x340]
and eax, 0x7fff
dec ecx
je 0x44c5f0
dec ecx
je 0x44c5eb
dec ecx
je 0x44c5dc
dec ecx
jne 0x44c5f3
sar eax, 4
jmp 0x44c5f3
push 0xc
cdq
pop ecx
idiv ecx
mov edx, dword [esp + 0x190]
jmp 0x44c5f3
sar eax, 3
jmp 0x44c5f3
sar eax, 2
and esi, 0x8000
or esi, eax
mov dword [edx + ebx*4], esi
inc ebx
cmp ebx, ebp
jl 0x44c5bb
mov ecx, dword [esp + 0x18c]
xor edi, edi
mov esi, dword [edx]
mov ebx, dword [edx + 4]
push 2
pop eax
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], ebx
mov dword [esp + 0x2c], eax
cmp ebp, eax
jle 0x44c738
mov eax, dword [esp + 0x10]
lea esi, [edx + 8]
mov ebx, dword [esp + 0x18c]
add eax, 0x34c
mov dword [esp + 0x14], eax
add ecx, 0x30c
lea eax, [esp + 0x7c]
mov dword [esp + 0x24], ecx
sub eax, edx
mov dword [esp + 0x1c], eax
lea eax, [ebp - 2]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
mov ebp, dword [ecx + 0xfc]
mov ecx, dword [ecx]
push dword [eax]
mov eax, ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x2c], ecx
push dword [edx + ecx*4]
push dword [edx + eax*4]
mov edx, dword [esp + 0x1c]
push dword [edx + ecx*4 + 0x344]
push dword [edx + eax*4 + 0x344]
call fcn.0044d3d0
mov ecx, dword [esi]
mov edx, 0x8000
mov ebp, dword [esp + 0x30]
add esp, 0x14
test edx, ecx
jne 0x44c6fc
cmp eax, ecx
je 0x44c6fc
mov edx, dword [ebx + 0x50c]
sub edx, eax
cmp edx, eax
jl 0x44c6b6
mov edx, eax
sub ecx, eax
jns 0x44c6d3
mov eax, edx
neg eax
cmp ecx, eax
jge 0x44c6c9
sub edx, ecx
lea ecx, [edx - 1]
jmp 0x44c6dd
lea eax, [ecx + ecx]
or ecx, 0xffffffff
sub ecx, eax
jmp 0x44c6dd
cmp ecx, edx
jl 0x44c6db
add ecx, edx
jmp 0x44c6dd
add ecx, ecx
mov edx, dword [esp + 0x190]
mov eax, dword [esp + 0x20]
mov dword [esi + ebp], ecx
mov ecx, 0x7fff
and dword [edx + eax*4], ecx
mov eax, dword [esp + 0x28]
and dword [edx + eax*4], ecx
jmp 0x44c70a
or eax, edx
mov dword [esi + ebp], edi
mov edx, dword [esp + 0x190]
mov dword [esi], eax
mov ecx, dword [esp + 0x24]
add esi, 4
mov eax, dword [esp + 0x14]
add ecx, 4
add eax, 4
mov dword [esp + 0x24], ecx
dec dword [esp + 0x18]
mov dword [esp + 0x14], eax
jne 0x44c661
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0x7c]
push 1
push 1
push dword [esp + 0x18c]
call fcn.00450eb0
mov ebp, dword [esp + 0x198]
mov eax, dword [ebp + 0x50c]
inc dword [ebp + 0x51c]
dec eax
push eax
call fcn.00442f36
add eax, eax
add dword [ebp + 0x518], eax
mov eax, dword [ebp + 0x50c]
dec eax
push eax
call fcn.00442f36
push eax
push esi
push dword [esp + 0x1a0]
call fcn.00450eb0
mov eax, dword [ebp + 0x50c]
dec eax
push eax
call fcn.00442f36
push eax
push ebx
push dword [esp + 0x1b0]
call fcn.00450eb0
mov edx, dword [esp + 0x40]
add esp, 0x30
mov dword [esp + 0x28], edi
cmp dword [edx], edi
jle 0x44c98e
lea eax, [edx + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [eax]
xor esi, esi
inc esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
mov ecx, dword [edx + eax*4 + 0xc0]
mov ebx, dword [edx + eax*4 + 0x80]
shl esi, cl
mov dword [esp + 0x14], ebx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
test ecx, ecx
je 0x44c906
mov dword [esp + 0x3c], edi
mov edx, edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
test esi, esi
jle 0x44c86c
mov ebp, dword [esp + 0x38]
lea ecx, [eax + 0xa]
shl ecx, 5
add ecx, dword [esp + 0x10]
mov eax, dword [ecx]
test eax, eax
jns 0x44c84f
mov dword [esp + edx*4 + 0x3c], 1
jmp 0x44c85d
mov eax, dword [ebp + eax*4 + 0x720]
mov eax, dword [eax + 4]
mov dword [esp + edx*4 + 0x3c], eax
inc edx
add ecx, 4
cmp edx, esi
jl 0x44c83f
mov ebp, dword [esp + 0x18c]
mov edx, edi
test ebx, ebx
jle 0x44c8cf
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0x7c]
mov ebp, dword [esp + 0x14]
lea ebx, [ebx + eax*4]
mov eax, edi
test esi, esi
jle 0x44c89a
mov ecx, dword [ebx]
cmp ecx, dword [esp + eax*4 + 0x3c]
jl 0x44c896
inc eax
cmp eax, esi
jl 0x44c889
jmp 0x44c89a
mov dword [esp + edx*4 + 0x5c], eax
mov eax, dword [esp + edx*4 + 0x5c]
add ebx, 4
mov ecx, dword [esp + 0x24]
shl eax, cl
mov ecx, dword [esp + 0x20]
or ecx, eax
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x30]
inc edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
cmp edx, ebp
jl 0x44c881
mov ebp, dword [esp + 0x18c]
mov ebx, dword [esp + 0x14]
jmp 0x44c8d3
mov ecx, dword [esp + 0x20]
push dword [esp + 0x184]
mov eax, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x20]
imul eax, dword [eax + ecx*4 + 0x100], 0x38
add eax, dword [esp + 0x3c]
push eax
call fcn.0044ad10
mov edx, dword [esp + 0x1c]
add esp, 0xc
add dword [ebp + 0x514], eax
mov eax, dword [esp + 0x18]
mov esi, edi
test ebx, ebx
jle 0x44c96e
mov edi, dword [esp + 0x14]
lea ecx, [eax*8 + 0x50]
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0x7c]
mov dword [esp + 0x18], ecx
lea ebx, [ebx + eax*4]
mov eax, dword [esp + esi*4 + 0x5c]
add eax, ecx
mov eax, dword [edx + eax*4]
test eax, eax
js 0x44c960
mov ecx, dword [ebx]
imul eax, eax, 0x38
add eax, dword [esp + 0x34]
cmp ecx, dword [eax + 4]
jge 0x44c95c
push dword [esp + 0x184]
push ecx
push eax
call fcn.0044ad10
mov edx, dword [esp + 0x1c]
add esp, 0xc
add dword [ebp + 0x518], eax
mov ecx, dword [esp + 0x18]
inc esi
add ebx, 4
cmp esi, edi
jl 0x44c926
mov ebx, dword [esp + 0x14]
xor edi, edi
mov ecx, dword [esp + 0x28]
add dword [esp + 0x2c], ebx
inc ecx
mov eax, dword [esp + 0x1c]
add eax, 4
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], eax
cmp ecx, dword [edx]
jl 0x44c7ba
mov ebx, dword [esp + 0x188]
xor ebp, ebp
mov ecx, dword [edx + 0x340]
inc ebp
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x190]
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x1c], edi
imul ecx, dword [esi]
mov eax, dword [edx + eax*4]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x18c]
cmp dword [eax + 0x504], ebp
jle 0x44ca45
lea ebx, [eax + 0x108]
mov edx, dword [ebx]
mov eax, dword [esi + edx*4]
and eax, 0x7fff
cmp eax, dword [esi + edx*4]
jne 0x44ca1e
mov edi, dword [esp + 0x10]
push dword [esp + 0x194]
mov esi, dword [edi + 0x340]
mov edi, dword [edi + edx*4 + 0x344]
imul esi, eax
push esi
push ecx
push edi
push dword [esp + 0x2c]
push dword [esp + 0x44]
call fcn.0044d34d
mov ecx, esi
mov dword [esp + 0x34], edi
mov esi, dword [esp + 0x1a8]
add esp, 0x18
mov eax, dword [esp + 0x18c]
inc ebp
add ebx, 4
cmp ebp, dword [eax + 0x504]
jl 0x44c9d4
mov ebx, dword [esp + 0x188]
jmp 0x44ca45
mov eax, dword [esp + 0x194]
mov dword [eax + edi*4], ecx
inc edi
mov eax, dword [ebx + 0x24]
cdq
sub eax, edx
sar eax, 1
cmp edi, eax
jl 0x44ca3a
xor eax, eax
inc eax
pop ebx
jmp 0x44ca84
push 1
push edi
push dword [esp + 0x188]
call fcn.00450eb0
mov eax, dword [esi + 0x24]
cdq
sub eax, edx
sar eax, 1
shl eax, 2
push eax
push edi
push dword [esp + 0x1a4]
call sub.MSVCRT.dll_memset
add esp, 0x18
xor eax, eax
pop edi
pop esi
pop ebp
add esp, 0x170
ret