Function at 0x40eec0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xf0
mov ecx, dword [esp + 0xf4]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x104]
xor ebp, ebp
push edi
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], ebp
mov dword [esp + 0x78], ebp
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x80], ebp
mov edx, esi
mov eax, dword [ecx]
add ecx, 4
mov ebx, dword [esp + eax*4 + 0x44]
lea eax, [esp + eax*4 + 0x44]
inc ebx
dec edx
mov dword [eax], ebx
jne 0x40ef1f
cmp dword [esp + 0x44], esi
jne 0x40ef57
mov ecx, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
xor eax, eax
mov dword [ecx], ebp
mov dword [edx], ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf0
ret
mov ebx, dword [esp + 0x11c]
mov ecx, 1
lea eax, [esp + 0x48]
mov edi, dword [ebx]
mov dword [esp + 0x10], edi
cmp dword [eax], ebp
jne 0x40ef7a
inc ecx
add eax, 4
cmp ecx, 0xf
jbe 0x40ef6d
mov eax, ecx
cmp edi, ecx
mov dword [esp + 0x14], eax
jae 0x40ef8a
mov dword [esp + 0x10], ecx
mov edi, ecx
mov edx, 0xf
lea esi, [esp + 0x80]
cmp dword [esi], ebp
jne 0x40efa2
dec edx
sub esi, 4
cmp edx, ebp
jne 0x40ef96
cmp edi, edx
mov dword [esp + 0x2c], edx
jbe 0x40efb0
mov dword [esp + 0x10], edx
mov edi, edx
mov esi, 1
mov dword [ebx], edi
shl esi, cl
cmp ecx, edx
jae 0x40efcf
lea ebx, [esp + ecx*4 + 0x44]
sub esi, dword [ebx]
js 0x40efea
inc ecx
add ebx, 4
shl esi, 1
cmp ecx, edx
jb 0x40efc1
lea ecx, [edx*4]
mov dword [esp + 0x20], ecx
lea ebx, [esp + ecx + 0x44]
mov ecx, dword [esp + ecx + 0x44]
sub esi, ecx
mov dword [esp + 0x40], esi
jns 0x40effa
mov eax, 0xfffffffd
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf0
ret
add ecx, esi
mov dword [esp + 0x88], ebp
mov dword [ebx], ecx
xor ecx, ecx
dec edx
je 0x40f01d
xor ebx, ebx
add ecx, dword [esp + ebx + 0x48]
add ebx, 4
dec edx
mov dword [esp + ebx + 0x88], ecx
jne 0x40f00c
mov edx, dword [esp + 0x104]
xor ebx, ebx
mov ecx, dword [edx]
add edx, 4
cmp ecx, ebp
mov dword [esp + 0x1c], edx
je 0x40f055
mov edx, dword [esp + ecx*4 + 0x84]
mov ebp, dword [esp + 0x128]
lea ecx, [esp + ecx*4 + 0x84]
mov dword [ebp + edx*4], ebx
inc edx
mov dword [ecx], edx
mov edx, dword [esp + 0x1c]
xor ebp, ebp
mov ecx, dword [esp + 0x108]
inc ebx
cmp ebx, ecx
jb 0x40f026
mov ecx, dword [esp + 0x20]
mov ebx, edi
neg ebx
mov edx, dword [esp + ecx + 0x84]
mov ecx, dword [esp + 0x128]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x2c]
cmp eax, ecx
mov dword [esp + 0x108], edx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x84], ebp
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0xc4], ebp
mov dword [esp + 0x3c], ebp
jg 0x40f32e
mov esi, dword [esp + 0x34]
lea edx, [esp + eax*4 + 0x44]
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
mov edx, ecx
dec ecx
test edx, edx
mov dword [esp + 0x20], ecx
je 0x40f30c
lea ecx, [ebx + edi]
cmp eax, ecx
jle 0x40f1e0
mov dword [esp + 0x38], ecx
jmp 0x40f0e6
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
add ebx, edi
sub edx, ebx
inc ebp
add ecx, edi
cmp edx, edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x38], ecx
jbe 0x40f107
mov edx, edi
mov ebp, dword [esp + 0x20]
mov ecx, eax
sub ecx, ebx
mov eax, 1
shl eax, cl
lea edi, [ebp + 1]
cmp eax, edi
jbe 0x40f144
or edi, 0xffffffff
sub edi, ebp
mov ebp, dword [esp + 0x28]
add eax, edi
cmp ecx, edx
jae 0x40f144
inc ecx
cmp ecx, edx
jae 0x40f144
mov edi, dword [ebp + 4]
add ebp, 4
shl eax, 1
cmp eax, edi
jbe 0x40f144
sub eax, edi
inc ecx
cmp ecx, edx
jb 0x40f131
mov eax, dword [esp + 0x124]
mov edx, 1
shl edx, cl
mov eax, dword [eax]
mov dword [esp + 0x3c], edx
lea edi, [eax + edx]
cmp edi, 0x5a0
ja 0x40f356
mov edx, dword [esp + 0x120]
lea ebp, [edx + eax*8]
mov eax, dword [esp + 0x18]
lea edx, [esp + eax*4 + 0xc4]
mov eax, dword [esp + 0x124]
mov dword [eax], edi
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [edx], ebp
je 0x40f1c7
mov esi, dword [esp + 0x24]
mov byte [esp + 0x30], cl
mov dword [esp + eax*4 + 0x84], esi
mov eax, dword [esp + 0x10]
mov ecx, ebx
mov byte [esp + 0x31], al
sub ecx, eax
mov eax, esi
shr eax, cl
mov ecx, dword [edx - 4]
mov edx, dword [esp + 0x30]
mov esi, ebp
sub esi, ecx
sar esi, 3
sub esi, eax
mov dword [ecx + eax*8], edx
mov dword [ecx + eax*8 + 4], esi
jmp 0x40f1d0
mov eax, dword [esp + 0x118]
mov dword [eax], ebp
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x14]
cmp eax, ecx
jg 0x40f0de
mov ecx, dword [esp + 0x128]
mov dl, al
mov edi, dword [esp + 0x1c]
sub dl, bl
mov byte [esp + 0x31], dl
mov edx, dword [esp + 0x108]
lea ecx, [ecx + edx*4]
cmp edi, ecx
jb 0x40f208
mov byte [esp + 0x30], 0xc0
jmp 0x40f250
mov esi, dword [edi]
mov ecx, dword [esp + 0x10c]
cmp esi, ecx
jae 0x40f229
cmp esi, 0x100
sbb edx, edx
and edx, 0xffffffa0
add edx, 0x60
mov byte [esp + 0x30], dl
jmp 0x40f249
sub esi, ecx
mov ecx, dword [esp + 0x114]
shl esi, 2
mov dl, byte [esi + ecx]
mov ecx, dword [esp + 0x110]
add dl, 0x50
mov esi, dword [esi + ecx]
mov byte [esp + 0x30], dl
add edi, 4
mov dword [esp + 0x1c], edi
mov ecx, eax
mov eax, dword [esp + 0x24]
sub ecx, ebx
mov edx, 1
shl edx, cl
mov ecx, ebx
shr eax, cl
cmp eax, dword [esp + 0x3c]
jae 0x40f287
lea ecx, [ebp + eax*8]
mov edi, dword [esp + 0x30]
add eax, edx
mov dword [ecx], edi
lea edi, [edx*8]
mov dword [ecx + 4], esi
add ecx, edi
cmp eax, dword [esp + 0x3c]
jb 0x40f26d
mov edx, dword [esp + 0x14]
mov eax, 1
lea ecx, [edx - 1]
mov edx, dword [esp + 0x24]
shl eax, cl
test edx, eax
je 0x40f2a5
xor edx, eax
shr eax, 1
test edx, eax
jne 0x40f29d
mov edi, 1
mov ecx, ebx
xor edx, eax
mov eax, dword [esp + 0x18]
shl edi, cl
mov ecx, dword [esp + eax*4 + 0x84]
lea eax, [esp + eax*4 + 0x84]
mov dword [esp + 0x24], edx
dec edi
and edi, edx
cmp edi, ecx
je 0x40f2f1
mov edi, dword [esp + 0x18]
sub eax, 4
dec edi
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x10]
sub ebx, edi
mov edi, 1
mov ecx, ebx
shl edi, cl
mov ecx, dword [eax]
dec edi
and edi, edx
cmp edi, ecx
jne 0x40f2cd
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
mov ecx, eax
dec eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
test ecx, ecx
jne 0x40f0cd
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
inc eax
add edx, 4
cmp eax, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], edx
jle 0x40f0b8
mov esi, dword [esp + 0x40]
xor ebp, ebp
cmp esi, ebp
je 0x40f349
cmp dword [esp + 0x2c], 1
je 0x40f349
mov eax, 0xfffffffb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf0
ret
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf0
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffffc
pop ebx
add esp, 0xf0
ret