Function at 0x409630
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x110
cmp dword [ecx + 0x20], 0
je 0x409681
mov esi, ecx
movzx eax, byte [ecx]
mov byte [esp + 0x3b], 0
test eax, eax
je 0x409688
cmp al, 0x64
jb 0x409697
lea ecx, [eax + eax*4]
lea ecx, [eax + ecx*8]
movzx edx, cx
shr edx, 0xc
imul ecx, edx, 0x64
sub al, cl
movzx eax, al
movzx eax, word [eax + eax + 0x43f7f8]
mov word [esp + 0x39], ax
mov ecx, 1
mov eax, edx
jmp 0x4096a0
mov bl, 1
jmp 0x409d25
lea eax, [esp + 0x3a]
mov dword [esp + 0x3c], eax
mov byte [esp + 0x3a], 0x30
jmp 0x4096cc
mov ecx, 3
cmp al, 9
ja 0x4096b7
movzx eax, byte [eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
lea edx, [esp + ecx]
add edx, 0x37
mov dword [esp + 0x3c], edx
mov byte [esp + ecx + 0x37], al
jmp 0x4096cc
movzx eax, word [eax + eax + 0x43f7f8]
lea ecx, [esp + 0x39]
mov dword [esp + 0x3c], ecx
mov word [esp + 0x39], ax
lea eax, [esi + 0x10]
push eax
call fcn.004065c0
add esp, 4
mov edi, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0xe0], eax
lea ebx, [esp + 0xeb]
push ebx
call fcn.00434d00
add esp, 4
mov dword [esp + 0xe4], edi
lea eax, [edi + 0x800]
push eax
call fcn.00436b20
add esp, 4
mov edi, eax
mov dword [esp + 0x44], 0
mov byte [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x40], 0x475ba654
mov byte [esp + 0x44], 0x20
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x18
ja 0x4097a6
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
movzx edx, byte [esp + eax + 0x40]
lea eax, [ecx + edx]
add eax, 0xf7bf4426
add ecx, 0xf7bf4426
and ecx, edx
add ecx, ecx
sub eax, ecx
mov ecx, eax
xor ecx, 0xf5
and eax, 0x75
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x19
jb 0x409760
lea eax, [esp + 0x40]
mov ecx, esi
push ebx
push eax
push edi
call fcn.00408e50
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0xeb302a26
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x13
ja 0x409815
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
add al, 0x1d
xor al, byte [esp + ecx + 0x40]
add al, 0x35
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x14
jb 0x4097f0
mov ecx, esi
push dword [esp + 0x3c]
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00408e50
mov eax, dword [str.LPnhqo___xavierraaaa2]
mov dword [esp + 0x40], 0x23bcbab2
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 0xf
ja 0x40989a
nop
nop
nop
nop
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ebx, byte [esp + ecx + 0x40]
lea ecx, [edx + ebx]
add ecx, 0xc6cc197b
add edx, 0xc6cc197b
and edx, ebx
add edx, edx
sub ecx, edx
add cl, 0xa3
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, 0x10
jb 0x409860
mov ecx, esi
push eax
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00408e50
mov dword [esp + 0x40], 0xffe6feeb
mov dword [esp + 0x44], 0xe2f3eaf3
mov dword [esp + 0x48], 0xf4f1fae3
mov byte [esp + 0x4c], 0x5a
mov dword [esp + 0x4d], 0
mov dword [esp + 0x51], 0
mov dword [esp + 0x55], 0
mov dword [esp + 0x59], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x1f
ja 0x409948
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx edx, byte [esp + ecx + 0x40]
lea ebx, [eax + 0x2afa4b73]
lea ecx, [eax + edx]
add ecx, 0x2afa4b73
and ebx, edx
add eax, 0x73
and eax, edx
add eax, ebx
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
add al, 0xdb
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x20
jb 0x409900
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0xcb46726d
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x1f
ja 0x4099de
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + 0x22]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add al, 0x34
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x10], al
mov eax, dword [esp + 0xc]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
cmp eax, 0x20
jb 0x4099a0
lea edx, [esp + 0x10]
mov ecx, esi
lea eax, [esp + 0x40]
push eax
push edx
push edi
call fcn.00408e50
mov dword [esp + 0x44], 0
mov byte [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x40], 0x767e7476
mov byte [esp + 0x44], 8
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x14
ja 0x409a6f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 2]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add al, 0xf4
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x15
jb 0x409a40
mov ecx, esi
push dword [esp + 0xe4]
push dword [esp + 0xe4]
lea eax, [esp + 0x48]
push eax
push edi
call fcn.00409180
mov eax, dword [esi + 0x60]
mov dword [esp + 0x40], 0xdbadd99b
mov dword [esp + 0x44], 0xe79ae592
mov dword [esp + 0x48], 0xe394e18d
mov dword [esp + 0x4c], 0xefdbed90
mov dword [esp + 0x50], 0xeb93e9b4
mov dword [esp + 0x54], 0xf79bf584
mov dword [esp + 0x58], 0xf3d2f1ca
mov dword [esp + 0x5c], 0xff83fd89
mov dword [esp + 0x60], 0xfb86f98c
mov dword [esp + 0x64], 0x776056d
mov dword [esp + 0x68], 0x3700161
mov dword [esp + 0x6c], 0xf390d70
mov dword [esp + 0x70], 0xb7d0966
mov dword [esp + 0x74], 0x17631566
mov dword [esp + 0x78], 0x137e1125
mov dword [esp + 0x7c], 0x1f621d7d
mov dword [esp + 0x80], 0x1b211979
mov dword [esp + 0x84], 0x27442504
mov dword [esp + 0x88], 0x235f2157
mov dword [esp + 0x8c], 0x2f422d5a
mov dword [esp + 0x90], 0x2b582949
mov dword [esp + 0x94], 0x3773354d
mov dword [esp + 0x98], 0x335f3152
mov dword [esp + 0x9c], 0x3f033d04
mov dword [esp + 0xa0], 0x3b573954
mov dword [esp + 0xa4], 0x472f4579
mov dword [esp + 0xa8], 0x432e4130
mov dword [esp + 0xac], 0x4f2d4d3b
mov dword [esp + 0xb0], 0x4b274921
mov dword [esp + 0xb4], 0x57245526
mov dword [esp + 0xb8], 0x5363513d
mov dword [esp + 0xbc], 0x5f545d49
mov word [esp + 0xc0], 0x5958
mov dword [esp + 0xda], 0
mov dword [esp + 0xd6], 0
mov dword [esp + 0xd2], 0
mov dword [esp + 0xce], 0
mov dword [esp + 0xca], 0
mov dword [esp + 0xc6], 0
mov dword [esp + 0xc2], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 0x9d
ja 0x409c67
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ebx, byte [esp + ecx + 0x40]
lea ecx, [edx + ebx]
add ecx, 0x5c
add edx, 0x5c
and edx, ebx
add edx, edx
sub ecx, edx
add cl, 0x7c
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, 0x9e
jb 0x409c30
mov dword [esp + 0x10], 0x73136d5f
mov dword [esp + 0x14], 0x771f7100
mov word [esp + 0x18], 0x7574
mov dword [esp + 0x1a], 0
mov dword [esp + 0x1e], 0
mov dword [esp + 0x22], 0
mov dword [esp + 0x26], 0
mov byte [esp + 0x2a], 0
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0x1a
ja 0x409cf0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
movzx edx, byte [esp + edx + 0x10]
lea ebx, [ecx + 0x6e]
add ecx, edx
and ebx, edx
add ebx, ebx
sub ecx, ebx
add cl, 0x6c
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 0x1b
jb 0x409cc0
push 0x493e0
push eax
push edi
push 0
push 0
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x28]
push eax
call fcn.0040d250
add esp, 0x1c
mov ebx, eax
push edi
call fcn.004084c0
add esp, 4
mov eax, dword [esi + 0x60]
add dword [esi + 4], eax
mov dword [esi + 0x60], 0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret