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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x128
mov dword [esp + 0x18], 0xb3e0b58d
mov dword [esp + 0x1c], 0xcfcdb1c3
mov dword [esp + 0x20], 0xcbb8cdb1
mov dword [esp + 0x24], 0xc7b8c995
mov dword [esp + 0x28], 0xc398c5b6
mov dword [esp + 0x2c], 0xdf4cc1bd
mov dword [esp + 0x30], 0xdbe7dda1
lea eax, [esp + 0x34]
mov dword [esp + 0x14], eax
mov word [esp + 0x34], 0xd9da
mov dword [esp + 0x36], 0
mov dword [esp + 0x3a], 0
mov byte [esp + 0x3e], 0
mov ebx, 0xaa168842
mov edx, 0xbd8556c6
mov edi, 0x427aa939
xor esi, esi
nop
nop
nop
nop
mov dword [esp + 8], esi
mov dword [esp + 4], edi
movzx ecx, byte [esp + ebx + 0x55e977d6]
mov dword [esp + 0xc], ecx
lea eax, [ecx + ecx]
not eax
add eax, ecx
lea ecx, [edx + 0x679bdf0a]
mov esi, dword [esp + 8]
and esi, 2
xor ecx, 1
add ecx, esi
add ecx, 0x986420f6
mov esi, edi
or esi, edx
mov edi, ecx
and edi, esi
xor esi, ecx
lea edi, [esi + edi*2]
mov ecx, edx
and ecx, 0xa98555e0
mov esi, dword [esp + 4]
and esi, 0x50881f
or esi, ecx
mov ecx, esi
xor ecx, 0x14508a1f
and ecx, eax
not edi
mov eax, dword [esp + 0xc]
and edi, eax
xor esi, 0xebaf75e0
or esi, eax
not ecx
and ecx, esi
mov esi, dword [esp + 8]
lea eax, [ecx + ecx]
not eax
add eax, ecx
or eax, edi
mov edi, dword [esp + 4]
not eax
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0x71
mov byte [esp + ebx + 0x55e977d6], al
inc ebx
dec edx
inc edi
add esi, 2
cmp ebx, 0xaa168869
jne 0x4213f0
lea esi, [esp + 0x106]
lea eax, [esp + 0x18]
mov edi, esi
mov ecx, 7
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0x122]
mov ecx, 1
mov eax, dword [esp + 0x14]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x74]
push edi
push 0
push 0
push 0xe
push esi
push 0
call dword [0x44fb48]
mov ebx, dword [esp + 0x74]
test ebx, ebx
jns 0x4214ec
mov eax, 0xffffffff
jmp 0x4214ef
lea eax, [ebx + ebx]
push eax
call fcn.00409230
add esp, 4
push edi
push ebx
mov dword [esp + 0x18], eax
push eax
push 0xe
push esi
push 0
call dword [0x44fb48]
mov dword [esp + 0x18], 0xb342b15c
mov dword [esp + 0x1c], 0xb755b555
mov dword [esp + 0x20], 0xab4ba933
mov dword [esp + 0x24], 0xaf4bad4b
mov dword [esp + 0x28], 0xa3a2a133
lea eax, [esp + 0x2c]
mov dword [esp + 4], eax
mov dword [esp + 0x2c], 0
mov byte [esp + 0x30], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
lea edx, [ecx + ecx]
mov esi, edx
and esi, 0x10
mov edi, edx
not edi
add edi, ecx
and edi, 0xd6e4a57f
mov ebx, edi
mov eax, esi
neg eax
xor edi, 0x280cbd60
and edi, eax
xor ebx, 0xd7f34297
dec esi
and esi, ebx
sub esi, edi
movzx eax, byte [esp + ecx + 0x18]
xor esi, eax
mov dword [esp + 0xb8], esi
mov eax, dword [esp + 0xb8]
add al, 0xa8
mov byte [esp + ecx + 0x18], al
and edx, 2
xor ecx, 1
add ecx, edx
cmp ecx, 0x19
jb 0x421550
lea edi, [esp + 0xa4]
lea eax, [esp + 0x18]
mov ecx, 5
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xb8]
xor ecx, ecx
mov eax, dword [esp + 4]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x74]
mov ecx, eax
add ecx, 9
jns 0x4215dd
mov eax, 0xffffffff
jmp 0x4215e4
lea eax, [eax*2 + 0x12]
push eax
call fcn.00409230
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x10]
movzx ecx, word [eax]
mov eax, esi
test cx, cx
je 0x421621
mov eax, dword [esp + 0x10]
lea edx, [eax + 2]
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421610
mov word [eax], 0
movzx ecx, word [esp + 0xa4]
test cx, cx
je 0x421651
lea edx, [esp + 0xa6]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421640
mov word [eax], 0
lea eax, [esp + 0x9c]
push eax
push esi
call fcn.00443230
add esp, 8
not eax
shr eax, 0x1f
mov dword [esp + 0x70], esi
jmp dword [eax*4 + 0x44b104]