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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x8c
mov ebp, dword [esp + 0xa8]
mov ebx, dword [esp + 0xa4]
mov ecx, dword [ebp + 4]
mov eax, 0xfffffffe
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x422e20
mov ecx, 0xfffffffe
cmp word [ebx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x422e30
sar eax, 1
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x3f
test edx, edx
jns 0x422e50
mov eax, 0xffffffff
jmp 0x422e59
add eax, ecx
lea eax, [eax*2 + 0x7e]
push eax
call fcn.004083f0
add esp, 4
mov esi, eax
mov dword [esp + 0x4c], 0x71990fb2
mov dword [esp + 0x50], 0x75d573e5
mov dword [esp + 0x54], 0x793377e6
mov dword [esp + 0x58], 0x7dd47be9
mov dword [esp + 0x5c], 0x61d97fe8
mov dword [esp + 0x60], 0x65f663f8
mov dword [esp + 0x64], 0x69c2672f
mov dword [esp + 0x68], 0x6d3e6b37
mov dword [esp + 0x6c], 0x51356f3e
mov dword [esp + 0x70], 0x55095304
mov dword [esp + 0x74], 0x590f5702
mov dword [esp + 0x78], 0x5d015b0a
mov dword [esp + 0x7c], 0x41e25f0b
mov dword [esp + 0x80], 0x45e643eb
mov dword [esp + 0x84], 0x494647e6
mov word [esp + 0x88], 0
xor eax, eax
nop
nop
mov ecx, eax
add cl, 0xbd
xor cl, byte [esp + eax + 0x4c]
add cl, 0x4f
mov byte [esp + eax + 0x4c], cl
inc eax
cmp eax, 0x3e
jne 0x422ef0
mov dword [esp + 4], 0x1fb07e0
mov dword [esp + 8], 0xdf303fc
mov dword [esp + 0xc], 0x9ed0ffe
mov dword [esp + 0x10], 0x15e50be1
mov dword [esp + 0x14], 0x11fa17f0
mov dword [esp + 0x18], 0x1dfc13ff
mov dword [esp + 0x1c], 0x19e11fff
mov dword [esp + 0x20], 0x25e61bec
mov dword [esp + 0x24], 0x21d127c0
mov dword [esp + 0x28], 0x2dd823d1
mov dword [esp + 0x2c], 0x29c12f1b
mov dword [esp + 0x30], 0x35d62bd0
mov dword [esp + 0x34], 0x31c037db
mov dword [esp + 0x38], 0x3dd933cd
mov dword [esp + 0x3c], 0x39c83fcd
mov dword [esp + 0x40], 0xc50f3b0d
mov dword [esp + 0x44], 0xc1c6c7f1
mov dword [esp + 0x48], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 4]
lea edx, [eax + 0x41]
mov edi, 0xbe
sub edi, eax
or edx, ecx
not ecx
or ecx, edi
and ecx, edx
add cl, 0xbb
mov byte [esp + eax + 4], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x48
jb 0x422fa0
mov ecx, dword [ebp + 4]
movzx edx, word [ecx]
mov eax, esi
test dx, dx
je 0x422ff1
add ecx, 2
mov eax, esi
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x422fe0
mov word [eax], 0
movzx ecx, word [esp + 4]
test cx, cx
je 0x423021
lea edx, [esp + 6]
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 0x423010
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x423051
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 0x423040
mov word [eax], 0
movzx ecx, word [esp + 0x4c]
test cx, cx
je 0x423081
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 0x423070
mov word [eax], 0
mov eax, dword [esp + 0xac]
mov ebx, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x4230a0
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 0x4230c0
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 0x4230e0
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0xb
test eax, eax
mov dword [esp], esi
jns 0x423107
mov eax, 0xffffffff
jmp 0x423110
add ecx, edx
lea eax, [ecx*2 + 0x16]
push eax
call fcn.004083f0
add esp, 4
mov edi, eax
mov dword [esp + 4], 0x1fbf19c3
mov dword [esp + 8], 0xe34e1db0
mov dword [esp + 0xc], 0xe752e145
mov dword [esp + 0x10], 0xeb19e553
mov word [esp + 0x14], 0xe9e8
mov dword [esp + 0x16], 0
lea eax, [esp + 4]
mov ebp, 0xdfe98c05
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [eax]
mov ecx, ebp
or ecx, edx
lea esi, [ebp + 0x20167400]
and esi, edx
lea edx, [ecx + ecx]
not edx
add edx, ecx
or edx, esi
mov ecx, edx
and ecx, 1
add edx, 0x1d
or edx, 1
sub edx, ecx
inc dl
mov byte [eax], dl
inc eax
dec ebp
cmp ebp, 0xdfe98bef
jne 0x423160
movzx ecx, word [esp + 4]
mov eax, edi
test cx, cx
mov esi, dword [esp + 0xa8]
je 0x4231c1
lea edx, [esp + 6]
mov eax, edi
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4231b0
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x4231f1
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 0x4231e0
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [esi]
movzx edx, word [ecx]
test dx, dx
je 0x423221
add ecx, 2
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 0x423210
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [esi + 8]
movzx edx, word [ecx]
test dx, dx
je 0x423251
add ecx, 2
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 0x423240
mov word [eax], 0
mov dword [esp + 4], 0xd9dadbfa
mov dword [esp + 8], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 4]
mov edx, eax
and edx, 6
mov ebx, ecx
xor ebx, 0xbd7e06e3
add ebx, edx
mov edx, 0x13
sub edx, ebx
add ebx, 0xec
xor edx, ebx
and edx, esi
xor edx, ebx
add dl, 0xf5
mov byte [esp + ecx + 4], dl
inc ecx
add eax, 2
cmp ecx, 8
jne 0x423270
lea eax, [esp + 4]
push 0
push 1
push 0
push eax
mov esi, dword [esp + 0x10]
push esi
push edi
push dword [esp + 0xb8]
call fcn.00423590
add esp, 0x1c
mov ebx, eax
jmp dword [0x447ff0]