Function at 0x4138db
Capabilities:
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 0x413c00
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 0x413bf9
mov dword [esp + 0x5c], 0xe9c6d990
mov word [esp + 0x60], 0xd990
mov byte [esp + 0x62], 0xc6
xor ecx, ecx
mov al, byte [esp + ecx + 0x5c]
xor al, 0xb5
movzx eax, al
mov word [esp + ecx*2 + 0x98], ax
inc ecx
cmp ecx, 7
jl 0x413955
xor eax, eax
push edx
mov word [esp + 0xaa], ax
lea eax, [esp + 0x9c]
push esi
push eax
call fcn.0041b73a
mov ebp, eax
add esp, 0xc
mov dword [esp + 0x50], ebp
test ebp, ebp
je 0x413bd7
lea eax, [esp + 0xc0]
xor ecx, ecx
push eax
push ebp
mov edx, 0x54e1cc7b
inc ecx
call fcn.00412ca7
call eax
xor ecx, ecx
mov esi, eax
mov edx, 0x17299c7b
mov dword [esp + 0x74], esi
inc ecx
call fcn.00412ca7
mov dword [esp + 0x70], eax
cmp esi, 0xffffffff
je 0x413bcc
mov ebp, dword [esp + 0x4c]
mov ebx, eax
mov word [esp + 0x10], 0x2222
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, 0xc
movzx eax, al
mov word [esp + ecx*2 + 0x54], ax
inc ecx
cmp ecx, 2
jl 0x4139ec
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 0x413ba5
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0xf0]
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x413ba5
test byte [esp + 0xc0], 0xa7
je 0x413ba5
cmp dword [esp + 0xdc], 0
jne 0x413ba5
cmp dword [esp + 0xe0], 0xa00000
jae 0x413ba5
mov dword [esp + 0x14], 0xc7ded790
xor ecx, ecx
mov word [esp + 0x18], 0xd790
mov byte [esp + 0x1a], 0xde
movzx eax, byte [esp + ecx + 0x14]
sub ax, 0x6b
and ax, di
mov word [esp + ecx*2 + 0x78], ax
inc ecx
cmp ecx, 7
jl 0x413a82
xor eax, eax
mov word [esp + 0x86], ax
lea eax, [esp + 0xec]
push eax
lea eax, [esp + 0x7c]
push ebp
push eax
call fcn.0041b73a
mov edi, eax
add esp, 0xc
test edi, edi
je 0x413ba0
mov dword [esp + 0x1c], 0x21655e17
xor ecx, ecx
mov word [esp + 0x20], 0x5e17
mov edx, 0xff
mov byte [esp + 0x22], 0x65
movzx eax, byte [esp + ecx + 0x1c]
add ax, 0xe
and ax, dx
mov word [esp + ecx*2 + 0x88], ax
inc ecx
cmp ecx, 7
jl 0x413ade
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.0041b73a
mov esi, eax
add esp, 0xc
test esi, esi
je 0x413b95
mov dword [esp + 0x30], 0x81888562
xor ecx, ecx
mov dword [esp + 0x34], 0x7d8e638f
mov dword [esp + 0x38], 0x8e817e7e
mov dword [esp + 0x3c], 0x816f3c56
mov dword [esp + 0x40], 0x413c908a
mov word [esp + 0x44], 0x8f88
mov byte [esp + 0x46], 0x26
mov al, byte [esp + ecx + 0x30]
sub al, 0x1c
mov byte [esp + ecx + 0xa8], al
inc ecx
cmp ecx, 0x17
jl 0x413b5a
mov edx, esi
mov byte [esp + 0xbf], 0
mov ecx, edi
call fcn.0041892c
lea eax, [esp + 0xa8]
push edi
push eax
call fcn.004125f4
push esi
call fcn.004056f0
add esp, 0xc
push edi
call fcn.004056f0
mov esi, dword [esp + 0x78]
pop ecx
mov edi, 0xff
lea eax, [esp + 0xc0]
push eax
push esi
call ebx
test eax, eax
jne 0x4139db
xor ecx, ecx
mov edx, 0x83fbc401
push esi
inc ecx
call fcn.00412ca7
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 0x413953
mov ebx, dword [esp + 0x24]
push ebx
call fcn.004056f0
pop ecx
cmp byte [esp + 0x31c], 0
je 0x413e2a
mov dword [esp + 0x24], 0x435a530c
xor ecx, ecx
mov byte [esp + 0x28], 0x11
movzx eax, byte [esp + ecx + 0x24]
add ax, 0x19
and ax, di
mov word [esp + ecx*2 + 0x5c], ax
inc ecx
cmp ecx, 5
jl 0x413c1d
xor eax, eax
mov word [esp + 0x66], ax
lea eax, [esp + 0x5c]
push esi
push eax
call fcn.0041b73a
mov ebx, eax
mov dword [esp + 0x58], ebx
pop ecx
pop ecx
test ebx, ebx
je 0x413e2a
lea eax, [esp + 0xc0]
xor ecx, ecx
push eax
push ebx
mov edx, 0x54e1cc7b
inc ecx
call fcn.00412ca7
call eax
xor ecx, ecx
mov edx, 0x17299c7b
inc ecx
mov ebp, eax
call fcn.00412ca7
mov dword [esp + 0x24], eax
cmp ebp, 0xffffffff
je 0x413e23
push 0x38
mov word [esp + 0x14], 0xf6f6
mov ebx, eax
pop edi
push 0x2e
pop eax
mov word [esp + 0x2c], ax
mov edx, 0xff
xor eax, eax
xor ecx, ecx
mov word [esp + 0x2e], ax
movzx eax, byte [esp + ecx + 0x10]
add ax, di
and ax, dx
mov word [esp + ecx*2 + 0x54], ax
inc ecx
cmp ecx, 2
jl 0x413cac
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], 0x94aba45d
xor ecx, ecx
mov word [esp + 0x20], 0xa45d
mov edx, 0xff
mov byte [esp + 0x22], 0xab
movzx eax, byte [esp + ecx + 0x1c]
sub ax, di
and ax, dx
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.0041b73a
mov edi, eax
add esp, 0xc
test edi, edi
je 0x413df9
mov dword [esp + 0x14], 0x8acec780
xor ecx, ecx
mov word [esp + 0x18], 0xc780
mov edx, 0xff
mov byte [esp + 0x1a], 0xce
movzx eax, byte [esp + ecx + 0x14]
sub ax, 0x5b
and ax, dx
mov word [esp + ecx*2 + 0x78], ax
inc ecx
cmp ecx, 7
jl 0x413d8b
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.0041b73a
mov esi, eax
add esp, 0xc
test esi, esi
je 0x413dee
push dword [esp + 0x31c]
mov edx, esi
mov ecx, edi
push dword [esp + 0x31c]
call fcn.004138db
push esi
call fcn.004056f0
add esp, 0xc
push edi
call fcn.004056f0
mov esi, dword [esp + 0x50]
pop ecx
push 0x38
pop edi
lea eax, [esp + 0xc0]
push eax
push ebp
call ebx
test eax, eax
jne 0x413c96
xor ecx, ecx
mov edx, 0x83fbc401
push ebp
inc ecx
call fcn.00412ca7
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