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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x144
mov edx, dword [esp + 0x160]
test edx, edx
je 0x402768
mov esi, dword [esp + 0x15c]
mov dword [esp + 0x1c], esi
lea eax, [esp + 0x138]
mov dword [esp + 4], eax
jmp 0x4024f3
mov eax, dword [esp + 0x160]
test eax, eax
je 0x402768
mov eax, dword [esp + 0x158]
mov edx, dword [eax + 0x28]
mov ecx, 0x40
sub ecx, edx
mov eax, dword [esp + 0x160]
cmp eax, ecx
jbe 0x402511
mov eax, ecx
mov ecx, dword [esp + 0x158]
lea edx, [ecx + edx + 0x2c]
mov edi, edx
mov esi, dword [esp + 0x1c]
mov ecx, eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [eax*8]
xor ebx, ebx
mov edx, dword [esp + 0x158]
add dword [edx], ecx
adc dword [edx + 4], ebx
mov edx, eax
mov ecx, dword [esp + 0x158]
add edx, dword [ecx + 0x28]
mov dword [ecx + 0x28], edx
mov dword [esp + 0x1c], esi
sub dword [esp + 0x160], eax
cmp edx, 0x40
jne 0x4024e4
add ecx, 0x2c
xor dl, dl
nop
mov eax, dword [ecx + edx]
rol ax, 8
rol eax, 0x10
rol ax, 8
mov dword [esp + edx + 0x40], eax
add edx, 4
cmp edx, 0x40
jne 0x402560
lea eax, [esp + 0x78]
nop
mov esi, dword [eax]
mov ecx, dword [eax - 0x34]
mov ebx, dword [eax - 0x38]
add ebx, dword [eax - 0x14]
mov edx, esi
ror edx, 0x13
mov edi, esi
ror edi, 0x11
xor edx, edi
shr esi, 0xa
xor edx, esi
add ebx, edx
mov edx, ecx
ror edx, 0x12
mov esi, ecx
ror esi, 7
xor edx, esi
shr ecx, 3
xor edx, ecx
add edx, ebx
mov dword [eax + 8], edx
add eax, 4
cmp eax, dword [esp + 4]
jne 0x402580
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 8]
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x158]
mov edx, dword [edx + 0xc]
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x158]
mov edx, dword [edx + 0x14]
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x158]
mov edx, dword [edx + 0x1c]
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0x158]
mov edx, dword [edx + 0x24]
mov dword [esp + 0x3c], edx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
mov esi, dword [esp + 0x28]
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
mov dword [esp + 8], ecx
mov esi, dword [esp + 0x34]
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
xor edi, edi
mov ebp, ecx
jmp 0x402684
mov esi, dword [esp + 0x10]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edx
mov edx, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 8], ecx
mov dword [esp + 0x14], eax
mov eax, ebx
mov esi, dword [esp + edi + 0x40]
add esi, dword [edi + 0x5f8240]
mov ecx, eax
ror ecx, 0xb
mov ebx, eax
ror ebx, 6
xor ecx, ebx
mov ebx, eax
ror ebx, 0x19
xor ecx, ebx
add esi, ecx
mov ebx, dword [esp + 8]
xor ebx, dword [esp + 0x14]
and ebx, eax
xor ebx, dword [esp + 8]
add esi, ebx
add esi, ebp
mov ebx, dword [esp + 0xc]
or ebx, dword [esp + 0x10]
and ebx, edx
mov ecx, dword [esp + 0xc]
and ecx, dword [esp + 0x10]
or ebx, ecx
mov ecx, edx
ror ecx, 0xd
mov ebp, edx
ror ebp, 2
xor ecx, ebp
mov ebp, edx
ror ebp, 0x16
xor ecx, ebp
add ecx, ebx
mov ebx, dword [esp + 0x18]
add ebx, esi
add ecx, esi
add edi, 4
mov ebp, dword [esp + 8]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x18], esi
cmp edi, 0x100
jne 0x402668
mov esi, dword [esp + 0x20]
add esi, ecx
mov ecx, dword [esp + 0x158]
mov dword [ecx + 8], esi
add edx, dword [esp + 0x24]
mov dword [ecx + 0xc], edx
mov edx, dword [esp + 0x10]
add edx, dword [esp + 0x28]
mov dword [ecx + 0x10], edx
mov edx, dword [esp + 0xc]
add edx, dword [esp + 0x2c]
mov dword [ecx + 0x14], edx
add ebx, dword [esp + 0x30]
mov dword [ecx + 0x18], ebx
add eax, dword [esp + 0x34]
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x38]
mov dword [ecx + 0x20], eax
mov eax, dword [esp + 0x3c]
add eax, ebp
mov dword [ecx + 0x24], eax
mov dword [ecx + 0x28], 0
mov eax, dword [esp + 0x160]
test eax, eax
jne 0x4024f3
nop
add esp, 0x144
pop ebx
pop esi
pop edi
pop ebp