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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x8c
mov eax, dword [esp + 0xa8]
mov ebx, dword [esp + 0xa4]
mov ecx, dword [eax + 4]
mov eax, 0xfffffffe
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x421f30
mov ecx, 0xfffffffe
cmp word [ebx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x421f40
sar eax, 1
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x3f
test edx, edx
jns 0x421f60
mov eax, 0xffffffff
jmp 0x421f69
add eax, ecx
lea eax, [eax*2 + 0x7e]
push eax
call fcn.00408380
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x4c], 0x61e96702
mov dword [esp + 0x50], 0x7d1d63ed
mov dword [esp + 0x54], 0x79237f0e
mov dword [esp + 0x58], 0x750c7b09
mov dword [esp + 0x5c], 0x710977f8
mov dword [esp + 0x60], 0x8dfe73f8
mov dword [esp + 0x64], 0x89f28fd7
mov dword [esp + 0x68], 0x85c68bcf
mov dword [esp + 0x6c], 0x81cd87b6
mov dword [esp + 0x70], 0x9dc983cc
mov dword [esp + 0x74], 0x99d79fd2
mov dword [esp + 0x78], 0x95d19baa
mov dword [esp + 0x7c], 0x91f297db
mov dword [esp + 0x80], 0xadee93eb
mov dword [esp + 0x84], 0xa9aeafce
mov dword [esp + 0x88], 0
mov esi, 0x29
mov ebp, 0x16
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + esi + 0x23]
lea edx, [esi - 0x6e0a4ac0]
mov ecx, ebp
and ecx, 0x30
mov eax, esi
and eax, 0x30
xor eax, 0x42084830
and edx, 0x905080cf
or edx, ecx
or edx, eax
xor edx, edi
mov eax, edx
not eax
and eax, 0xd
and edx, 0xf2
xor edx, 0x30
sub edx, eax
mov byte [esp + esi + 0x23], dl
inc esi
dec ebp
cmp esi, 0x69
jne 0x422010
mov dword [esp + 4], 0x19a71bb8
mov dword [esp + 8], 0xe557e7a4
mov dword [esp + 0xc], 0xe14de35a
mov dword [esp + 0x10], 0xed45ef49
mov dword [esp + 0x14], 0xe946eb48
mov dword [esp + 0x18], 0xf55cf743
mov dword [esp + 0x1c], 0xf149f35b
mov dword [esp + 0x20], 0xfd42ff44
mov dword [esp + 0x24], 0xf949fb58
mov dword [esp + 0x28], 0xc540c749
mov dword [esp + 0x2c], 0xc169c337
mov dword [esp + 0x30], 0xcd72cf78
mov dword [esp + 0x34], 0xc978cb67
mov dword [esp + 0x38], 0xd561d775
mov dword [esp + 0x3c], 0xd160d365
mov dword [esp + 0x40], 0xdd2bdf25
mov dword [esp + 0x44], 0xd9dadb29
mov word [esp + 0x48], 0
mov eax, 0x3b
mov ecx, 0x84
nop
nop
nop
nop
mov esi, ecx
and esi, 0xd2
mov edx, eax
and edx, 0x2d
or edx, esi
xor dl, byte [esp + eax - 0x37]
xor dl, 0xd2
add dl, 0x99
mov byte [esp + eax - 0x37], dl
inc eax
dec ecx
cmp eax, 0x81
jne 0x4220f0
mov esi, dword [esp + 0xa8]
mov ecx, dword [esi + 4]
movzx edx, word [ecx]
mov ebp, dword [esp]
mov eax, ebp
test dx, dx
je 0x422151
add ecx, 2
mov eax, ebp
nop
nop
nop
nop
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 0x422140
mov word [eax], 0
movzx ecx, word [esp + 4]
test cx, cx
je 0x422181
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 0x422170
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x4221b1
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 0x4221a0
mov word [eax], 0
movzx ecx, word [esp + 0x4c]
test cx, cx
je 0x4221e1
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 0x4221d0
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 0x422200
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 0x422220
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 0x422240
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0xb
test eax, eax
jns 0x422264
mov eax, 0xffffffff
jmp 0x42226d
add ecx, edx
lea eax, [ecx*2 + 0x16]
push eax
call fcn.00408380
add esp, 4
mov edi, eax
mov dword [esp + 4], 0x99f59bc5
mov dword [esp + 8], 0xa5d2a7ec
mov dword [esp + 0xc], 0xa1dea3cf
mov dword [esp + 0x10], 0xad9fafdd
mov dword [esp + 0x14], 0xabac
mov byte [esp + 0x18], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
xor esi, 0x65
mov edx, eax
and edx, 0x34
sub edx, esi
xor dl, byte [esp + ecx + 4]
add dl, 0xf9
mov byte [esp + ecx + 4], dl
inc ecx
add eax, 2
cmp ecx, 0x15
jne 0x4222b0
movzx ecx, word [esp + 4]
mov eax, edi
test cx, cx
je 0x422301
lea edx, [esp + 6]
mov eax, edi
nop
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 0x4222f0
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
mov esi, dword [esp + 0xa8]
je 0x422331
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 0x422320
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [esi]
movzx edx, word [ecx]
test dx, dx
je 0x422361
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 0x422350
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [esi + 8]
movzx edx, word [ecx]
test dx, dx
je 0x422391
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 0x422380
mov word [eax], 0
mov dword [esp + 4], 0x9392917a
mov eax, 0x2dd6e64
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x2dd6e60]
lea edx, [eax - 0x2dd6e00]
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
mov edx, ecx
xor edx, 0xe5327f5
and ecx, 0x8c480a
add ecx, ecx
sub ecx, edx
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov byte [esp + eax - 0x2dd6e60], cl
inc eax
cmp eax, 0x2dd6e68
jne 0x4223b0
lea eax, [esp + 4]
push 0
push 1
push 0
push eax
push ebp
push edi
push dword [esp + 0xb8]
call fcn.00422700
add esp, 0x1c
mov ebx, eax
jmp dword [0x447160]