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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x8c
mov edi, dword [esp + 0xac]
mov eax, dword [esp + 0xa8]
mov ebx, dword [esp + 0xa4]
mov ecx, dword [eax + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x421550
mov ecx, 0xfffffffe
cmp word [ebx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x421560
sar eax, 1
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x3f
test edx, edx
jns 0x421580
mov eax, 0xffffffff
jmp 0x421589
add eax, ecx
lea eax, [eax*2 + 0x7e]
push eax
call fcn.00408250
add esp, 4
mov esi, eax
mov dword [esp + 0x4c], 0x71c97fd2
mov dword [esp + 0x50], 0x75d573c5
mov dword [esp + 0x54], 0x49b377c6
mov dword [esp + 0x58], 0x4df44bf9
mov dword [esp + 0x5c], 0x41e94ff8
mov dword [esp + 0x60], 0x45f643c8
mov dword [esp + 0x64], 0x59e2479f
mov dword [esp + 0x68], 0x5dae5b97
mov dword [esp + 0x6c], 0x51955fae
mov dword [esp + 0x70], 0x559953a4
mov dword [esp + 0x74], 0x299f57a2
mov dword [esp + 0x78], 0x2de12bda
mov dword [esp + 0x7c], 0x21822fdb
mov dword [esp + 0x80], 0x2586239b
mov dword [esp + 0x84], 0x39262786
mov word [esp + 0x88], 0
mov eax, 0x95
mov ecx, 0x6a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + eax - 0x49]
mov edx, ecx
xor edx, eax
and edx, ebp
xor edx, eax
add dl, 0x17
mov byte [esp + eax - 0x49], dl
inc eax
dec ecx
cmp eax, 0xd3
jne 0x421630
mov dword [esp + 4], 0x61eb6700
mov dword [esp + 8], 0x7d1363ec
mov dword [esp + 0xc], 0x791d7f0e
mov dword [esp + 0x10], 0x75057b01
mov dword [esp + 0x14], 0x710a7710
mov dword [esp + 0x18], 0x8d0c730f
mov dword [esp + 0x1c], 0x89018fef
mov dword [esp + 0x20], 0x85068bfc
mov dword [esp + 0x24], 0x81f187e0
mov dword [esp + 0x28], 0x9d0883f1
mov dword [esp + 0x2c], 0x99e19fab
mov dword [esp + 0x30], 0x95169b10
mov dword [esp + 0x34], 0x91e097eb
mov dword [esp + 0x38], 0xade9931d
mov dword [esp + 0x3c], 0xa9d8afdd
mov dword [esp + 0x40], 0xa59fab9d
mov dword [esp + 0x44], 0xa1a6a791
mov byte [esp + 0x4a], 0
mov word [esp + 0x48], 0
xor eax, eax
mov cl, 0x16
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 4]
xor dl, cl
mov ch, 0x72
sub ch, dl
mov byte [esp + eax + 4], ch
inc eax
dec cl
cmp eax, 0x47
jne 0x4216f0
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + 4]
movzx edx, word [ecx]
mov eax, esi
test dx, dx
je 0x421731
add ecx, 2
mov eax, esi
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x421720
mov word [eax], 0
movzx ecx, word [esp + 4]
test cx, cx
je 0x421761
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 0x421750
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x421791
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 0x421780
mov word [eax], 0
movzx ecx, word [esp + 0x4c]
test cx, cx
je 0x4217c1
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 0x4217b0
mov word [eax], 0
mov ebp, dword [edi]
mov edi, 0xfffffffe
nop
nop
nop
cmp word [ebp + edi + 2], 0
lea edi, [edi + 2]
jne 0x4217d0
mov eax, edi
sar eax, 1
xor eax, 9
lea edx, [eax + eax]
and edx, 2
mov ecx, dword [esp + 0xa8]
mov ebx, dword [ecx]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x421800
and edi, 0x12
add eax, edi
mov edi, dword [esp + 0xa8]
mov ebx, dword [edi + 8]
mov edi, 0xfffffffe
nop
cmp word [ebx + edi + 2], 0
lea edi, [edi + 2]
jne 0x421820
xor eax, 1
add eax, edx
sar ecx, 1
sar edi, 1
add ecx, eax
lea eax, [edi + ecx]
inc eax
test eax, eax
jns 0x421845
mov eax, 0xffffffff
jmp 0x42184e
add ecx, edi
lea eax, [ecx*2 + 2]
push eax
call fcn.00408250
add esp, 4
mov dword [esp], eax
mov dword [esp + 4], 0xb95dbb6d
mov dword [esp + 8], 0xbd22bf24
mov dword [esp + 0xc], 0xb126b327
mov dword [esp + 0x10], 0xb567b725
mov dword [esp + 0x14], 0xabb4
mov edx, 0x5f
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + edx - 0x5b]
mov ebx, edi
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0x7d
mul cl
mov ecx, eax
mov eax, edi
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, 0x25
mov byte [esp + edx - 0x5b], al
inc edx
cmp edx, 0x73
jne 0x421890
movzx ecx, word [esp + 4]
mov edi, dword [esp]
mov eax, edi
test cx, cx
je 0x421901
lea edx, [esp + 6]
mov eax, edi
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 [edx]
add edx, 2
test cx, cx
jne 0x4218f0
mov word [eax], 0
movzx ecx, word [ebp]
test cx, cx
je 0x421932
add ebp, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebp]
add ebp, 2
test cx, cx
jne 0x421920
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [esp + 0xa8]
mov ecx, dword [ecx]
movzx edx, word [ecx]
test dx, dx
je 0x421961
add ecx, 2
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x421950
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [esp + 0xa8]
mov ecx, dword [ecx + 8]
movzx edx, word [ecx]
test dx, dx
je 0x421991
add ecx, 2
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x421980
mov word [eax], 0
mov dword [esp + 4], 0x2126277e
mov byte [esp + 8], 0
mov eax, 0x818eeab9
mov ecx, 0x46
nop
nop
nop
movzx edx, byte [esp + eax + 0x7e71154b]
mov ebx, ecx
and ebx, 0x39
mov ebp, eax
and ebp, 0x46
or ebp, ebx
xor ebp, 0x46
and ebp, ecx
mov ebx, eax
or ebx, edx
not edx
or edx, ebp
xor edx, ebx
mov ebx, edx
and ebx, 0x62
xor ebx, 0x46a62
mov ebp, ebx
and ebp, 0x60
mov edi, ebx
and edi, 2
or ebx, 2
imul ebx, edi
xor edi, 2
imul edi, ebp
xor edx, 0x9d
add edx, ebx
add edx, edi
inc dl
mov byte [esp + eax + 0x7e71154b], dl
inc eax
dec ecx
cmp eax, 0x818eeabe
jne 0x4219b0
lea eax, [esp + 4]
push 0
push 1
push 0
push eax
push esi
mov edi, dword [esp + 0x14]
push edi
push dword [esp + 0xb8]
call fcn.00421d10
add esp, 0x1c
mov ebx, eax
jmp dword [0x44712c]