Function at 0x409d30
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 0x40a1d5
lea eax, [ecx + 0x10]
push eax
mov esi, ecx
call fcn.00406570
add esp, 4
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], eax
mov dword [esp + 0x10], esi
movzx eax, byte [esi]
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 + 6], al
mov byte [esp + 7], 0
mov dword [esp + 0xc], edx
lea eax, [edx + 0x400]
push eax
call fcn.004087e0
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x74], 0x8d85928c
mov byte [esp + 0x78], 0x28
mov dword [esp + 0x79], 0
mov byte [esp + 0x7d], 0
xor eax, eax
xor ebp, ebp
nop
nop
movzx ebx, byte [esp + ebp + 0x74]
mov edx, eax
and edx, 0xe
mov ecx, ebp
xor ecx, 0x962a0087
add ecx, edx
mov edx, ecx
and edx, ebx
mov esi, edx
and esi, 0xffffff9d
mov edi, edx
or edi, 0xfffffffd
inc edi
imul edi, esi
mov esi, edx
and esi, 2
or edx, 2
imul edx, esi
sub edi, edx
add ecx, ebx
add ecx, edi
mov edx, ecx
and edx, 0x5c
add edx, edx
xor ecx, 0xa3
sub edx, ecx
mov byte [esp + ebp + 0x74], dl
inc ebp
add eax, 2
cmp ebp, 0xa
jne 0x409dc0
lea ebx, [esp + 0x74]
mov ebp, dword [esp + 0x10]
mov ecx, ebp
push 0x44cab0
push ebx
push dword [esp + 8]
call fcn.00409620
mov dword [esp + 0x74], 0x178a8088
mov byte [esp + 0x78], 0
mov eax, 0xb46b0d06
mov ecx, 0x39
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0x4b94f36e]
mov edx, ecx
and edx, 0x3c
mov edi, eax
and edi, 3
or edi, edx
xor edi, 0xc3
mov edx, esi
not edx
or edi, edx
add esi, edi
inc esi
and edx, eax
or edx, esi
add dl, 0xe2
mov byte [esp + eax + 0x4b94f36e], dl
inc eax
dec ecx
cmp eax, 0xb46b0d0b
jne 0x409e50
lea eax, [esp + 6]
mov ecx, ebp
push eax
push ebx
push dword [esp + 8]
call fcn.00409620
mov eax, dword [str.LPnhqo__auobdrhhefei]
mov dword [esp + 0x74], 0x77daa09c
xor ecx, ecx
xor edi, edi
nop
nop
nop
nop
mov esi, ecx
and esi, 4
mov edx, edi
xor edx, 0xbe
add edx, esi
xor dl, byte [esp + edi + 0x74]
add dl, 0x4a
mov byte [esp + edi + 0x74], dl
inc edi
add ecx, 2
cmp edi, 4
jne 0x409eb0
mov ecx, ebp
push eax
push ebx
push dword [esp + 8]
call fcn.00409620
mov dword [esp + 0x74], 0xcbc4c4b7
mov dword [esp + 0x78], 0xbccfc0d7
mov dword [esp + 0x7c], 0x3235d0bf
mov byte [esp + 0x80], 0xcc
mov word [esp + 0x81], 0
mov byte [esp + 0x83], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x76
xor cl, byte [esp + eax + 0x74]
add cl, 0xb2
mov byte [esp + eax + 0x74], cl
inc eax
cmp eax, 0x10
jne 0x409f20
mov dword [esp + 0x14], 0xf77a4659
mov eax, 0xd8166856
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x27e997be]
xor ecx, eax
mov esi, ecx
xor esi, 0x387009ae
mov edx, ecx
or edx, 0xc0066051
and edx, esi
mov esi, edx
and esi, 2
mov edi, edx
or edx, 2
imul edx, esi
xor esi, 2
and edi, 0xfd
imul edi, esi
xor ecx, 0x51
add ecx, edx
add ecx, edi
inc cl
mov byte [esp + eax + 0x27e997be], cl
inc eax
cmp eax, 0xd816685a
jne 0x409f50
lea edi, [esp + 0x14]
mov ecx, ebp
push ebx
push edi
push dword [esp + 8]
call fcn.00409620
mov dword [esp + 0x74], 0xc2c6c4ce
mov byte [esp + 0x78], 0x28
mov dword [esp + 0x79], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xf7
xor cl, byte [esp + eax + 0x74]
add cl, 0x2d
mov byte [esp + eax + 0x74], cl
inc eax
cmp eax, 9
jne 0x409fd0
mov ecx, ebp
push dword [esp + 0xc]
push dword [esp + 0xc]
push ebx
push dword [esp + 0xc]
call fcn.004098e0
mov dword [esp + 0x14], 0x239d21e3
mov dword [esp + 0x18], 0x2792259a
mov dword [esp + 0x1c], 0x3b84399d
mov dword [esp + 0x20], 0x3fc33d88
mov dword [esp + 0x24], 0x33bb31e4
mov dword [esp + 0x28], 0x37933584
mov dword [esp + 0x2c], 0xbea09c2
mov dword [esp + 0x30], 0xfbb0db1
mov dword [esp + 0x34], 0x3b601bc
mov dword [esp + 0x38], 0x7b605bd
mov dword [esp + 0x3c], 0x1ba819b9
mov dword [esp + 0x40], 0x1fe11da8
mov dword [esp + 0x44], 0x13ad11b6
mov dword [esp + 0x48], 0x17ab15a6
mov dword [esp + 0x4c], 0xeb4ee915
mov dword [esp + 0x50], 0xef5aed4d
mov dword [esp + 0x54], 0xe329e141
mov dword [esp + 0x58], 0xe744e504
mov dword [esp + 0x5c], 0xfb4ff947
mov dword [esp + 0x60], 0xff5afd42
mov dword [esp + 0x64], 0xf340f151
mov dword [esp + 0x68], 0xf73bf57d
mov word [esp + 0x6c], 0xc9c8
mov byte [esp + 0x72], 0
mov dword [esp + 0x6e], 0
xor eax, eax
mov ecx, eax
add cl, 0x48
xor cl, byte [esp + eax + 0x14]
add cl, 0x98
mov byte [esp + eax + 0x14], cl
inc eax
cmp eax, 0x5f
jne 0x40a0c0
movzx eax, word [esp + 0x14]
test ax, ax
je 0x40a101
lea ebx, [esp + 0x74]
lea ecx, [esp + 0x16]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40a0f0
mov word [ebx], 0
movzx ecx, byte [ebp + 0x60]
test cl, cl
je 0x40a131
lea eax, [ebp + 0x61]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx ecx, cl
mov word [ebx], cx
add ebx, 2
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x40a120
mov dword [ebx], 0xa000d
mov word [ebx + 4], 0
mov eax, dword [ebp + 0x80]
mov dword [esp + 0x14], 0xd7b7c9fb
mov dword [esp + 0x18], 0xd3bbd5a4
mov word [esp + 0x1c], 0xd1d0
mov dword [esp + 0x1e], 0
mov word [esp + 0x22], 0
xor ecx, ecx
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xce
xor dl, byte [esp + ecx + 0x14]
add dl, 0xfa
mov byte [esp + ecx + 0x14], dl
lea edx, [ecx + ecx]
and edx, 2
mov esi, edx
and esi, ecx
or edx, ecx
xor edx, 1
add edx, esi
mov ecx, edx
cmp edx, 0x10
jb 0x40a170
lea ecx, [esp + 0x74]
push 0x493e0
push eax
mov esi, dword [esp + 8]
push esi
push 0
push 0
push ecx
push edi
call fcn.0040c490
add esp, 0x1c
mov ebx, eax
push esi
call fcn.004087f0
add esp, 4
mov eax, dword [ebp + 0x80]
add dword [ebp + 4], eax
mov dword [ebp + 0x80], 0
jmp 0x40a1d7
mov bl, 1
mov eax, ebx
add esp, 0x110
pop esi
pop edi
pop ebx
pop ebp
ret