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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa8
mov dword [esp + 0x38], ecx
mov eax, dword [ecx + 0x60]
mov dword [esp + 0x34], eax
mov word [esp + 0x20], 0x4b35
mov byte [esp + 0x22], 0x44
mov dword [esp + 0x23], 0
mov dword [esp + 0x27], 0
mov byte [esp + 0x2b], 0
mov eax, 0xefe0c68a
mov ecx, 0x62
mov edx, 0x7bf8318a
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx - 0x42]
mov edi, eax
or edi, edx
and edi, esi
or esi, edx
not esi
or esi, edi
mov dword [esp + 0x58], esi
mov ebx, dword [esp + 0x58]
add bl, 0xcd
mov byte [esp + ecx - 0x42], bl
dec eax
inc ecx
dec edx
cmp ecx, 0x6e
jne 0x409bf0
mov dword [esp + 0x48], 0xd0d2d6a8
mov dword [esp + 0x4c], 0xc1d4
mov byte [esp + 0x50], 0
mov eax, 0xad28a75d
mov esi, 0x5a514eba
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp], esi
movzx ecx, byte [esp + eax + 0x52d758eb]
mov esi, dword [esp]
and esi, 0x12510208
mov edx, eax
xor edx, 0x8bfcd904
add edx, esi
mov ebx, edx
xor ebx, ecx
lea esi, [ebx + ebx]
not esi
add esi, ebx
and ebx, 0xbe5ae59
and esi, 0x341050a6
or esi, ebx
xor esi, 0x341050a6
mov ebx, edx
not ebx
or ebx, esi
mov esi, ebx
not esi
and ebx, 2
mov edi, esi
and edi, 0xfffffffd
imul edi, ebx
mov ebx, esi
and ebx, 2
or esi, 2
imul esi, ebx
add esi, edi
lea ebx, [edx + edx]
not ebx
add ebx, edx
and ebx, esi
not esi
and esi, edx
not ebx
add ebx, esi
mov esi, dword [esp]
mov edx, ebx
or edx, ecx
xor ebx, ecx
xor ebx, edx
lea ecx, [edx + ebx]
inc ecx
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x58]
lea edx, [ecx*2 - 0x6ce38d58]
neg edx
add edx, ecx
add edx, 0x53
add ecx, 0xc98e3954
and edx, 0xa7
and ecx, 0x58
sub ecx, edx
add cl, 0xac
mov byte [esp + eax + 0x52d758eb], cl
inc eax
add esi, 2
cmp esi, 0x5a514ecc
jne 0x409c40
mov dword [esp + 0x58], 0xa6a47879
mov dword [esp + 0x5c], 0xbaba7470
mov dword [esp + 0x60], 0xbfa2bc69
mov dword [esp + 0x64], 0xb2b7bea3
mov dword [esp + 0x68], 0x6ab7a3a2
mov dword [esp + 0x6c], 0xd4290f0d
mov dword [esp + 0x70], 0xd1cfd9d6
mov dword [esp + 0x74], 0xc62214dc
mov dword [esp + 0x78], 0xd4d9ddd3
mov dword [esp + 0x7c], 0xc4dfd5c1
mov dword [esp + 0x80], 0xd91233c6
mov dword [esp + 0x84], 0xacbcfc3
mov dword [esp + 0x88], 0xdac6dcd0
mov dword [esp + 0x8c], 0xe6f4193f
mov dword [esp + 0x90], 0x2d07e8f1
mov byte [esp + 0x94], 0x40
mov dword [esp + 0x95], 0
mov dword [esp + 0x99], 0
mov word [esp + 0x9d], 0
mov edi, 0xffffffff
xor eax, eax
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x40], edi
mov ecx, ebx
and ecx, 0x2a
mov dword [esp + 8], ecx
mov esi, ebx
and esi, 0x55
mov dword [esp], esi
mov edx, ebx
xor edx, 0x6466de2a
mov dword [esp + 0x10], edx
add edx, ecx
mov ecx, edx
sub ecx, esi
mov dword [esp + 0x18], ecx
movzx ecx, byte [esp + ebx + 0x58]
mov dword [esp + 0x14], ecx
not ecx
mov edi, eax
mov dword [esp + 0x1c], eax
mov eax, esi
sub eax, dword [esp + 0x10]
mov esi, eax
sub esi, dword [esp + 8]
add esi, edi
dec esi
and esi, ecx
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x18]
add esi, ebx
mov dword [esp + 4], esi
and ecx, esi
lea edi, [ecx + ecx]
not edi
add edi, ecx
mov esi, dword [esp + 4]
xor esi, dword [esp + 0x14]
lea ecx, [edx + esi]
add ecx, dword [esp + 0xc]
sub ecx, dword [esp]
add ecx, ebx
inc ecx
mov dword [esp + 0x3c], ecx
lea ecx, [edi + edi]
not ecx
add ecx, edi
or ecx, dword [esp + 0x3c]
sub eax, esi
sub eax, dword [esp + 8]
sub eax, dword [esp + 0xc]
mov esi, dword [esp + 0x1c]
add eax, esi
add eax, 0xfffffffe
and eax, edi
mov edi, dword [esp + 0x40]
not ecx
or ecx, eax
mov eax, dword [esp]
add eax, edi
sub eax, dword [esp + 0x10]
sub eax, dword [esp + 8]
mov esi, dword [esp + 4]
and esi, 0xfd
shr eax, 1
and eax, 1
imul eax, esi
add edx, ebx
sub edx, dword [esp]
mov esi, dword [esp + 4]
or esi, 2
shr edx, 1
and edx, 1
imul edx, esi
add edx, edx
mov esi, ebx
sub esi, edx
add eax, eax
sub esi, eax
mov eax, dword [esp + 0x18]
lea edx, [esi + eax]
dec edx
and edx, dword [esp + 0x14]
lea eax, [edx + edx]
not eax
add eax, edx
not edx
or eax, edx
and eax, ecx
not eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x44]
add al, 0xda
mov byte [esp + ebx + 0x58], al
mov eax, dword [esp + 0x1c]
dec eax
inc ebx
dec edi
cmp ebx, 0x47
jne 0x409dc0
mov edx, dword [ebp + 8]
add edx, dword [esp + 0x34]
movzx eax, byte [esp + 0x58]
mov edi, edx
test al, al
je 0x409f0b
lea ecx, [esp + 0x59]
mov edi, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409f00
mov byte [edi], 0
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx]
test al, al
je 0x409f2b
inc ecx
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409f20
mov byte [edi], 0
movzx eax, byte [esp + 0x48]
test al, al
je 0x409f4b
lea ecx, [esp + 0x49]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409f40
mov byte [edi], 0
mov ecx, dword [ebp + 0x10]
movzx eax, byte [ecx]
test al, al
je 0x409f6b
inc ecx
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409f60
mov byte [edi], 0
movzx eax, byte [esp + 0x20]
test al, al
je 0x409f8b
lea ecx, [esp + 0x21]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409f80
mov byte [edi], 0
sub edi, edx
mov eax, dword [esp + 0x38]
add dword [eax + 0x60], edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc