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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x90
mov eax, dword [esp + 0xac]
mov edi, dword [esp + 0xa8]
mov ecx, dword [eax + 4]
mov eax, 0xfffffffe
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x4240c0
mov ecx, eax
and ecx, 0x42
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + edx + 2], 0
lea edx, [edx + 2]
jne 0x4240e0
sar eax, 1
xor eax, 0x21
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0x1e
test eax, eax
jns 0x424105
mov eax, 0xffffffff
jmp 0x42410e
add ecx, edx
lea eax, [ecx*2 + 0x3c]
push eax
call fcn.0040ce10
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x50], 0x4fdb49ea
mov dword [esp + 0x54], 0x43e74ddb
mov dword [esp + 0x58], 0x470141d6
mov dword [esp + 0x5c], 0xbb2845d7
mov dword [esp + 0x60], 0xbf1bb92c
mov dword [esp + 0x64], 0xb326bd34
mov dword [esp + 0x68], 0xb712b109
mov dword [esp + 0x6c], 0xabfeb5f9
mov dword [esp + 0x70], 0xafe7a9fe
mov dword [esp + 0x74], 0xa3ebadf8
mov dword [esp + 0x78], 0xa7eda1ea
mov dword [esp + 0x7c], 0x9bd3a5f2
mov dword [esp + 0x80], 0x9f3299cd
mov dword [esp + 0x84], 0x93369d05
mov dword [esp + 0x88], 0x97969136
mov word [esp + 0x8c], 0
mov edx, 0x72
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx - 0x22]
mov ebx, eax
mov esi, eax
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xfd
mul cl
mov ecx, eax
mov eax, esi
add cl, al
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edx
add al, 0xc6
mov byte [esp + edx - 0x22], al
inc edx
cmp edx, 0xb0
jne 0x4241b0
mov dword [esp + 4], 0x69ff6bd8
mov dword [esp + 8], 0x6dff6ffc
mov dword [esp + 0xc], 0x51f553fa
mov dword [esp + 0x10], 0x55fd57f9
mov dword [esp + 0x14], 0x59fe5be8
mov dword [esp + 0x18], 0x5df45ff3
mov dword [esp + 0x1c], 0x41d943fb
mov dword [esp + 0x20], 0x45d247ec
mov dword [esp + 0x24], 0x49d94bf8
mov dword [esp + 0x28], 0x4dd04fd9
mov dword [esp + 0x2c], 0x3199339f
mov dword [esp + 0x30], 0x35a237a8
mov dword [esp + 0x34], 0x39a83b9f
mov dword [esp + 0x38], 0x3d913fad
mov dword [esp + 0x3c], 0x21b023ad
mov dword [esp + 0x40], 0x25cb27cd
mov dword [esp + 0x44], 0x292a2bc9
mov word [esp + 0x48], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 4]
mov edx, eax
and edx, 0x15
mov esi, eax
and esi, 2
mov ebp, esi
xor ebp, 2
imul ebp, edx
or edx, 2
imul edx, esi
mov ebx, eax
xor ebx, 0x42e53897
add ebx, ebp
add ebx, edx
xor ebx, ecx
mov ecx, ebx
xor ecx, 0x73
mov edx, ebx
or edx, 0xc
and edx, ecx
xor ebx, 0xc
lea ecx, [ebx + edx*2]
inc cl
mov byte [esp + eax + 4], cl
inc eax
cmp eax, 0x46
jne 0x424290
mov ebx, dword [esp + 0xac]
mov ecx, dword [ebx + 4]
movzx edx, word [ecx]
mov esi, dword [esp]
mov eax, esi
test dx, dx
je 0x424311
add ecx, 2
mov eax, esi
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 0x424300
mov word [eax], 0
movzx ecx, word [esp + 4]
test cx, cx
je 0x424341
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 0x424330
mov word [eax], 0
movzx ecx, word [edi]
test cx, cx
je 0x424371
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 0x424360
mov word [eax], 0
movzx ecx, word [esp + 0x50]
test cx, cx
je 0x4243a1
lea edx, [esp + 0x52]
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 0x424390
mov word [eax], 0
mov eax, dword [esp + 0xb0]
mov esi, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x4243c0
mov edx, dword [ebx]
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 0x4243e0
mov edi, dword [ebx + 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 0x424400
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0xb
test eax, eax
jns 0x424424
mov eax, 0xffffffff
jmp 0x42442d
add ecx, edx
lea eax, [ecx*2 + 0x16]
push eax
call fcn.0040ce10
add esp, 4
mov dword [esp + 0x4c], eax
mov dword [esp + 4], 0x23832177
mov dword [esp + 8], 0x279a2598
mov dword [esp + 0xc], 0x3b8e399d
mov dword [esp + 0x10], 0x3f413d8f
mov word [esp + 0x14], 0x3130
mov dword [esp + 0x16], 0
mov word [esp + 0x1a], 0
mov eax, 0x88
mov ecx, 0xd6469b77
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax - 0x84]
mov edx, ebx
not edx
lea edi, [ebx*2 + 1]
lea ebp, [edx + ebx*2]
inc ebp
mov edx, eax
or edx, ebx
sub ebx, edi
and ebx, 0x5d4e2deb
and ebp, 0xa2b1d214
or ebp, ebx
lea edi, [ebp*2]
xor ebp, 0x5d4e2deb
xor edi, 0x4563a429
add edi, ebp
or edi, ecx
mov ebx, edi
not ebx
or ebx, edx
add ebx, edi
add bl, 0x59
mov byte [esp + eax - 0x84], bl
inc eax
dec ecx
cmp eax, 0xa0
jne 0x424480
movzx ecx, word [esp + 4]
mov ebp, dword [esp + 0x4c]
mov eax, ebp
test cx, cx
je 0x424511
lea edx, [esp + 6]
mov eax, ebp
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 0x424500
mov word [eax], 0
movzx ecx, word [esi]
test cx, cx
mov edi, dword [esp + 0xac]
je 0x424541
add esi, 2
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x424530
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [edi]
movzx edx, word [ecx]
test dx, dx
je 0x424571
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 0x424560
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [edi + 8]
movzx edx, word [ecx]
test dx, dx
je 0x4245a1
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 0x424590
mov word [eax], 0
mov dword [esp + 4], 0x939291fa
mov word [esp + 8], 0
mov byte [esp + 0xa], 0
mov eax, 0x39cf0624
nop
movzx ecx, byte [esp + eax - 0x39cf0620]
mov edx, eax
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
mov edx, ecx
and edx, 0x18c40149
mov esi, ecx
and esi, 2
mov edi, esi
xor edi, 2
imul edi, edx
or edx, 2
imul edx, esi
add edx, edi
xor ecx, 0xdef4e14b
mov esi, edx
and esi, ecx
xor ecx, edx
lea ecx, [ecx + esi*2]
inc cl
mov byte [esp + eax - 0x39cf0620], cl
inc eax
cmp eax, 0x39cf062b
jne 0x4245c0
lea eax, [esp + 4]
push 0
push 1
push 0
push eax
mov esi, dword [esp + 0x10]
push esi
push ebp
push dword [esp + 0xbc]
call fcn.004249b0
add esp, 0x1c
mov ebx, eax
jmp dword [0x44aadc]