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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x88
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa0]
mov ecx, dword [eax + 4]
mov eax, 0xfffffffe
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x422270
mov ecx, 0xfffffffe
cmp word [ebx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x422280
sar eax, 1
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x3f
test edx, edx
jns 0x4222a0
mov eax, 0xffffffff
jmp 0x4222a9
add eax, ecx
lea eax, [eax*2 + 0x7e]
push eax
call fcn.004086e0
add esp, 4
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], 0x1f907e2
mov dword [esp + 0x4c], 0xded03fd
mov dword [esp + 0x50], 0x9c30ffe
mov dword [esp + 0x54], 0x15fc0bf9
mov dword [esp + 0x58], 0x11f917e8
mov dword [esp + 0x5c], 0x1dee13e8
mov dword [esp + 0x60], 0x19f21fd7
mov dword [esp + 0x64], 0x25261bdf
mov dword [esp + 0x68], 0x211d2716
mov dword [esp + 0x6c], 0x2d19231c
mov dword [esp + 0x70], 0x29172f12
mov dword [esp + 0x74], 0x35112b1a
mov dword [esp + 0x78], 0x31d2370b
mov dword [esp + 0x7c], 0x3dde33db
mov dword [esp + 0x80], 0x393e3fde
mov byte [esp + 0x84], 0
mov eax, 0x65ffed41
nop
nop
movzx ecx, byte [esp + eax - 0x65ffecf9]
xor ecx, eax
mov edx, ecx
and edx, 0x3a
xor ecx, 0xba
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax - 0x65ffecf9], cl
inc eax
cmp eax, 0x65ffed7e
jne 0x422340
mov dword [esp], 0xf779f95c
mov dword [esp + 4], 0xf341f578
mov dword [esp + 8], 0xcf6ff17e
mov dword [esp + 0xc], 0xcb77cd77
mov dword [esp + 0x10], 0xc77ac96c
mov dword [esp + 0x14], 0xc378c579
mov dword [esp + 0x18], 0xdf53c161
mov dword [esp + 0x1c], 0xdb56dd68
mov dword [esp + 0x20], 0xd763d97c
mov dword [esp + 0x24], 0xd354d567
mov dword [esp + 0x28], 0x2f93d1a5
mov dword [esp + 0x2c], 0x2ba62da4
mov dword [esp + 0x30], 0x27942995
mov dword [esp + 0x34], 0x239b25ab
mov dword [esp + 0x38], 0x3f8c2193
mov dword [esp + 0x3c], 0x3b4d3d4b
mov dword [esp + 0x40], 0x3736394f
mov eax, 0x56
mov ebp, 9
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x56]
lea ecx, [edx + edx]
not ecx
add ecx, edx
mov edi, eax
or edi, edx
not edx
and edx, ecx
mov esi, eax
and esi, 0xe3
mov ecx, ebp
and ecx, 0x1c
or ecx, esi
xor ecx, edx
xor ecx, 0xe3
and ecx, edi
add cl, 0x52
mov byte [esp + eax - 0x56], cl
inc eax
dec ebp
cmp eax, 0x9a
jne 0x422400
mov esi, dword [esp + 0xa4]
mov ecx, dword [esi + 4]
movzx edx, word [ecx]
mov ebp, dword [esp + 0x44]
mov eax, ebp
test dx, dx
je 0x422471
add ecx, 2
mov eax, ebp
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x422460
mov word [eax], 0
movzx ecx, word [esp]
test cx, cx
je 0x4224a1
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 0x422490
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x4224d1
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 0x4224c0
mov word [eax], 0
movzx ecx, word [esp + 0x48]
test cx, cx
je 0x422501
lea edx, [esp + 0x4a]
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 0x4224f0
mov word [eax], 0
mov eax, dword [esp + 0xa8]
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 0x422520
mov edx, dword [esi]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x422540
mov edi, dword [esi + 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 0x422560
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0xb
test eax, eax
jns 0x422584
mov eax, 0xffffffff
jmp 0x42258d
add ecx, edx
lea eax, [ecx*2 + 0x16]
push eax
call fcn.004086e0
add esp, 4
mov edi, eax
mov dword [esp], 0x7313711f
mov dword [esp + 4], 0x6ffa6df8
mov dword [esp + 8], 0x6be669f5
mov dword [esp + 0xc], 0x673165f7
mov word [esp + 0x10], 0x6160
mov dword [esp + 0x12], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x6c
xor cl, byte [esp + eax]
add cl, 0xe4
mov byte [esp + eax], cl
inc eax
cmp eax, 0x16
jne 0x4225d0
movzx ecx, word [esp]
mov eax, edi
test cx, cx
je 0x422611
lea edx, [esp + 2]
mov eax, edi
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 0x422600
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x422641
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 0x422630
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [esi]
movzx edx, word [ecx]
test dx, dx
je 0x422671
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 0x422660
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [esi + 8]
movzx edx, word [ecx]
test dx, dx
je 0x4226a1
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 0x422690
mov word [eax], 0
mov dword [esp], 0x939291aa
mov dword [esp + 4], 0
mov eax, 0x5c
mov ecx, 0x8162fea3
nop
movzx esi, byte [esp + eax - 0x5c]
mov edx, eax
xor edx, ecx
and edx, esi
xor edx, ecx
not edx
mov esi, edx
and esi, 0x33
or edx, 0x33
add edx, esi
inc dl
mov byte [esp + eax - 0x5c], dl
inc eax
dec ecx
cmp eax, 0x64
jne 0x4226c0
mov eax, esp
push 0
push 1
push 0
push eax
push ebp
push edi
push dword [esp + 0xb4]
call fcn.004229d0
add esp, 0x1c
mov ebx, eax
jmp dword [0x446d68]