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

Disassembly:
mov ecx, dword [esp + 4]
sub esp, 0x24
mov eax, dword [ecx + 0xec]
push ebx
push ebp
push esi
cmp eax, 0x10
push edi
jne 0x44c1b2
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x68]
imul edi, esi
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x58]
add eax, edi
mov ebx, dword [ecx]
push esi
mov ecx, dword [edx]
shl eax, 4
add ebx, eax
add eax, ecx
mov ebp, eax
push ebx
push ebp
call dword [0x50bb30]
lea eax, [ebx + 8]
push esi
lea ecx, [ebp + 8]
push eax
push ecx
call dword [0x50bb30]
lea edx, [ebx + esi*8]
push esi
lea eax, [ebp + esi*8]
push edx
push eax
call dword [0x50bb30]
lea ecx, [ebx + esi*8 + 8]
push esi
lea edx, [ebp + esi*8 + 8]
push ecx
push edx
call dword [0x50bb30]
mov eax, dword [esp + 0x6c]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x88]
shr edi, 1
mov ecx, dword [ebp + 4]
add edi, eax
mov eax, dword [ebx + 4]
shl edi, 3
shr esi, 1
add eax, edi
push esi
add ecx, edi
push eax
push ecx
call dword [0x50bb30]
mov edx, dword [ebx + 8]
mov eax, dword [ebp + 8]
add edx, edi
push esi
add eax, edi
push edx
push eax
call dword [0x50bb30]
add esp, 0x48
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
xor ebx, ebx
cmp eax, ebx
je 0x44c6ae
cmp eax, 1
je 0x44c6ae
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x14], ebx
cmp edi, ebx
mov dword [esp + 0x18], ebx
je 0x44c1db
add ecx, 0x124
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x68]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], ecx
jmp 0x44c1fd
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x6c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
test edi, edi
mov dword [esp + 0x38], eax
je 0x44c20f
cdq
sub eax, edx
sar eax, 1
mov edx, dword [esp + 0x14]
add edx, eax
mov eax, ecx
test edi, edi
mov dword [esp + 0x14], edx
je 0x44c224
cdq
sub eax, edx
sar eax, 1
mov edx, dword [esp + 0x18]
mov ebp, ebx
add edx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x3c]
sar ebp, 1
add eax, eax
and ebx, 1
add ebp, eax
lea eax, [edx + edx]
add ebx, eax
mov eax, dword [esp + 0x50]
shl ebp, 3
mov edx, dword [eax]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x20], edx
mov edx, dword [eax]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x2c], edx
mov edx, dword [eax]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x58]
mov edi, dword [eax]
mov eax, dword [edx]
mov dword [esp + 0x68], edi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x6c]
shl ebx, 3
test eax, eax
mov dword [esp + 0x24], ebx
je 0x44c59c
mov eax, dword [esp + 0x38]
mov edx, ecx
or edx, eax
test dl, 3
je 0x44c578
lea edx, [ecx + ebp*4]
lea eax, [eax + ebx*4]
sar edx, 2
imul edx, esi
mov ebx, edx
mov edx, dword [esp + 0x68]
mov edi, dword [0x49de60]
sar eax, 2
add edx, ebx
and ecx, 3
add eax, edx
mov edx, dword [esp + 0x74]
shl ecx, 2
lea ebx, [edx + 0x20]
mov edx, dword [esp + 0x38]
and edx, 3
or ecx, edx
cmp ecx, 0xf
ja case.default.0x44c2dd
jmp dword [ecx*4 + 0x44ca80]
push esi
push eax
mov eax, dword [esp + 0x7c]
push eax
call dword [0x50bb30]
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 0x30]
add esp, 0xc
jmp 0x44c63e
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
push ecx
push esi
push 8
push eax
push edx
call dword [edi + 0x1c]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x38]
add esp, 0x14
jmp 0x44c63e
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
push ecx
push esi
push 8
push eax
push edx
call dword [edi + 0x18]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x38]
add esp, 0x14
jmp 0x44c63e
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
push ecx
push esi
push 8
push eax
push edx
call dword [edi + 0x20]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x38]
add esp, 0x14
jmp 0x44c63e
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
push ecx
push esi
push 8
push eax
push edx
call dword [edi + 0x28]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x38]
add esp, 0x14
jmp 0x44c63e
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x1c]
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x88]
push edx
push esi
push 8
push ebx
push eax
call dword [edi + 0x28]
mov eax, dword [esp + 0x9c]
mov ebx, dword [esp + 0x4c]
add esp, 0x28
jmp 0x44c63e
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x18]
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x88]
push edx
push esi
push 8
push ebx
push eax
call dword [edi + 0x28]
mov eax, dword [esp + 0x9c]
mov ebx, dword [esp + 0x4c]
add esp, 0x28
jmp 0x44c63e
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x20]
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x88]
push edx
push esi
push 8
push ebx
push eax
call dword [edi + 0x28]
mov eax, dword [esp + 0x9c]
mov ebx, dword [esp + 0x4c]
add esp, 0x28
jmp 0x44c63e
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
push ecx
push esi
push 8
push eax
push edx
call dword [edi + 0x24]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x38]
add esp, 0x14
jmp 0x44c63e
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x1c]
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x88]
push edx
push esi
push 8
push ebx
push eax
call dword [edi + 0x24]
mov eax, dword [esp + 0x9c]
mov ebx, dword [esp + 0x4c]
add esp, 0x28
jmp 0x44c63e
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x18]
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x88]
push edx
push esi
push 8
push ebx
push eax
call dword [edi + 0x24]
mov eax, dword [esp + 0x9c]
mov ebx, dword [esp + 0x4c]
add esp, 0x28
jmp 0x44c63e
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x20]
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x88]
push edx
push esi
push 8
push ebx
push eax
call dword [edi + 0x24]
mov eax, dword [esp + 0x9c]
mov ebx, dword [esp + 0x4c]
add esp, 0x28
jmp 0x44c63e
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
push ecx
push esi
push 8
push eax
push edx
call dword [edi + 0x2c]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x38]
add esp, 0x14
jmp 0x44c63e
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x1c]
jmp 0x44c551
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x18]
jmp 0x44c551
mov ecx, dword [esp + 0x70]
push ecx
push esi
push 9
push eax
push ebx
call dword [edi + 0x20]
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x88]
push edx
push esi
push 8
push ebx
push eax
call dword [edi + 0x2c]
add esp, 0x28
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x24]
jmp 0x44c63e
mov eax, ecx
cdq
and edx, 3
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0x38]
cdq
sar ecx, 2
and edx, 3
add ecx, ebp
add eax, edx
imul ecx, esi
sar eax, 2
jmp 0x44c638
mov edx, dword [esp + 0x38]
mov eax, ecx
and edx, 1
and eax, 1
lea eax, [eax + edx*2]
sub eax, 0
je 0x44c621
dec eax
je 0x44c5ff
dec eax
je 0x44c5db
lea eax, [ecx - 1]
mov ecx, dword [esp + 0x38]
cdq
sub eax, edx
mov edi, eax
lea eax, [ecx - 1]
sar edi, 1
add edi, ebp
mov ecx, dword [esp + 0x20]
imul edi, esi
cdq
sub eax, edx
add ecx, edi
sar eax, 1
add eax, ecx
jmp 0x44c63c
mov eax, ecx
mov ecx, dword [esp + 0x28]
cdq
sub eax, edx
mov edx, dword [esp + 0x38]
mov edi, eax
sar edi, 1
add edi, ebp
lea eax, [edx - 1]
imul edi, esi
cdq
sub eax, edx
add ecx, edi
sar eax, 1
add eax, ecx
jmp 0x44c63c
lea eax, [ecx - 1]
mov ecx, dword [esp + 0x2c]
cdq
sub eax, edx
mov edi, eax
mov eax, dword [esp + 0x38]
sar edi, 1
add edi, ebp
imul edi, esi
cdq
sub eax, edx
add ecx, edi
sar eax, 1
add eax, ecx
jmp 0x44c63c
mov eax, ecx
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esp + 0x38]
sar ecx, 1
cdq
add ecx, ebp
sub eax, edx
imul ecx, esi
sar eax, 1
add edi, ecx
add eax, edi
add eax, ebx
imul ebp, esi
mov edi, dword [esp + 0x1c]
push esi
push eax
mov eax, dword [esp + 0x38]
add ebp, eax
add ebp, ebx
push ebp
push edi
call dword [0x50bb2c]
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x20]
add esp, 0x10
inc eax
add ebx, 8
add edi, 0x80
cmp eax, 4
mov dword [esp + 0x54], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x1c], edi
jl 0x44c1f1
mov ecx, dword [esp + 0x14]
mov edx, ecx
and edx, 0xf
sar ecx, 3
mov eax, dword [edx*4 + reloc.KERNEL32.dll_GetProcessHeap]
mov edx, dword [esp + 0x18]
add eax, ecx
mov ecx, edx
and ecx, 0xf
sar edx, 3
mov ecx, dword [ecx*4 + reloc.KERNEL32.dll_GetProcessHeap]
jmp 0x44ca3a
cmp dword [ecx + reloc.KERNEL32.dll_GetProcessHeap], ebx
je 0x44c7d4
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x68]
mov ebx, esi
mov edx, dword [esp + 0x3c]
imul ebx, edi
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x70], ebx
add ebx, edx
mov edx, dword [esp + 0x58]
mov eax, dword [ebp]
push edi
shl ebx, 4
add eax, ebx
mov ecx, ebx
push eax
mov eax, dword [edx]
add ecx, eax
mov eax, dword [esp + 0x64]
push ecx
push eax
call dword [0x50bb2c]
mov ecx, dword [ebp]
mov eax, dword [esp + 0x68]
push edi
lea edx, [ecx + ebx + 8]
mov ecx, dword [eax]
push edx
lea edx, [ebx + ecx + 8]
mov ebx, dword [esp + 0x74]
push edx
lea eax, [ebx + 0x80]
push eax
call dword [0x50bb2c]
shl esi, 4
add esi, 8
mov ecx, dword [esp + 0x5c]
imul esi, edi
shl ecx, 4
add esi, ecx
mov ecx, dword [ebp]
mov edx, esi
push edi
add edx, ecx
mov ecx, dword [esp + 0x7c]
push edx
mov eax, esi
mov edx, dword [ecx]
add eax, edx
lea edx, reloc.KERNEL32.dll_GetProcessHeap
push eax
push edx
call dword [0x50bb2c]
mov eax, dword [ebp]
mov edx, dword [esp + 0x88]
push edi
lea ecx, [esi + eax + 8]
mov eax, dword [edx]
push ecx
lea edx, reloc.KERNEL32.dll_GetProcessHeap
lea ecx, [esi + eax + 8]
push ecx
push edx
call dword [0x50bb2c]
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0x7c]
add esp, 0x40
lea ecx, [eax*8]
mov eax, dword [ebp + 4]
shr ecx, 1
shr edi, 1
lea esi, [ecx + edx*8]
mov ecx, dword [esp + 0x58]
add eax, esi
push edi
mov edx, dword [ecx + 4]
push eax
add edx, esi
lea eax, reloc.KERNEL32.dll_GetProcessHeap
push edx
push eax
call dword [0x50bb2c]
mov edx, dword [esp + 0x68]
mov ecx, dword [ebp + 8]
add ecx, esi
push edi
mov eax, dword [edx + 8]
push ecx
add eax, esi
add ebx, 0x280
push eax
push ebx
call dword [0x50bb2c]
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov edx, dword [esp + 0x6c]
cmp edx, ebx
je 0x44c7f2
mov eax, dword [ecx + reloc.KERNEL32.dll_GetProcessHeap]
mov edi, dword [ecx + reloc.KERNEL32.dll_GetProcessHeap]
mov dword [esp + 0x38], eax
mov dword [esp + 0x54], edi
jmp 0x44c801
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x38], eax
mov dword [esp + 0x54], ecx
mov edi, ecx
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x58]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov esi, dword [esi]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x4c]
shl ebx, 4
mov ecx, dword [ecx]
mov dword [esp + 0x50], esi
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x48]
shl ebp, 4
mov ecx, dword [ecx]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x44]
test edx, edx
mov ecx, dword [ecx]
je 0x44c8b9
mov edx, edi
or edx, eax
test dl, 3
je 0x44c885
mov edx, dword [esp + 0x70]
mov esi, dword [esp + 0x68]
push edx
push esi
push edi
mov edi, dword [esp + 0x80]
push eax
push ebx
lea eax, [edi + 0x60]
push ebp
push eax
lea edx, [edi + 0x40]
lea eax, [edi + 0x20]
push edx
push eax
push ecx
mov ecx, ebx
mov edx, edi
imul ecx, esi
sub edx, ecx
sub edx, ebp
push edx
call fcn.0044e2b0
add esp, 0x2c
jmp 0x44c975
mov eax, edi
mov esi, dword [esp + 0x68]
cdq
and edx, 3
add eax, edx
mov edi, eax
mov eax, dword [esp + 0x38]
sar edi, 2
add edi, ebx
imul edi, esi
cdq
and edx, 3
mov dword [esp + 0x68], edi
add eax, edx
mov edi, eax
mov eax, dword [esp + 0x68]
sar edi, 2
add ecx, eax
jmp 0x44c971
mov edx, edi
and eax, 1
and edx, 1
lea eax, [edx + eax*2]
sub eax, 0
je 0x44c950
dec eax
je 0x44c928
dec eax
je 0x44c8fe
lea eax, [edi - 1]
mov esi, dword [esp + 0x68]
cdq
sub eax, edx
mov edx, dword [esp + 0x38]
mov ecx, eax
sar ecx, 1
add ecx, ebx
lea eax, [edx - 1]
imul ecx, esi
cdq
sub eax, edx
mov edi, eax
mov eax, dword [esp + 0x30]
sar edi, 1
add eax, ecx
add edi, eax
jmp 0x44c973
mov eax, edi
mov esi, dword [esp + 0x68]
cdq
sub eax, edx
mov edx, dword [esp + 0x38]
mov ecx, eax
sar ecx, 1
add ecx, ebx
lea eax, [edx - 1]
imul ecx, esi
cdq
sub eax, edx
mov edi, eax
mov eax, dword [esp + 0x4c]
sar edi, 1
add eax, ecx
add edi, eax
jmp 0x44c973
lea eax, [edi - 1]
mov esi, dword [esp + 0x68]
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esp + 0x38]
sar ecx, 1
add ecx, ebx
imul ecx, esi
cdq
sub eax, edx
mov edi, eax
mov eax, dword [esp + 0x2c]
sar edi, 1
add eax, ecx
add edi, eax
jmp 0x44c973
mov eax, edi
mov esi, dword [esp + 0x68]
cdq
sub eax, edx
mov edi, eax
mov eax, dword [esp + 0x38]
sar edi, 1
add edi, ebx
imul edi, esi
cdq
sub eax, edx
mov edx, edi
mov edi, eax
sar edi, 1
add ecx, edx
add edi, ecx
add edi, ebp
mov eax, ebx
mov edx, dword [esp + 0x50]
imul eax, esi
mov ecx, dword [esp + 0x5c]
add eax, edx
add eax, ebp
push esi
push edi
push eax
push ecx
mov dword [esp + 0x78], eax
call dword [0x50bb2c]
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x6c]
lea edx, [edi + 8]
push esi
add eax, 8
push edx
add ecx, 0x80
push eax
push ecx
call dword [0x50bb2c]
add ebx, 8
mov ecx, dword [esp + 0x70]
imul ebx, esi
add ebx, ecx
lea edx, [edi + esi*8]
add ebp, ebx
mov ebx, dword [esp + 0x7c]
push esi
push edx
lea eax, reloc.KERNEL32.dll_GetProcessHeap
push ebp
push eax
call dword [0x50bb2c]
lea ecx, [edi + esi*8 + 8]
push esi
add ebp, 8
push ecx
add ebx, 0x180
push ebp
push ebx
call dword [0x50bb2c]
mov eax, dword [esp + 0xac]
add esp, 0x40
test eax, eax
je 0x44ca14
mov eax, dword [esp + 0x38]
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, dword [esp + 0x54]
cdq
sub eax, edx
sar eax, 1
mov edx, eax
jmp 0x44ca1c
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x38]
mov eax, ecx
and eax, 3
sar ecx, 1
mov eax, dword [eax*4 + reloc.KERNEL32.dll_GetProcessHeap]
add eax, ecx
mov ecx, edx
and ecx, 3
sar edx, 1
mov ecx, dword [ecx*4 + reloc.KERNEL32.dll_GetProcessHeap]
add ecx, edx
mov edx, dword [esp + 0x70]
push edx
mov edx, dword [esp + 0x60]
shr esi, 1
add edx, 0x200
push esi
push edx
mov edx, dword [esp + 0x80]
push edx
mov edx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x6c]
push edx
mov edx, dword [esp + 0x58]
push edx
mov edx, dword [esp + 0x58]
push edx
push ecx
push eax
call fcn.0044cac0
add esp, 0x28
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret