Function at 0x448870
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 0x4488a6
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.0045ac30
pop edi
add esp, 0x20
ret 0x10
mov ecx, edi
call fcn.00446eb0
test eax, eax
mov dword [esp + 0xc], eax
jne 0x4488c1
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 0x448c29
je 0x448b35
sub ecx, 0x22b
je 0x448a15
sub ecx, 0xa
jne 0x448d52
mov ecx, edi
call fcn.00401260
mov ecx, edi
mov dword [esp + 0x14], eax
call fcn.00401240
mov ecx, edi
mov esi, eax
call fcn.004424e0
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 0x448d52
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 0x448960
mov eax, dword [esp + 0x14]
test eax, eax
jbe 0x4489f3
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 0x448991
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 0x448960
jmp 0x448d52
mov ecx, edi
call fcn.00401260
mov ecx, edi
mov dword [esp + 0x14], eax
call fcn.00401240
mov ecx, edi
mov esi, eax
call fcn.004424e0
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 0x448d52
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 0x448b13
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 0x448ab1
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 0x448a80
jmp 0x448d52
test ecx, ecx
jne 0x448b3e
mov esi, dword [edi + 0x78]
jmp 0x448b44
mov esi, dword [edi + 0x1c0]
test ecx, ecx
mov dword [esp + 0x18], esi
jne 0x448b51
mov edx, dword [edi + 0x7c]
jmp 0x448b57
mov edx, dword [edi + 0x1bc]
test ecx, ecx
jne 0x448b60
mov ecx, dword [edi + 0x74]
jmp 0x448b66
mov ecx, dword [edi + 0x1c4]
test edx, edx
mov dword [esp + 0x14], ecx
jbe 0x448d52
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
lea ebx, [ebx]
test esi, esi
jbe 0x448c07
movzx ecx, byte [esp + 0x34]
movzx edx, byte [esp + 0x40]
shl edx, 8
lea edi, [edx + ecx + 0x4ad618]
movzx edx, byte [esp + 0x3c]
shl edx, 8
lea ebp, [edx + ecx + 0x4ad618]
movzx edx, byte [esp + 0x38]
shl edx, 8
lea edx, [edx + ecx + 0x4ad618]
lea ebx, [ebx]
movzx ebx, byte [eax]
shl ebx, 8
mov bl, byte [ebx + ecx + 0x4bd618]
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 + 0x4bd618]
add bl, byte [ebp]
mov byte [eax - 2], bl
movzx ebx, byte [eax - 1]
shl ebx, 8
mov bl, byte [ebx + ecx + 0x4bd618]
add bl, byte [edx]
dec esi
mov byte [eax - 1], bl
jne 0x448bc0
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 0x448b80
jmp 0x448d52
cmp ecx, 0x22b8
jne 0x448d52
test ecx, ecx
jne 0x448c3e
mov esi, dword [edi + 0x78]
jmp 0x448c44
mov esi, dword [edi + 0x1c0]
test ecx, ecx
mov dword [esp + 0x20], esi
jne 0x448c51
mov edx, dword [edi + 0x7c]
jmp 0x448c57
mov edx, dword [edi + 0x1bc]
test ecx, ecx
jne 0x448c60
mov ecx, dword [edi + 0x74]
jmp 0x448c66
mov ecx, dword [edi + 0x1c4]
test edx, edx
mov dword [esp + 0x1c], ecx
jbe 0x448d52
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
lea ebx, [ebx]
test esi, esi
jbe 0x448d35
movzx ecx, byte [esp + 0x34]
movzx edx, byte [esp + 0x40]
shl edx, 8
lea edi, [edx + ecx + 0x4ad618]
movzx edx, byte [esp + 0x3c]
shl edx, 8
lea ebp, [edx + ecx + 0x4ad618]
movzx edx, byte [esp + 0x38]
shl edx, 8
lea edx, [edx + ecx + 0x4ad618]
mov dword [esp + 0x2c], edx
mov edx, ecx
imul edx, edx, 0x101
lea edx, [edx + 0x4ad618]
mov dword [esp + 0x28], edx
movzx edx, byte [eax]
mov bl, byte [edi]
shl edx, 8
mov dl, byte [edx + ecx + 0x4bd618]
add dl, bl
mov byte [eax], dl
movzx edx, byte [eax + 1]
mov bl, byte [ebp]
shl edx, 8
mov dl, byte [edx + ecx + 0x4bd618]
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 + 0x4bd618]
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 + 0x4bd618]
add dl, byte [ebx]
add eax, 4
dec esi
mov byte [eax - 1], dl
jne 0x448cd0
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 0x448c80
mov eax, dword [edi + 0x228]
test eax, eax
pop esi
pop ebp
pop ebx
jne 0x448d6f
mov ecx, edi
call fcn.0045a3d0
xor eax, eax
pop edi
add esp, 0x20
ret 0x10
cmp dword [edi + 0x1ac], 0x4000
jne 0x448d8c
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