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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x60
mov eax, dword [esp + 0x78]
mov edi, dword [eax + 4]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
cmp word [edi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x4218e0
mov eax, dword [esp + 0x7c]
mov esi, dword [eax + 4]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
mov eax, edx
cmp word [esi + edx + 2], 0
lea edx, [edx + 2]
jne 0x421900
sar ecx, 1
sar edx, 1
lea eax, [ecx + edx]
add eax, 0x1b
test eax, eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], edx
jns 0x42192a
mov eax, 0xffffffff
jmp 0x421934
lea eax, [ecx + edx]
lea eax, [eax*2 + 0x36]
push eax
call fcn.0040c8d0
add esp, 4
mov dword [esp + 0xc], 0xb9c6bbe8
mov dword [esp + 0x10], 0xbddbbf29
mov dword [esp + 0x14], 0xb12eb3db
mov dword [esp + 0x18], 0xb5cdb790
mov dword [esp + 0x1c], 0xa93eab3c
mov dword [esp + 0x20], 0xad3caf33
mov dword [esp + 0x24], 0xa13da339
mov dword [esp + 0x28], 0xa534a731
mov dword [esp + 0x2c], 0xd9afdb84
mov dword [esp + 0x30], 0xdd4adf43
mov dword [esp + 0x34], 0xd14dd348
mov dword [esp + 0x38], 0xd54fd742
mov dword [esp + 0x3c], 0xc9a6cb41
mov dword [esp + 0x40], 0xcfc8
mov ebp, 0x9f
mov ecx, 0x60
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ebp - 0x93]
mov ebx, ecx
or ebx, edx
not edx
or edx, ebp
and edx, ebx
mov bl, 0xe4
sub bl, dl
mov byte [esp + ebp - 0x93], bl
inc ebp
dec ecx
cmp ebp, 0xd7
jne 0x4219c0
movzx ecx, word [edi]
mov ebx, eax
test cx, cx
je 0x421a11
add edi, 2
mov ebx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x421a00
mov word [ebx], 0
movzx ecx, word [esp + 0xc]
test cx, cx
je 0x421a41
lea edx, [esp + 0xe]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421a30
mov word [ebx], 0
movzx ecx, word [esi]
test cx, cx
je 0x421a71
add esi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x421a60
mov dword [esp + 4], eax
mov word [ebx], 0
mov eax, dword [esp + 0x78]
mov ebx, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x421a90
mov ecx, dword [esp + 0x78]
mov ebp, dword [ecx + 8]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebp + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x421ab0
mov edx, dword [esp + 0x7c]
mov edi, dword [edx]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + edx + 2], 0
lea edx, [edx + 2]
jne 0x421ad0
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0x13
test eax, eax
jns 0x421af4
mov eax, 0xffffffff
jmp 0x421afd
add ecx, edx
lea eax, [ecx*2 + 0x26]
push eax
call fcn.0040c8d0
add esp, 4
movzx ecx, word [ebx]
mov dword [esp + 8], eax
mov esi, eax
test cx, cx
je 0x421b31
add ebx, 2
mov esi, dword [esp + 8]
nop
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x421b20
mov word [esi], 0x2f
mov dword [esp + 0xc], 0x571b493b
mov dword [esp + 0x10], 0x53ee55ec
mov dword [esp + 0x14], 0x5fec51fd
mov dword [esp + 0x18], 0x5bf35de3
mov dword [esp + 0x1c], 0xa71459eb
mov dword [esp + 0x20], 0xa3d1a51b
mov word [esp + 0x24], 0xa1a0
mov dword [esp + 0x26], 0
mov byte [esp + 0x2a], 0
mov eax, 0x8aee93ee
mov ecx, 0x11
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x75116c1e]
mov ebx, ecx
xor ebx, eax
and ebx, edx
xor ebx, eax
mov edx, ebx
or edx, 0x59
add edx, ebx
not ebx
or ebx, 0x59
add edx, ebx
add dl, 2
mov byte [esp + eax + 0x75116c1e], dl
inc eax
dec ecx
cmp eax, 0x8aee940d
jne 0x421b90
add esi, 2
movzx eax, word [ebp]
test ax, ax
je 0x421be2
add ebp, 2
mov word [esi], ax
add esi, 2
movzx eax, word [ebp]
add ebp, 2
test ax, ax
jne 0x421bd0
mov word [esi], 0
movzx eax, word [esp + 0xc]
test ax, ax
je 0x421c13
lea ecx, [esp + 0xe]
mov ebp, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x421c00
jmp 0x421c17
mov ebp, dword [esp + 4]
mov word [esi], 0
movzx eax, word [edi]
test ax, ax
je 0x421c41
add edi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [edi]
add edi, 2
test ax, ax
jne 0x421c30
mov word [esi], 0
mov dword [esp + 0xc], 0x171619ce
mov dword [esp + 0x10], 0
mov eax, 0xe5c411c6
mov ecx, 0x1a3bee39
movzx edi, byte [esp + eax + 0x1a3bee46]
mov ebx, ecx
or ebx, edi
lea edx, [edi + edi]
not edx
add edx, edi
or edx, eax
and edx, ebx
neg edx
mov edi, edx
and edi, 1
xor edx, 1
add edx, 0x20
or edx, edi
add edx, edi
mov byte [esp + eax + 0x1a3bee46], dl
inc eax
dec ecx
cmp eax, 0xe5c411ce
jne 0x421c60
lea eax, [esp + 0xc]
push 0
push 0
push 0xc00000
push eax
push ebp
push dword [esp + 0x1c]
push dword [esp + 0x8c]
call fcn.00425270
add esp, 0x1c
mov byte [esp + 3], al
jmp dword [0x44b65c]