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

Disassembly:
sub esp, 0x20
push edi
mov edi, ecx
mov eax, dword [edi + 0x228]
test eax, eax
mov dword [esp + 4], edi
jne 0x44c256
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x2c]
push ecx
push edx
push eax
mov ecx, edi
call fcn.00461080
pop edi
add esp, 0x20
ret 0x10
mov ecx, edi
call fcn.0044a870
test eax, eax
mov dword [esp + 0xc], eax
jne 0x44c271
mov eax, 1
pop edi
add esp, 0x20
ret 0x10
mov ecx, dword [edi + 0x228]
cmp ecx, 0x378
push ebx
push ebp
push esi
ja 0x44c5d9
je 0x44c4e5
sub ecx, 0x22b
je 0x44c3c5
sub ecx, 0xa
jne 0x44c702
mov ecx, edi
call fcn.004017d0
mov ecx, edi
mov dword [esp + 0x14], eax
call fcn.004017b0
mov ecx, edi
mov esi, eax
call fcn.00445d70
movzx ebx, byte [esp + 0x38]
movzx ecx, byte [esp + 0x3c]
movzx ebp, byte [esp + 0x40]
cdq
sub eax, edx
and ebx, 0xfffffff8
and ecx, 0xfffffffc
shl ebx, 8
shl ecx, 3
shr ebp, 3
sar eax, 1
test esi, esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], ebp
jbe 0x44c702
lea edx, [eax + eax]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], esi
jmp 0x44c310
mov eax, dword [esp + 0x14]
test eax, eax
jbe 0x44c3a3
movzx eax, byte [esp + 0x34]
mov esi, eax
imul esi, ecx
mov edi, eax
mov ecx, 0x100
imul edi, ebp
sub ecx, eax
imul eax, ebx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], eax
movzx eax, word [edx]
mov ebx, eax
mov ebp, eax
and ebx, 0x7e0
and ebp, 0x1f
imul ebx, ecx
imul ebp, ecx
and eax, 0xf800
imul eax, ecx
add ebx, esi
add ebp, edi
shr ebx, 8
shr ebp, 8
and ebx, 0x7e0
and ebp, 0x1f
or ebx, ebp
add eax, dword [esp + 0x20]
shr eax, 8
and eax, 0xf800
or ebx, eax
mov eax, dword [esp + 0x40]
mov word [edx], bx
add edx, 2
dec eax
mov dword [esp + 0x40], eax
jne 0x44c341
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
add edx, esi
dec eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], eax
jne 0x44c310
jmp 0x44c702
mov ecx, edi
call fcn.004017d0
mov ecx, edi
mov dword [esp + 0x14], eax
call fcn.004017b0
mov ecx, edi
mov esi, eax
call fcn.00445d70
movzx ebx, byte [esp + 0x38]
movzx ecx, byte [esp + 0x3c]
movzx ebp, byte [esp + 0x40]
cdq
sub eax, edx
and ebx, 0xfffffff8
and ecx, 0xfffffff8
shl ebx, 7
shl ecx, 2
shr ebp, 3
sar eax, 1
test esi, esi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], ebp
jbe 0x44c702
lea edx, [eax + eax]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], esi
lea ebx, [ebx]
mov eax, dword [esp + 0x14]
test eax, eax
jbe 0x44c4c3
movzx eax, byte [esp + 0x34]
mov esi, eax
imul esi, ecx
mov edi, eax
mov ecx, 0x100
imul edi, ebp
sub ecx, eax
imul eax, ebx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], eax
movzx eax, word [edx]
mov ebx, eax
mov ebp, eax
and ebx, 0x3e0
and ebp, 0x1f
imul ebx, ecx
imul ebp, ecx
and eax, 0x7c00
imul eax, ecx
add ebx, esi
add ebp, edi
shr ebx, 8
shr ebp, 8
and ebx, 0x3e0
and ebp, 0x1f
or ebx, ebp
add eax, dword [esp + 0x2c]
shr eax, 8
and eax, 0x7c00
or ebx, eax
mov eax, dword [esp + 0x40]
mov word [edx], bx
add edx, 2
dec eax
mov dword [esp + 0x40], eax
jne 0x44c461
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
add edx, esi
dec eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], eax
jne 0x44c430
jmp 0x44c702
test ecx, ecx
jne 0x44c4ee
mov esi, dword [edi + 0x78]
jmp 0x44c4f4
mov esi, dword [edi + 0x1c0]
test ecx, ecx
mov dword [esp + 0x18], esi
jne 0x44c501
mov edx, dword [edi + 0x7c]
jmp 0x44c507
mov edx, dword [edi + 0x1bc]
test ecx, ecx
jne 0x44c510
mov ecx, dword [edi + 0x74]
jmp 0x44c516
mov ecx, dword [edi + 0x1c4]
test edx, edx
mov dword [esp + 0x14], ecx
jbe 0x44c702
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
lea ebx, [ebx]
test esi, esi
jbe 0x44c5b7
movzx ecx, byte [esp + 0x34]
movzx edx, byte [esp + 0x40]
shl edx, 8
lea edi, [edx + ecx + 0x4c8640]
movzx edx, byte [esp + 0x3c]
shl edx, 8
lea ebp, [edx + ecx + 0x4c8640]
movzx edx, byte [esp + 0x38]
shl edx, 8
lea edx, [edx + ecx + 0x4c8640]
lea ebx, [ebx]
movzx ebx, byte [eax]
shl ebx, 8
mov bl, byte [ebx + ecx + 0x4d8640]
add bl, byte [edi]
add eax, 3
mov byte [eax - 3], bl
movzx ebx, byte [eax - 2]
shl ebx, 8
mov bl, byte [ebx + ecx + 0x4d8640]
add bl, byte [ebp]
mov byte [eax - 2], bl
movzx ebx, byte [eax - 1]
shl ebx, 8
mov bl, byte [ebx + ecx + 0x4d8640]
add bl, byte [edx]
dec esi
mov byte [eax - 1], bl
jne 0x44c570
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
add eax, edx
dec ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
jne 0x44c530
jmp 0x44c702
cmp ecx, 0x22b8
jne 0x44c702
test ecx, ecx
jne 0x44c5ee
mov esi, dword [edi + 0x78]
jmp 0x44c5f4
mov esi, dword [edi + 0x1c0]
test ecx, ecx
mov dword [esp + 0x20], esi
jne 0x44c601
mov edx, dword [edi + 0x7c]
jmp 0x44c607
mov edx, dword [edi + 0x1bc]
test ecx, ecx
jne 0x44c610
mov ecx, dword [edi + 0x74]
jmp 0x44c616
mov ecx, dword [edi + 0x1c4]
test edx, edx
mov dword [esp + 0x1c], ecx
jbe 0x44c702
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
lea ebx, [ebx]
test esi, esi
jbe 0x44c6e5
movzx ecx, byte [esp + 0x34]
movzx edx, byte [esp + 0x40]
shl edx, 8
lea edi, [edx + ecx + 0x4c8640]
movzx edx, byte [esp + 0x3c]
shl edx, 8
lea ebp, [edx + ecx + 0x4c8640]
movzx edx, byte [esp + 0x38]
shl edx, 8
lea edx, [edx + ecx + 0x4c8640]
mov dword [esp + 0x2c], edx
mov edx, ecx
imul edx, edx, 0x101
lea edx, [edx + 0x4c8640]
mov dword [esp + 0x28], edx
movzx edx, byte [eax]
mov bl, byte [edi]
shl edx, 8
mov dl, byte [edx + ecx + 0x4d8640]
add dl, bl
mov byte [eax], dl
movzx edx, byte [eax + 1]
mov bl, byte [ebp]
shl edx, 8
mov dl, byte [edx + ecx + 0x4d8640]
add dl, bl
mov ebx, dword [esp + 0x2c]
mov byte [eax + 1], dl
movzx edx, byte [eax + 2]
shl edx, 8
mov dl, byte [edx + ecx + 0x4d8640]
add dl, byte [ebx]
mov ebx, dword [esp + 0x28]
mov byte [eax + 2], dl
movzx edx, byte [eax + 3]
shl edx, 8
mov dl, byte [edx + ecx + 0x4d8640]
add dl, byte [ebx]
add eax, 4
dec esi
mov byte [eax - 1], dl
jne 0x44c680
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
add eax, edx
dec ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
jne 0x44c630
mov eax, dword [edi + 0x228]
test eax, eax
pop esi
pop ebp
pop ebx
jne 0x44c71f
mov ecx, edi
call fcn.00447fb0
xor eax, eax
pop edi
add esp, 0x20
ret 0x10
cmp dword [edi + 0x1ac], 0x4000
jne 0x44c73c
mov edi, dword [edi + 0x18c]
mov eax, dword [edi]
push 0
push edi
call dword [eax + 0x80]
xor eax, eax
pop edi
add esp, 0x20
ret 0x10