Function at 0x422c40
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 edi, dword [esp + 0xa4]
mov ecx, dword [ebp + 4]
mov eax, 0xfffffffe
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x422c60
mov ecx, 0xfffffffe
cmp word [edi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x422c70
sar eax, 1
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x3f
test edx, edx
jns 0x422c90
mov eax, 0xffffffff
jmp 0x422c99
add eax, ecx
lea eax, [eax*2 + 0x7e]
push eax
call fcn.00408730
add esp, 4
mov esi, eax
mov dword [esp + 0x4c], 0x91099f32
mov dword [esp + 0x50], 0x95359305
mov dword [esp + 0x54], 0x89d39706
mov dword [esp + 0x58], 0x8d148b19
mov dword [esp + 0x5c], 0x81298f18
mov dword [esp + 0x60], 0x85168308
mov dword [esp + 0x64], 0xf922873f
mov dword [esp + 0x68], 0xfdaefbb7
mov dword [esp + 0x6c], 0xf1b5ffae
mov dword [esp + 0x70], 0xf5b9f3a4
mov dword [esp + 0x74], 0xe9bff7a2
mov dword [esp + 0x78], 0xeda1ebba
mov dword [esp + 0x7c], 0xe142efbb
mov dword [esp + 0x80], 0xe546e37b
mov dword [esp + 0x84], 0xd9e6e746
mov word [esp + 0x88], 0
mov byte [esp + 0x8a], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x4c]
lea edx, [eax - 0x559577db]
and edx, ecx
add edx, edx
lea ebx, [eax + ecx]
add ebx, 0xaa6a8825
mov ecx, ebx
sub ecx, edx
and ebx, 1
or ecx, 1
add ecx, ebx
add cl, 0x46
mov byte [esp + eax + 0x4c], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x3f
jb 0x422d40
mov dword [esp + 4], 0xc15bc760
mov dword [esp + 8], 0xcd53c35c
mov dword [esp + 0xc], 0xc96dcf5e
mov dword [esp + 0x10], 0xb565cb61
mov dword [esp + 0x14], 0xb11ab710
mov dword [esp + 0x18], 0xbd1cb31f
mov dword [esp + 0x1c], 0xb921bf1f
mov dword [esp + 0x20], 0xa526bb2c
mov dword [esp + 0x24], 0xa131a700
mov dword [esp + 0x28], 0xad38a331
mov dword [esp + 0x2c], 0xa901af7b
mov dword [esp + 0x30], 0x9536ab30
mov dword [esp + 0x34], 0x9100973b
mov dword [esp + 0x38], 0x9d39930d
mov dword [esp + 0x3c], 0x99089f0d
mov dword [esp + 0x40], 0x854f9b4d
mov dword [esp + 0x44], 0x81868751
mov dword [esp + 0x48], 0
mov eax, 0x1412c8b1
mov ecx, 0x6bed374e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax - 0x1412c8ad]
mov edx, ebx
xor edx, eax
or edx, ecx
add dl, dl
add dl, bl
movzx edx, dl
add edx, eax
add dl, 0x8d
mov byte [esp + eax - 0x1412c8ad], dl
inc eax
dec ecx
cmp eax, 0x1412c8f9
jne 0x422e20
mov ecx, dword [ebp + 4]
movzx edx, word [ecx]
mov eax, esi
test dx, dx
je 0x422e71
add ecx, 2
mov eax, esi
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x422e60
mov word [eax], 0
movzx ecx, word [esp + 4]
test cx, cx
je 0x422ea1
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 0x422e90
mov word [eax], 0
movzx ecx, word [edi]
test cx, cx
je 0x422ed1
add edi, 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 [edi]
add edi, 2
test cx, cx
jne 0x422ec0
mov word [eax], 0
movzx ecx, word [esp + 0x4c]
test cx, cx
je 0x422f01
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 0x422ef0
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 0x422f20
sar eax, 1
mov edx, dword [ebp]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x422f40
sar ecx, 1
lea edi, [eax + ecx]
lea edx, [eax + ecx]
add edx, 0xa
lea ecx, [edi*2 + 0x14]
and ecx, 2
mov edi, dword [ebp + 8]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x422f70
mov dword [esp], esi
xor edx, 1
add ecx, edx
sar eax, 1
mov esi, ebp
add eax, ecx
jns 0x422f92
mov eax, 0xffffffff
jmp 0x422f94
add eax, eax
push eax
call fcn.00408730
add esp, 4
mov edi, eax
mov dword [esp + 4], 0x23c321d7
mov dword [esp + 8], 0x27ba25b8
mov dword [esp + 0xc], 0xdb4ed93d
mov dword [esp + 0x10], 0xdf01dd4f
mov dword [esp + 0x14], 0xd1d0
mov byte [esp + 0x18], 0
xor eax, eax
nop
nop
movzx edx, byte [esp + eax + 4]
lea ecx, [eax + 0x33d251ab]
mov ebp, ecx
and ebp, 0x12420078
xor ecx, 0xd66e8878
lea ebp, [ecx + ebp*2]
mov ecx, 0xaa
sub ecx, ebp
add ebp, 0x55
xor ecx, ebp
and ecx, edx
xor ecx, ebp
add cl, 0xa8
mov byte [esp + eax + 4], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x15
jb 0x422fd0
movzx ecx, word [esp + 4]
mov eax, edi
test cx, cx
je 0x423041
lea edx, [esp + 6]
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 0x423030
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x423071
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 0x423060
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [esi]
movzx edx, word [ecx]
test dx, dx
je 0x4230a1
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 0x423090
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [esi + 8]
movzx edx, word [ecx]
test dx, dx
je 0x4230d3
add ecx, 2
mov esi, dword [esp]
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x4230c0
jmp 0x4230d6
mov esi, dword [esp]
mov word [eax], 0
mov dword [esp + 4], 0x2322215a
mov word [esp + 8], 0
xor eax, eax
mov ecx, 0x77
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
and ebx, 0x42
mov edx, eax
and edx, 5
or edx, ebx
xor dl, byte [esp + eax + 4]
xor dl, 0x4a
add dl, 0xd8
mov byte [esp + eax + 4], dl
inc eax
dec ecx
cmp eax, 6
jne 0x423100
lea eax, [esp + 4]
push 0
push 1
push 0
push eax
push esi
push edi
push dword [esp + 0xb8]
call fcn.004233d0
add esp, 0x1c
mov ebx, eax
jmp dword [0x446f8c]