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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x8c
mov edi, dword [esp + 0xac]
mov ebp, dword [esp + 0xa8]
mov ebx, dword [esp + 0xa4]
mov ecx, dword [ebp + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x422860
mov ecx, 0xfffffffe
cmp word [ebx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x422870
sar eax, 1
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x3f
test edx, edx
jns 0x422890
mov eax, 0xffffffff
jmp 0x422899
add eax, ecx
lea eax, [eax*2 + 0x7e]
push eax
call fcn.00408380
add esp, 4
mov esi, eax
mov dword [esp + 0x4c], 0xe911eb06
mov dword [esp + 0x50], 0xed05ef1d
mov dword [esp + 0x54], 0xf137f31a
mov dword [esp + 0x58], 0xf504f701
mov dword [esp + 0x5c], 0xf911fb00
mov dword [esp + 0x60], 0xfd0aff00
mov dword [esp + 0x64], 0x81668333
mov dword [esp + 0x68], 0x85b28743
mov dword [esp + 0x6c], 0x89b58bb2
mov dword [esp + 0x70], 0x8db18fbc
mov dword [esp + 0x74], 0x91ab93b6
mov dword [esp + 0x78], 0x95a997a6
mov dword [esp + 0x7c], 0x99469baf
mov dword [esp + 0x80], 0x9d7a9f77
mov dword [esp + 0x84], 0xa1a2a37a
mov word [esp + 0x88], 0
xor eax, eax
nop
nop
mov ecx, eax
add cl, 0x27
xor cl, byte [esp + eax + 0x4c]
add cl, 0x3d
mov byte [esp + eax + 0x4c], cl
inc eax
cmp eax, 0x3e
jne 0x422930
mov dword [esp], 0x39a73b98
mov dword [esp + 4], 0x25b727a4
mov dword [esp + 8], 0x218d23ba
mov dword [esp + 0xc], 0x2d852f89
mov dword [esp + 0x10], 0x29862b88
mov dword [esp + 0x14], 0x15bc1783
mov dword [esp + 0x18], 0x118913bb
mov dword [esp + 0x1c], 0x1d821f84
mov dword [esp + 0x20], 0x19891bb8
mov dword [esp + 0x24], 0x5800789
mov dword [esp + 0x28], 0x1a903d7
mov dword [esp + 0x2c], 0xd920f98
mov dword [esp + 0x30], 0x9980ba7
mov dword [esp + 0x34], 0xf561f795
mov dword [esp + 0x38], 0xf160f365
mov dword [esp + 0x3c], 0xfd2bff25
mov dword [esp + 0x40], 0xf9fafb29
mov byte [esp + 0x44], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xcb
xor cl, byte [esp + eax]
add cl, 9
mov byte [esp + eax], cl
inc eax
cmp eax, 0x45
jne 0x4229e0
mov ecx, dword [ebp + 4]
movzx edx, word [ecx]
mov eax, esi
test dx, dx
je 0x422a21
add ecx, 2
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x422a10
mov word [eax], 0
movzx ecx, word [esp]
test cx, cx
je 0x422a51
lea edx, [esp + 2]
nop
nop
nop
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 0x422a40
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x422a81
add ebx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x422a70
mov word [eax], 0
movzx ecx, word [esp + 0x4c]
test cx, cx
je 0x422ab1
lea edx, [esp + 0x4e]
nop
nop
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 0x422aa0
mov word [eax], 0
mov ebx, dword [edi]
mov eax, 0xfffffffe
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x422ac0
mov edx, dword [ebp]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x422ae0
mov edi, dword [ebp + 8]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + edx + 2], 0
lea edx, [edx + 2]
jne 0x422b00
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0xb
test eax, eax
jns 0x422b24
mov eax, 0xffffffff
jmp 0x422b2d
add ecx, edx
lea eax, [ecx*2 + 0x16]
push eax
call fcn.00408380
add esp, 4
mov dword [esp], 0x71dd7fd5
mov dword [esp + 4], 0x75ce73cc
mov dword [esp + 8], 0x49c277d3
mov dword [esp + 0xc], 0x4dbb4bfd
mov dword [esp + 0x10], 0x4f4c
mov byte [esp + 0x14], 0
mov edi, 0xd6ca7d95
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + edi + 0x2935826b]
xor ecx, edi
add ecx, 0x122182e9
mov edx, ecx
xor edx, 0xd3
and ecx, 0x2c
add ecx, ecx
sub ecx, edx
inc cl
mov byte [esp + edi + 0x2935826b], cl
inc edi
cmp edi, 0xd6ca7daa
jne 0x422b70
movzx ecx, word [esp]
mov ebp, eax
test cx, cx
je 0x422bd2
lea edx, [esp + 2]
mov ebp, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebp], cx
add ebp, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x422bc0
mov word [ebp], 0
movzx ecx, word [ebx]
test cx, cx
je 0x422c02
add ebx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebp], cx
add ebp, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x422bf0
mov word [ebp], 0x5f
add ebp, 2
mov ecx, dword [esp + 0xa8]
mov ecx, dword [ecx]
movzx edx, word [ecx]
test dx, dx
mov dword [esp + 0x48], eax
je 0x422c42
add ecx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebp], dx
add ebp, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x422c30
mov edi, esi
mov word [ebp], 0x5f
add ebp, 2
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + 8]
movzx edx, word [ecx]
test dx, dx
je 0x422c82
add ecx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebp], dx
add ebp, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x422c70
mov word [ebp], 0
mov dword [esp], 0xf10e0fe6
mov byte [esp + 4], 0
mov eax, 0x7d
mov ecx, 2
nop
nop
mov ebx, eax
not ebx
movzx ebp, byte [esp + eax - 0x7d]
lea edx, [eax + 0x80]
lea esi, [ebp*2]
not esi
add esi, ebp
and esi, 0x48
and ebp, 0xffffffb7
or ebp, esi
mov esi, ecx
and esi, 0x48
and ebx, 0x48
and edx, 0xb7
or edx, esi
or edx, ebx
xor edx, ebp
add dl, 0xf
mov byte [esp + eax - 0x7d], dl
inc eax
dec ecx
cmp ecx, 0xfffffffd
jne 0x422ca0
mov eax, esp
push 0
push 1
push 0
push eax
push edi
mov esi, dword [esp + 0x5c]
push esi
push dword [esp + 0xb8]
call fcn.00422fa0
add esp, 0x1c
mov ebx, eax
jmp dword [0x4470a4]