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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x34
mov eax, dword [0x10033024]
xor eax, esp
mov dword [esp + 0x30], eax
cmp byte [0x10034f10], 0
push ebx
push esi
mov esi, dword [ebp + 0x14]
push edi
mov di, word [ebp + 0x10]
mov dword [esp + 0x14], esi
je 0x1000406c
mov edx, dword [0x10034f18]
xor ebx, ebx
movzx ecx, di
mov eax, edx
nop dword [eax]
cmp dword [eax], ecx
je 0x10003bd2
inc ebx
add eax, 0x20
cmp ebx, 0x80
jl 0x10003bc0
jmp 0x10003bd7
cmp ebx, 0xffffffff
jne 0x10003c05
mov ecx, dword [ebp + 0x18]
imul ecx, dword [ebp + 0x1c]
test ecx, ecx
jle 0x1000406c
xor eax, eax
mov edi, esi
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.1000aa34
mov esp, ebp
pop ebp
ret
shl ebx, 5
xorps xmm1, xmm1
add ebx, edx
mov dword [esp + 0x18], ebx
movss xmm0, dword [ebx + 0x10]
minss xmm0, dword [0x1002ef58]
comiss xmm1, xmm0
movss dword [esp + 0x10], xmm0
jb 0x10003c5a
mov ecx, dword [ebp + 0x18]
imul ecx, dword [ebp + 0x1c]
test ecx, ecx
jle 0x10003c41
xor eax, eax
mov edi, esi
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
mov dword [ebx + 0x14], 0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.1000aa34
mov esp, ebp
pop ebp
ret
cmp byte [ebx + 0x1c], 0
jne 0x10003c64
mov byte [ebx + 0x1c], 1
mov eax, dword [ebp + 0x18]
xor esi, esi
test eax, eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0xc], eax
jle 0x10003caf
movzx ebx, ax
mov ecx, dword [esp + 0x14]
mov eax, ebx
imul eax, esi
movzx eax, ax
movsx eax, word [ecx + eax*2]
mov ecx, 0x708
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
cmovl ecx, eax
mov eax, dword [ebp + 0x18]
inc esi
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
cmp esi, eax
jl 0x10003c77
mov ebx, dword [esp + 0x18]
jmp 0x10003cb2
mov eax, dword [ebp + 0x18]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, di
mov dword [esp + 0x38], eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x30]
push eax
divss xmm1, xmm0
divss xmm1, dword [0x1002efa8]
movss dword [ebx + 0x14], xmm1
call fcn.10008030
mov eax, dword [esp + 0x34]
cmp byte [eax + 0xd], 0
jne 0x10003cf3
movzx ecx, di
cmp cx, word [eax + 0x10]
jae 0x10003d67
cmp dword [0x10034f28], 0x6666666
je 0x10004083
mov esi, dword [0x10034f24]
push 0x28
call fcn.1000aa47
mov cx, word [esp + 0x3c]
add esp, 4
mov word [eax + 0x10], cx
mov ecx, 0x10034f24
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
push eax
push dword [esp + 0x34]
mov dword [eax + 0x14], 0
push dword [esp + 0x34]
mov dword [eax + 0x18], 0
mov dword [eax], esi
mov dword [eax + 4], esi
mov dword [eax + 8], esi
mov word [eax + 0xc], 0
call fcn.10007bc0
mov edx, dword [eax + 0x18]
lea esi, [eax + 0x14]
mov eax, dword [esp + 0xc]
cmp edx, eax
je 0x10003dd2
xor ecx, ecx
mov edx, 8
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1000ad9f
mov dword [esi + 8], eax
xor ecx, ecx
mov eax, dword [esp + 0x10]
mov edx, 8
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1000ad9f
mov dword [esi + 0xc], eax
xor ecx, ecx
mov eax, dword [esp + 0x14]
mov edx, 8
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1000ad9f
mov edx, dword [esp + 0x18]
add esp, 0xc
mov dword [esi + 0x10], eax
mov dword [esi + 4], edx
mov eax, dword [esi]
cmp eax, dword [ebx + 0x18]
je 0x10003e13
cmp eax, 2
je 0x10003de3
cmp eax, 3
jne 0x10003e0e
xor ecx, ecx
test edx, edx
jle 0x10003e0e
xorps xmm0, xmm0
nop dword [eax]
mov eax, dword [esi + 8]
movsd qword [eax + ecx*8], xmm0
mov eax, dword [esi + 0xc]
movsd qword [eax + ecx*8], xmm0
mov eax, dword [esi + 0x10]
movsd qword [eax + ecx*8], xmm0
inc ecx
cmp ecx, dword [esi + 4]
jl 0x10003df0
mov eax, dword [ebx + 0x18]
mov dword [esi], eax
mov eax, dword [ebx + 0x18]
sub eax, 1
je 0x10003ed0
mov ebx, dword [esp + 0xc]
sub eax, 1
je 0x10003e80
sub eax, 1
jne 0x1000407e
xor edi, edi
test ebx, ebx
jle 0x10003e68
nop word [eax + eax]
mov eax, dword [0x10034f1c]
sub esp, 0x10
mov edx, dword [esp + 0x24]
mov ecx, esi
movups xmm0, xmmword [eax + 0x68]
movups xmmword [esp], xmm0
push ebx
push edi
push dword [ebp + 0x18]
call fcn.100039e0
inc edi
add esp, 0x1c
cmp edi, ebx
jl 0x10003e40
mov eax, dword [0x10034f1c]
movss xmm0, dword [esp + 0x10]
mov edx, dword [ebp + 0x18]
mulss xmm0, dword [eax + 0x78]
jmp 0x1000402c
xor edi, edi
test ebx, ebx
jle 0x10003eb8
nop word [eax + eax]
mov eax, dword [0x10034f1c]
sub esp, 0x10
mov edx, dword [esp + 0x24]
mov ecx, esi
movups xmm0, xmmword [eax + 0x50]
movups xmmword [esp], xmm0
push ebx
push edi
push dword [ebp + 0x18]
call fcn.100039e0
inc edi
add esp, 0x1c
cmp edi, ebx
jl 0x10003e90
mov eax, dword [0x10034f1c]
movss xmm0, dword [esp + 0x10]
mov edx, dword [ebp + 0x18]
mulss xmm0, dword [eax + 0x60]
jmp 0x1000402c
mov edx, dword [ebp + 0x18]
mov dword [esp + 0x20], 0
test edx, edx
jle 0x10004022
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0xc]
mov ebx, dword [0x10034f1c]
mov dword [esp + 0x38], edi
mov eax, dword [esp + 0x20]
movsx ecx, word [ebx + 0x44]
cdq
idiv ecx
test edx, edx
jne 0x10004007
call fcn.1000f68b
movss xmm0, dword [0x1002efac]
mov ebx, dword [0x10034f1c]
movd xmm2, eax
cvtdq2ps xmm2, xmm2
divss xmm2, xmm0
mulss xmm2, xmm0
addss xmm2, xmm2
subss xmm2, xmm0
test esi, esi
jle 0x10004007
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], esi
movzx esi, word [edi]
movzx ecx, word [ebx + 0x46]
mov eax, esi
mov dword [esp + 0x24], eax
mov edi, ecx
movsx eax, si
cdq
xor eax, edx
movsx ecx, cx
sub eax, edx
cmp eax, ecx
jle 0x10003f74
mov eax, edi
neg eax
test si, si
movzx ecx, ax
mov eax, edi
cmovg ecx, eax
movzx eax, cx
jmp 0x10003f76
mov eax, esi
cwde
movaps xmm1, xmm2
mulss xmm1, dword [ebx + 0x4c]
xor dl, dl
xor edi, edi
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [ebx + 0x48]
cvttss2si eax, xmm0
movzx ecx, ax
movzx eax, ax
cwde
mov dword [esp + 0x24], ecx
xor ecx, ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
cvttss2si eax, xmm1
movzx eax, ax
mov dword [esp + 0x28], eax
cmp cx, word [ebx + 0x44]
jge 0x10003fef
mov esi, dword [esp + 0x1c]
movzx ecx, ax
test dl, dl
mov eax, dword [esp + 0x24]
movzx eax, ax
cmove ecx, eax
inc edi
mov word [esi], cx
xor dl, 1
mov ebx, dword [0x10034f1c]
mov ecx, dword [esp + 0xc]
movsx eax, word [ebx + 0x44]
cmp edi, eax
lea esi, [esi + ecx*2]
mov eax, dword [esp + 0x28]
jl 0x10003fc0
add dword [esp + 0x1c], 2
sub dword [esp + 0x18], 1
mov edi, dword [esp + 0x38]
jne 0x10003f42
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
lea edi, [edi + esi*2]
mov edx, dword [ebp + 0x18]
inc ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x38], edi
cmp ecx, edx
jl 0x10003ef5
mov ebx, dword [esp + 0xc]
movss xmm0, dword [esp + 0x10]
movss xmm1, dword [0x1002ef58]
xorps xmm2, xmm2
maxss xmm2, xmm0
comiss xmm2, xmm1
ja 0x10004043
movaps xmm1, xmm2
imul edx, ebx
xor ecx, ecx
test edx, edx
jle 0x1000406c
mov ebx, dword [esp + 0x14]
movsx eax, word [ebx + ecx*2]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
cvttss2si eax, xmm0
mov word [ebx + ecx*2], ax
inc ecx
cmp ecx, edx
jl 0x10004050
mov ecx, dword [esp + 0x3c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1000aa34
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x18]
jmp 0x10004026
call fcn.100020d0
int3