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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x4e8
mov eax, dword [0x10a78b80]
xor eax, esp
mov dword [esp + 0x4e4], eax
mov eax, dword [ebp + 8]
xorps xmm0, xmm0
mov edx, dword [ebp + 0x30]
mov dword [esp + 0x68], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x64], eax
mov eax, dword [ebp + 0x1c]
push esi
mov esi, dword [ebp + 0x2c]
mov dword [esp + 0x4c], eax
mov eax, 0x20
cmp esi, eax
movlpd qword [esp + 0x3c], xmm0
mov ecx, eax
push edi
mov edi, dword [ebp + 0x20]
cmovl ecx, esi
cmp edx, eax
mov dword [esp + 0x2c], edi
push 8
cmovl eax, edx
mov dword [esp + 0x68], ecx
push 0
mov dword [esp + 0x70], eax
lea eax, [esp + 0xc0]
push 0
push eax
call fcn.10116900
add esp, 0x10
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x80], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esp + 0x90], xmm0
movq xmm0, qword [eax + 0x20]
mov eax, dword [ebp + 0x28]
movq qword [esp + 0xa0], xmm0
mov dword [esp + 0x9c], 0
lea ecx, [eax + edx]
mov dword [esp + 0x7c], ecx
cmp eax, ecx
mov ecx, dword [esp + 0x44]
jge 0x1046c0fd
mov eax, dword [ebp + 0x24]
mov edx, dword [ebp + 0x14]
add eax, esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], esi
nop dword [eax + eax]
mov eax, dword [ebp + 0x24]
mov edi, eax
cmp edi, dword [esp + 0x5c]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
jge 0x1046c0af
mov edx, edi
imul edx, dword [ebp + 0x28]
mov dword [esp + 0x4c], edx
mov edx, dword [ebp + 0x28]
sar edx, 5
imul edx, dword [ebp + 0x48]
mov dword [esp + 0x60], edx
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x38], edx
mov ecx, dword [ebp + 0x44]
sar eax, 5
add eax, dword [esp + 0x60]
cmp byte [eax + ecx], 0
mov ecx, dword [esp + 0x18]
je 0x1046c08f
cmp dword [esp + 0x64], edx
mov esi, edx
mov eax, dword [esp + 0x3c]
mov edi, eax
cmovl esi, dword [esp + 0x64]
cmp dword [esp + 0x68], eax
lea eax, [esp + 0x80]
push eax
push dword [ebp + 0x38]
cmovl edi, dword [esp + 0x70]
lea eax, [esp + 0xe8]
push dword [ebp + 0x34]
mov dword [esp + 0x84], esi
push 0x20
push edi
push esi
push dword [ebp + 0x28]
mov dword [esp + 0x70], edi
push dword [esp + 0x38]
push eax
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [esp + 0x9c]
push dword [esp + 0xa4]
call fcn.10230ed0
add esp, 0x38
cmp esi, 0x20
jne 0x1046bec2
cmp edi, esi
jne 0x1046bec2
mov eax, dword [esp + 0x4c]
add eax, dword [esp + 0x50]
add eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x2c]
push edi
push eax
lea eax, [esp + 0xe8]
push esi
push eax
call dword [0x10b49524]
mov esi, dword [esp + 0x38]
add esp, 0x10
mov ecx, dword [esp + 0x18]
add esi, eax
adc ecx, 0
jmp 0x1046c077
xor eax, eax
mov dword [esp + 0x24], eax
test edi, edi
jle 0x1046c06a
mov eax, dword [esp + 0x4c]
xorps xmm3, xmm3
add eax, dword [esp + 0x50]
xorps xmm2, xmm2
add eax, dword [esp + 0x1c]
xor edx, edx
mov edi, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x58], edi
mov dword [esp + 0x14], eax
nop word [eax + eax]
xor ecx, ecx
test esi, esi
jle 0x1046bf63
cmp esi, 0x20
jb 0x1046bf63
mov eax, esi
and eax, 0x8000001f
jns 0x1046bf19
dec eax
or eax, 0xffffffe0
inc eax
mov edx, esi
sub edx, eax
mov eax, dword [esp + 0x10]
lea eax, [esp + eax + 0xf0]
nop dword [eax + eax]
movups xmm0, xmmword [eax - 0x10]
lea eax, [eax + 0x20]
movups xmm1, xmmword [edi + ecx]
psadbw xmm1, xmm0
movups xmm0, xmmword [eax - 0x20]
paddd xmm3, xmm1
movups xmm1, xmmword [edi + ecx + 0x10]
add ecx, 0x20
psadbw xmm1, xmm0
paddd xmm2, xmm1
cmp ecx, edx
jl 0x1046bf30
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
xor edi, edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x30], edi
cmp ecx, esi
jge 0x1046c024
mov eax, esi
sub eax, ecx
cmp eax, 2
jl 0x1046bfe4
lea eax, [esi - 1]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x74], eax
lea edi, [esp + 0xe1]
lea eax, [edx + ecx]
add edi, eax
mov eax, dword [esp + 0x14]
lea edi, [edi + 2]
movzx edx, byte [edi - 3]
movzx eax, byte [eax + ecx]
sub eax, edx
cdq
xor eax, edx
sub eax, edx
movzx edx, byte [edi - 2]
add esi, eax
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + ecx + 1]
add ecx, 2
sub eax, edx
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x30]
add edx, eax
mov dword [esp + 0x30], edx
cmp ecx, dword [esp + 0x74]
jl 0x1046bf95
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x20]
cmp ecx, esi
jge 0x1046c00f
mov eax, dword [esp + 0x34]
add eax, dword [esp + 0x40]
movzx eax, byte [eax + ecx]
add ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0xe0]
sub eax, ecx
mov ecx, dword [esp + 0x24]
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x30]
add ecx, eax
jmp 0x1046c013
mov ecx, dword [esp + 0x24]
lea eax, [edx + edi]
mov edx, dword [esp + 0x10]
add ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x2c]
add edx, 0x20
mov edi, dword [esp + 0x58]
add dword [esp + 0x34], ecx
sub dword [esp + 0x54], 1
lea eax, [eax + ecx]
mov dword [esp + 0x10], edx
lea edi, [ecx + edi]
mov dword [esp + 0x14], eax
mov dword [esp + 0x58], edi
jne 0x1046bf00
mov eax, dword [esp + 0x24]
paddd xmm2, xmm3
movaps xmm0, xmm2
psrldq xmm0, 8
paddd xmm2, xmm0
movd ecx, xmm2
add eax, ecx
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
cdq
add esi, eax
adc ecx, edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], esi
cmp ecx, dword [ebp + 0x40]
jg 0x1046c0e1
jl 0x1046c08b
cmp esi, dword [ebp + 0x3c]
ja 0x1046c0e1
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x1c]
sub edx, 0x20
add eax, 0x20
mov dword [esp + 0x38], edx
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x5c]
jl 0x1046be06
mov edx, dword [esp + 0x3c]
mov eax, dword [ebp + 0x28]
sub edx, 0x20
add eax, 0x20
mov dword [esp + 0x3c], edx
mov dword [ebp + 0x28], eax
cmp eax, dword [esp + 0x7c]
jl 0x1046bdd0
mov eax, esi
mov edx, ecx
pop edi
pop esi
mov ecx, dword [esp + 0x4e4]
xor ecx, esp
call fcn.105116c0
mov esp, ebp
pop ebp
ret
or eax, 0xffffffff
mov edx, closesocket
pop edi
pop esi
mov ecx, dword [esp + 0x4e4]
xor ecx, esp
call fcn.105116c0
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 0x40]
mov edx, ecx
mov ecx, dword [esp + 0x4ec]
mov eax, esi
pop edi
pop esi
xor ecx, esp
call fcn.105116c0
mov esp, ebp
pop ebp
ret