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

Disassembly:
sub esp, 0x54
push ebx
mov ebx, ecx
mov eax, dword [ebx + 0x228]
test eax, eax
jne 0x4494f1
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x6c]
push eax
mov eax, dword [esp + 0x6c]
push ecx
mov ecx, dword [esp + 0x6c]
push edx
mov edx, dword [esp + 0x6c]
push eax
mov eax, dword [esp + 0x6c]
push ecx
push edx
push eax
mov ecx, ebx
call fcn.0045de00
pop ebx
add esp, 0x54
ret 0x1c
push ebp
push esi
push edi
mov ecx, ebx
call fcn.004475d0
mov ebp, dword [esp + 0x78]
mov ecx, ebp
mov esi, eax
call fcn.004475d0
test esi, esi
mov edi, eax
jne 0x44951d
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x54
ret 0x1c
test edi, edi
jne 0x449530
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x54
ret 0x1c
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x18], ecx
mov ecx, dword [ebx + 0x228]
test ecx, ecx
mov dword [esp + 0x14], edx
jne 0x44954f
mov eax, dword [ebx + 0x78]
jmp 0x449555
mov eax, dword [ebx + 0x1c0]
test ecx, ecx
mov dword [esp + 0x1c], eax
jne 0x449562
mov eax, dword [ebx + 0x7c]
jmp 0x449568
mov eax, dword [ebx + 0x1bc]
mov ecx, dword [ebp + 0x228]
test ecx, ecx
mov dword [esp + 0x20], eax
jne 0x44957b
mov eax, dword [ebp + 0x78]
jmp 0x449581
mov eax, dword [ebp + 0x1c0]
test ecx, ecx
mov dword [esp + 0x24], eax
jne 0x44958e
mov eax, dword [ebp + 0x7c]
jmp 0x449594
mov eax, dword [ebp + 0x1bc]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x80]
lea eax, [esp + 0x14]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x60], ecx
push eax
mov ecx, ebx
mov dword [esp + 0x5c], edx
call fcn.004470d0
test eax, eax
jne 0x4495ee
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 0x54
ret 0x1c
mov eax, dword [ebx + 0x228]
test eax, eax
jne 0x449601
mov edx, dword [ebx + 0x74]
mov dword [esp + 0x74], edx
jmp 0x44960d
mov ecx, dword [ebx + 0x1c4]
mov dword [esp + 0x74], ecx
mov edx, ecx
mov ecx, dword [ebp + 0x228]
test ecx, ecx
jne 0x449620
mov ebx, dword [ebp + 0x74]
mov dword [esp + 0x68], ebx
jmp 0x44962c
mov ecx, dword [ebp + 0x1c4]
mov dword [esp + 0x68], ecx
mov ebx, ecx
cmp eax, 0x378
ja 0x4499fc
je 0x4498d6
sub eax, 0x22b
je 0x449797
sub eax, 0xa
jne 0x449b55
mov ecx, dword [esp + 0x2c]
mov eax, edx
imul eax, dword [esp + 0x30]
add eax, esi
lea esi, [eax + ecx*2]
mov ecx, dword [esp + 0x34]
mov eax, ebx
imul eax, dword [esp + 0x38]
add eax, edi
lea ebp, [eax + ecx*2]
mov eax, edx
cdq
sub eax, edx
mov ecx, eax
mov eax, ebx
cdq
sub eax, edx
mov edx, dword [esp + 0x40]
sar ecx, 1
sar eax, 1
test edx, edx
mov dword [esp + 0x78], esi
mov dword [esp + 0x68], ebp
jle 0x449b55
add ecx, ecx
add eax, eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x70], edx
lea esp, [esp]
test eax, eax
jle 0x449761
mov ecx, ebp
sub ecx, esi
mov edi, esi
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x6c], eax
cmp word [ecx + edi], 0x7e0
je 0x449747
movzx eax, word [edi]
mov esi, eax
mov edx, eax
and eax, 0x1f
mov dword [esp + 0x74], eax
mov ax, word [ecx + edi]
movzx ecx, ax
shr edx, 5
mov ebx, ecx
and edx, 0x3f
shr ebx, 5
and ebx, 0x3f
mov ebp, 0x3f
sub ebp, edx
imul ebx, ebp
shr ax, 0xb
shr ebx, 1
shl edx, 5
and ebx, 0xffe0
add ebx, edx
shr esi, 0xb
mov edx, 0x1f
sub edx, esi
imul eax, edx
and eax, 0xffe0
shl esi, 5
add eax, esi
shl eax, 6
or ebx, eax
mov eax, dword [esp + 0x74]
and ecx, 0x1f
mov edx, 0x1f
sub edx, eax
imul ecx, edx
shr ecx, 5
add ecx, eax
or ebx, ecx
mov ecx, dword [esp + 0x7c]
mov word [edi], bx
mov eax, dword [esp + 0x6c]
add edi, 2
dec eax
mov dword [esp + 0x6c], eax
jne 0x4496c6
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0x3c]
mov ebp, dword [esp + 0x68]
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x70]
add esi, edi
add ebp, edx
dec ecx
mov dword [esp + 0x78], esi
mov dword [esp + 0x68], ebp
mov dword [esp + 0x70], ecx
jne 0x4496b0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret 0x1c
mov ecx, dword [esp + 0x2c]
mov eax, edx
imul eax, dword [esp + 0x30]
add eax, esi
lea esi, [eax + ecx*2]
mov ecx, dword [esp + 0x34]
mov eax, ebx
imul eax, dword [esp + 0x38]
add eax, edi
lea edi, [eax + ecx*2]
mov eax, edx
cdq
sub eax, edx
mov ecx, eax
mov eax, ebx
cdq
sub eax, edx
mov edx, dword [esp + 0x40]
sar ecx, 1
sar eax, 1
test edx, edx
mov dword [esp + 0x78], esi
mov dword [esp + 0x68], edi
jle 0x449b55
add ecx, ecx
add eax, eax
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x70], edx
test eax, eax
jle 0x4498a0
mov ebx, edi
sub ebx, esi
mov dword [esp + 0x74], ebx
mov dword [esp + 0x6c], eax
cmp word [ebx + esi], 0x3e0
je 0x449886
movzx eax, word [esi]
mov ecx, eax
mov edx, eax
and eax, 0x1f
mov edi, eax
xor eax, eax
mov ax, word [ebx + esi]
shr ecx, 0xa
and ecx, 0x1f
mov ebp, 0x1f
sub ebp, ecx
shl ecx, 5
shr edx, 5
mov ebx, eax
shr ebx, 0xa
and ebx, 0x1f
imul ebx, ebp
and ebx, 0xffe0
add ebx, ecx
mov ecx, eax
and edx, 0x1f
shr ecx, 5
and ecx, 0x1f
mov ebp, 0x1f
sub ebp, edx
imul ecx, ebp
shl edx, 5
and ecx, 0xffe0
add ecx, edx
and eax, 0x1f
mov edx, 0x1f
sub edx, edi
imul eax, edx
shl ebx, 5
shr eax, 5
or ebx, ecx
add eax, edi
or ebx, eax
mov word [esi], bx
mov ebx, dword [esp + 0x74]
mov eax, dword [esp + 0x6c]
add esi, 2
dec eax
mov dword [esp + 0x6c], eax
jne 0x449806
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x70]
add esi, edi
mov edi, dword [esp + 0x68]
add edi, edx
dec ecx
mov dword [esp + 0x78], esi
mov dword [esp + 0x68], edi
mov dword [esp + 0x70], ecx
jne 0x4497f2
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret 0x1c
mov ecx, dword [esp + 0x2c]
mov eax, edx
imul eax, dword [esp + 0x30]
lea esi, [esi + ecx*2]
add esi, ecx
mov ecx, dword [esp + 0x34]
add esi, eax
mov eax, ebx
imul eax, dword [esp + 0x38]
lea edi, [edi + ecx*2]
add edi, ecx
mov ecx, dword [esp + 0x3c]
lea ebp, [edi + eax]
lea eax, [ecx + ecx*2]
mov ecx, dword [esp + 0x40]
test ecx, ecx
mov dword [esp + 0x70], eax
jle 0x449b55
mov dword [esp + 0x6c], ecx
xor ecx, ecx
test eax, eax
jle 0x4499dd
mov edx, ebp
sub edx, esi
mov dword [esp + 0x78], edx
jmp 0x449930
lea edi, [ecx + esi]
cmp byte [edi + edx], 0
jne 0x44994b
cmp byte [ecx + ebp + 1], 0xff
jne 0x44994b
cmp byte [ecx + ebp + 2], 0
je 0x4499ce
mov bl, byte [edi]
movzx edx, bl
mov eax, 0xff
sub eax, edx
mov edx, dword [esp + 0x78]
movzx edx, byte [edi + edx]
imul eax, edx
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add al, bl
mov bl, byte [ecx + esi + 1]
mov byte [edi], al
movzx eax, byte [ecx + ebp + 1]
movzx edx, bl
mov edi, 0xff
sub edi, edx
imul eax, edi
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add al, bl
mov bl, byte [ecx + esi + 2]
mov byte [ecx + esi + 1], al
movzx eax, byte [ecx + ebp + 2]
movzx edx, bl
mov edi, 0xff
sub edi, edx
imul eax, edi
cdq
and edx, 0xff
add eax, edx
mov edx, dword [esp + 0x78]
sar eax, 8
add al, bl
mov ebx, dword [esp + 0x68]
mov byte [ecx + esi + 2], al
mov eax, dword [esp + 0x70]
add ecx, 3
cmp ecx, eax
jl 0x449930
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x6c]
add esi, edx
add ebp, ebx
dec ecx
mov dword [esp + 0x6c], ecx
jne 0x449916
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret 0x1c
cmp eax, 0x22b8
jne 0x449b55
mov ecx, dword [esp + 0x2c]
mov eax, edx
imul eax, dword [esp + 0x30]
add eax, esi
lea esi, [eax + ecx*4]
mov ecx, dword [esp + 0x34]
mov eax, ebx
imul eax, dword [esp + 0x38]
add eax, edi
lea edi, [eax + ecx*4]
mov eax, dword [esp + 0x3c]
lea ecx, [eax*4]
mov eax, dword [esp + 0x40]
test eax, eax
mov dword [esp + 0x70], ecx
jle 0x449b55
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x70]
xor ecx, ecx
test eax, eax
jle 0x449b42
mov eax, edi
sub eax, esi
mov dword [esp + 0x78], eax
lea esp, [esp]
lea ebp, [ecx + esi]
mov dl, byte [eax + ebp]
test dl, dl
mov byte [esp + 0x6c], dl
jne 0x449a89
mov dl, byte [edi + ecx + 1]
test dl, dl
jne 0x449a89
cmp byte [edi + ecx + 2], 0xff
jne 0x449a89
mov dl, byte [edi + ecx + 3]
test dl, dl
je 0x449b2f
mov bl, byte [ebp]
movzx edx, bl
mov eax, 0xff
sub eax, edx
movzx edx, byte [esp + 0x6c]
imul eax, edx
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add al, bl
mov bl, byte [ecx + esi + 1]
mov byte [ebp], al
movzx eax, byte [edi + ecx + 1]
movzx edx, bl
mov ebp, 0xff
sub ebp, edx
imul eax, ebp
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add al, bl
mov bl, byte [ecx + esi + 2]
mov byte [ecx + esi + 1], al
movzx eax, byte [edi + ecx + 2]
movzx edx, bl
mov ebp, 0xff
sub ebp, edx
imul eax, ebp
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add al, bl
mov bl, byte [ecx + esi + 3]
mov byte [ecx + esi + 2], al
movzx eax, byte [edi + ecx + 3]
movzx edx, bl
mov ebp, 0xff
sub ebp, edx
imul eax, ebp
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add al, bl
mov ebx, dword [esp + 0x68]
mov byte [ecx + esi + 3], al
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x70]
add ecx, 4
cmp ecx, edx
jl 0x449a60
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x7c]
add esi, edx
add edi, ebx
dec eax
mov dword [esp + 0x7c], eax
jne 0x449a46
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret 0x1c