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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x84
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x9c]
mov ecx, dword [eax + 4]
mov eax, 0xfffffffe
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x422840
mov ecx, 0xfffffffe
cmp word [ebx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x422850
sar eax, 1
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x3f
test edx, edx
jns 0x422870
mov eax, 0xffffffff
jmp 0x422879
add eax, ecx
lea eax, [eax*2 + 0x7e]
push eax
call fcn.004083e0
add esp, 4
mov esi, eax
mov dword [esp + 0x48], 0xb931bb66
mov dword [esp + 0x4c], 0xbd25bf2d
mov dword [esp + 0x50], 0xb177b32a
mov dword [esp + 0x54], 0xb524b721
mov dword [esp + 0x58], 0xa931ab20
mov dword [esp + 0x5c], 0xad3aaf20
mov dword [esp + 0x60], 0xa146a353
mov dword [esp + 0x64], 0xa572a763
mov dword [esp + 0x68], 0x59955b72
mov dword [esp + 0x6c], 0x5d915f8c
mov dword [esp + 0x70], 0x519b5396
mov dword [esp + 0x74], 0x55995786
mov dword [esp + 0x78], 0x49a64b9f
mov dword [esp + 0x7c], 0x4daa4fd7
mov dword [esp + 0x80], 0x414243aa
mov ebp, 0x6f07265f
mov edi, 0xf8d9a0
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ebp - 0x6f072617]
mov ecx, edi
and ecx, 0xb89037
mov eax, ebp
and eax, 0x4d0722c8
or eax, ecx
xor eax, edx
xor eax, 0xa2b89437
add eax, 0xa79b5de5
mov ecx, eax
xor ecx, 0x3e
and eax, 0x3e
lea eax, [ecx + eax*2]
add al, 2
mov byte [esp + ebp - 0x6f072617], al
inc ebp
dec edi
cmp ebp, 0x6f07269b
jne 0x422910
mov dword [esp], 0xff909e4
mov dword [esp + 4], 0x3f10df8
mov dword [esp + 8], 0x7e701f6
mov dword [esp + 0xc], 0x1bff05ff
mov dword [esp + 0x10], 0x1ffa19f4
mov dword [esp + 0x14], 0x13e81df9
mov dword [esp + 0x18], 0x17e311f1
mov dword [esp + 0x1c], 0x2bde15e8
mov dword [esp + 0x20], 0x2fd329c4
mov dword [esp + 0x24], 0x23ac2ddf
mov dword [esp + 0x28], 0x27c3211d
mov dword [esp + 0x2c], 0x3bce25ac
mov dword [esp + 0x30], 0x3fcc39dd
mov dword [esp + 0x34], 0x33cb3dcb
mov dword [esp + 0x38], 0x37c431c3
mov dword [esp + 0x3c], 0xcbf5350b
mov dword [esp + 0x40], 0xcfcec9f7
mov byte [esp + 0x46], 0
mov word [esp + 0x44], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x42
xor cl, byte [esp + eax]
add cl, 0xb6
mov byte [esp + eax], cl
inc eax
cmp eax, 0x47
jne 0x4229f0
mov edi, dword [esp + 0xa0]
mov ecx, dword [edi + 4]
movzx edx, word [ecx]
mov eax, esi
test dx, dx
je 0x422a31
add ecx, 2
mov eax, esi
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x422a20
mov word [eax], 0
movzx ecx, word [esp]
test cx, cx
je 0x422a61
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 0x422a50
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x422a91
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 0x422a80
mov word [eax], 0
movzx ecx, word [esp + 0x48]
test cx, cx
je 0x422ac1
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 0x422ab0
mov word [eax], 0
mov eax, dword [esp + 0xa4]
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 0x422ae0
sar eax, 1
mov edx, dword [edi]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x422b00
mov edi, dword [edi + 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 0x422b20
sar ecx, 1
sar edx, 1
add eax, ecx
lea ecx, [edx + eax]
add ecx, 0xb
test ecx, ecx
jns 0x422b42
mov eax, 0xffffffff
jmp 0x422b4b
add eax, edx
lea eax, [eax*2 + 0x16]
push eax
call fcn.004083e0
add esp, 4
mov edi, eax
mov dword [esp], 0x1fbf19c3
mov dword [esp + 4], 0xe34e1db0
mov dword [esp + 8], 0xe752e145
mov dword [esp + 0xc], 0xeb19e553
mov dword [esp + 0x10], 0xe9e8
mov eax, 0x7a
mov ecx, 0x85
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x7a]
mov ebp, eax
or ebp, edx
not edx
or edx, ecx
and edx, ebp
add dl, 0x9e
mov byte [esp + eax - 0x7a], dl
inc eax
dec ecx
cmp eax, 0x8e
jne 0x422b90
movzx ecx, word [esp]
mov eax, edi
test cx, cx
je 0x422bd1
lea edx, [esp + 2]
mov eax, edi
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x422bc0
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
mov ebp, dword [esp + 0xa0]
je 0x422c01
add ebx, 2
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 0x422bf0
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [ebp]
movzx edx, word [ecx]
test dx, dx
je 0x422c31
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 0x422c20
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [ebp + 8]
movzx edx, word [ecx]
test dx, dx
je 0x422c61
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 0x422c50
mov word [eax], 0
mov dword [esp], 0xcfcec916
mov word [esp + 4], 0
mov byte [esp + 6], 0
mov eax, 0xe8024264
mov ecx, 0xfdbd9b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x17fdbd9c]
mov ebp, ecx
and ebp, 0x903c12
mov ebx, eax
and ebx, 0xc800024d
sub ebx, ebp
mov ebp, edx
and ebp, ebx
add ebp, ebp
sub ebx, ebp
add bl, dl
add bl, 6
mov byte [esp + eax + 0x17fdbd9c], bl
inc eax
dec ecx
cmp eax, 0xe802426b
jne 0x422c90
mov eax, esp
push 0
push 1
push 0
push eax
push esi
push edi
push dword [esp + 0xb0]
call fcn.00423110
add esp, 0x1c
mov ebx, eax
jmp dword [0x446df4]