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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x80
mov eax, dword [esp + 0x98]
mov dword [esp + 0x40], ecx
mov edx, dword [ecx + 0x80]
mov dword [esp + 0x10], 0x5000e59
mov dword [esp + 0x14], 0x4a060d37
mov dword [esp + 0x18], 0x2e061c20
mov dword [esp + 0x1c], 0x19296b42
mov dword [esp + 0x20], 0x192b2c18
mov dword [esp + 0x24], 0x111c241f
mov dword [esp + 0x28], 0xe8590f55
mov dword [esp + 0x2c], 0xd8dde1da
mov dword [esp + 0x30], 0x8e8480e8
mov word [esp + 0x34], 0x738a
mov dword [esp + 0x36], 0
xor edi, edi
xor ebp, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ebp
xor esi, 0x4668c69b
mov ebx, edi
and ebx, 0x48
sub ebx, esi
mov esi, ebx
and esi, 0x65
or esi, 0x98
and ebx, 0x9a
xor ebx, esi
xor bl, byte [esp + ebp + 0x10]
xor bl, 0x98
add bl, 7
mov byte [esp + ebp + 0x10], bl
inc ebp
add edi, 2
cmp ebp, 0x2a
jne 0x409410
mov ecx, eax
mov dword [esp + 8], 0x130804f2
mov word [esp + 0xc], 0
mov byte [esp + 0xe], 0
xor edi, edi
xor ebp, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, edi
and esi, 8
mov ebx, ebp
xor ebx, 0x7c
add ebx, esi
xor bl, byte [esp + ebp + 8]
add bl, 0x94
mov byte [esp + ebp + 8], bl
inc ebp
add edi, 2
cmp ebp, 7
jne 0x409470
mov dword [esp + 0x44], 0xd8b77d7f
mov dword [esp + 0x48], 0xd7ddcbda
mov dword [esp + 0x4c], 0xd6be90c8
mov dword [esp + 0x50], 0xf0efefcd
mov dword [esp + 0x54], 0xe8edf7eb
mov dword [esp + 0x58], 0xef56b1ea
mov dword [esp + 0x5c], 0xa2e1fde5
mov dword [esp + 0x60], 0xf2e2f0ec
mov dword [esp + 0x64], 0xf6f84ba9
mov dword [esp + 0x68], 0xbba5fcfb
mov dword [esp + 0x6c], 0xfaf6f4fe
mov dword [esp + 0x70], 0x873edabe
mov dword [esp + 0x74], 0x8b818f8b
mov dword [esp + 0x78], 0xd68d8487
mov dword [esp + 0x7c], 0x13ca
xor edi, edi
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edi + 0x44]
lea esi, [edi + 0xebee793]
mov ebp, 0x6c
sub ebp, edi
mov ebx, eax
not ebx
and ebx, esi
or ebx, ebp
lea ebx, [edi + ebx*2]
add bl, al
add bl, 0xb6
mov byte [esp + edi + 0x44], bl
lea eax, [edi + edi]
and eax, 2
mov esi, eax
and esi, edi
xor eax, edi
xor eax, 1
lea edi, [eax + esi*2]
cmp edi, 0x3c
jb 0x409510
mov ebp, dword [esp + 0x94]
add ebp, edx
mov word [esp], 0xa0a3
mov byte [esp + 2], 0x8e
mov dword [esp + 3], 0
mov byte [esp + 7], 0
mov edx, 0x1d
mov edi, 0x62
mov esi, dword [esp + 0x40]
nop
nop
nop
nop
mov eax, edi
and eax, 0x45
mov ebx, edx
and ebx, 0x3a
or ebx, eax
xor bl, byte [esp + edx - 0x1d]
xor bl, 0x45
add bl, 0x6f
mov byte [esp + edx - 0x1d], bl
inc edx
dec edi
cmp edx, 0x25
jne 0x409580
movzx ebx, byte [esp]
mov edx, ebp
test bl, bl
je 0x4095cb
lea edi, [esp + 1]
mov edx, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x4095c0
mov byte [edx], 0
movzx ebx, byte [esi + 0x60]
test bl, bl
je 0x4095eb
lea edi, [esi + 0x61]
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x4095e0
mov byte [edx], 0
movzx ebx, byte [esp + 0x44]
test bl, bl
je 0x40960b
lea edi, [esp + 0x45]
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x409600
mov byte [edx], 0
movzx ebx, byte [ecx]
test bl, bl
mov dword [esp + 0x3c], ebp
je 0x40962b
inc ecx
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [ecx]
inc ecx
test bl, bl
jne 0x409620
mov byte [edx], 0
movzx ecx, byte [esp + 8]
test cl, cl
je 0x40964b
lea edi, [esp + 9]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409640
mov byte [edx], 0
movzx ecx, byte [esp + 0x10]
mov ebp, esi
test cl, cl
je 0x40966b
lea edi, [esp + 0x11]
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409660
mov byte [edx], 0
mov eax, dword [esp + 0xa0]
mov ecx, eax
mov ebx, eax
shr ecx, 2
mov esi, dword [esp + 0x9c]
mov eax, esi
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
and ebx, 0xfffffffc
add edx, ebx
add ebx, esi
mov ecx, eax
mov esi, eax
shr ecx, 1
and ecx, 1
mov eax, ebx
mov edi, edx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, esi
mov ecx, esi
and ecx, 2
add edx, ecx
test al, 1
je 0x4096ba
movzx eax, byte [ebx + ecx]
mov byte [edx], al
inc edx
mov dword [esp + 0x44], 0x999f9b9d
mov byte [esp + 0x48], 0x64
mov dword [esp + 0x49], 0
mov word [esp + 0x4d], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
xor eax, 0xe8
lea edi, [ecx + ecx]
mov ebx, edi
and ebx, 0xe
sub ebx, eax
xor bl, byte [esp + ecx + 0x44]
add bl, 0x88
mov byte [esp + ecx + 0x44], bl
and edi, 2
xor ecx, 1
add ecx, edi
cmp ecx, 0xb
jb 0x4096e0
mov dword [esp + 0x10], 0x3a391d1f
mov byte [esp + 0x14], 8
mov dword [esp + 0x15], 0
mov dword [esp + 0x18], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 3
xor al, byte [esp + ecx + 0x10]
add al, 0xf1
mov byte [esp + ecx + 0x10], al
inc ecx
cmp ecx, 0xc
jne 0x409730
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x40976b
lea edi, [esp + 0x11]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409760
mov byte [edx], 0
movzx ecx, byte [ebp + 0x60]
test cl, cl
je 0x40978b
lea edi, [ebp + 0x61]
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409780
mov byte [edx], 0
movzx ecx, byte [esp + 0x44]
test cl, cl
je 0x4097ab
lea edi, [esp + 0x45]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x4097a0
mov byte [edx], 0
sub edx, dword [esp + 0x3c]
add dword [ebp + 0x80], edx
add esp, 0x80
pop esi
pop edi
pop ebx
pop ebp
ret 0x10