Function at 0x4487d0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x30
mov ebp, dword [esp + 0x44]
movzx esi, word [ebp]
mov dword [esp + 4], 0x1312ebe5
mov word [esp + 8], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x448826
nop
nop
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 4]
push dword [esp]
push eax
call fcn.0044a7e0
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 4], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x448800
xor eax, eax
cmp dword [esp + 4], esi
setne al
xor esi, esi
jmp dword [eax*4 + 0x453924]
mov edi, dword [ebp + 0x3c]
mov ebx, dword [ebp + edi]
mov dword [esp + 4], 0xe3e2a450
mov dword [esp + 8], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x448886
nop
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 4]
push dword [esp]
push eax
call fcn.0044a860
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 4], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x448860
xor eax, eax
cmp ebx, dword [esp + 4]
setne al
jmp dword [eax*4 + 0x45392c]
mov ebx, dword [ebp + edi + 0x78]
mov eax, dword [ebp + edi + 0x7c]
mov dword [esp + 0x24], eax
test eax, eax
sete al
test ebx, ebx
sete cl
or cl, al
movzx eax, cl
mov dword [esp + 0x2c], ebx
jmp dword [eax*4 + 0x453934]
mov eax, dword [ebp + ebx + 0x20]
add eax, ebp
mov dword [esp + 0x28], eax
mov eax, dword [ebp + ebx + 0x24]
add eax, ebp
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + ebx + 0x1c]
add eax, ebp
mov dword [esp + 0x18], eax
xor ecx, ecx
xor eax, eax
cmp ecx, dword [ebp + ebx + 0x18]
setb al
mov dword [esp + 0x20], 1
jmp dword [eax*4 + 0x45393c]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], ecx
mov esi, dword [eax + ecx*4]
add esi, ebp
mov ebx, 0xffffffff
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, eax
cmp byte [esi + ebx + 1], 0
lea ebx, [ebx + 1]
lea eax, [eax + 1]
jne 0x448920
mov dword [esp + 4], 0x22262489
mov word [esp + 8], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x448976
nop
nop
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 4]
push dword [esp]
push eax
call fcn.0044a8e0
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 4], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x448950
test ebx, ebx
je 0x4489a0
mov ecx, dword [esp + 4]
mov dword [esp + 0x10], ecx
not ecx
mov dword [esp + 0xc], ecx
cmp ebx, 1
jne 0x4489b0
mov edx, 0xb14a5e2
jmp 0x448a0b
mov edx, 0xb14a5e2
jmp 0x448a33
and edi, 0xfffffffe
mov edx, 0xb14a5e2
mov eax, dword [esp + 0x10]
nop
nop
nop
nop
movsx ebp, byte [esi]
xor ebp, edx
mov edx, ebp
and edx, dword [esp + 0xc]
mov ecx, ebp
not ecx
and ecx, eax
imul ecx, edx
mov edx, ebp
and edx, eax
or ebp, eax
imul ebp, edx
add ebp, ecx
movsx edx, byte [esi + 1]
add esi, 2
xor edx, ebp
mov ecx, edx
and ecx, dword [esp + 0xc]
mov ebp, edx
not ebp
and ebp, eax
imul ebp, ecx
mov ecx, edx
and ecx, eax
or edx, eax
imul edx, ecx
add edx, ebp
add edi, 0xfffffffe
jne 0x4489c0
mov ebp, dword [esp + 0x44]
test bl, 1
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
je 0x448a33
movsx esi, byte [esi]
xor edx, esi
and ecx, edx
mov esi, edx
not esi
and esi, eax
imul esi, ecx
mov ecx, edx
and ecx, eax
or edx, eax
imul edx, ecx
add edx, esi
xor eax, eax
cmp edx, dword [esp + 0x48]
setne al
mov ebx, dword [esp + 0x2c]
jmp dword [eax*4 + 0x453944]
jmp dword [0x453964]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
movzx eax, word [eax + ecx*2]
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + eax*4]
xor ecx, ecx
cmp eax, ebx
setae cl
jmp dword [ecx*4 + 0x45394c]
mov eax, dword [esp + 0x20]
jmp dword [eax*4 + 0x45397c]
mov eax, esi
add esp, 0x30
pop esi
pop edi
pop ebx
pop ebp
ret