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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x88
mov esi, esp
mov dword [esi + 4], ebp
mov dword [esi + 0x40], ecx
mov eax, dword [ebp + 8]
mov dword [esi + 0x44], eax
mov dword [esi + 0x48], eax
mov eax, dword [ebp + 0x24]
mov dword [esi + 0x4c], eax
mov eax, dword [ebp + 0x20]
mov dword [esi + 0x50], eax
mov eax, dword [ebp + 0x1c]
mov dword [esi + 0x54], eax
lea eax, [ebp + 0x14]
mov dword [esi + 0x58], eax
lea eax, [ebp + 0xc]
mov dword [esi + 0x5c], eax
mov eax, esp
mov dword [esi + 0x74], eax
mov dword [esi + 0x80], 0xffffffff
lea eax, [esi + 0x78]
mov dword [esi + 0x7c], 0x100b06b0
mov ecx, dword fs:[0]
mov dword [esi + 0x78], ecx
mov dword fs:[0], eax
mov edx, dword [0x102886a0]
mov edi, dword [0x102886a4]
mov ecx, edi
xor ecx, 0xffffffff
mov eax, edx
and eax, ecx
mov ecx, edx
xor ecx, edi
add edx, ecx
sub edx, eax
sub edx, 0xa32cf334
mov ecx, edx
xor ecx, 0xffffffff
mov eax, ecx
and eax, 0x7734c6d2
and edx, 0x88cb392d
or eax, edx
xor eax, 0x145da5b1
or ecx, 0x9c969c9c
xor ecx, 0xffffffff
or eax, ecx
add eax, 0x2a7a3a8
cmp eax, 0xd228ae96
je 0x1009e05a
mov edi, dword [esi + 0x40]
mov ecx, dword [0x102886a8]
mov edx, dword [0x102886ac]
mov eax, ecx
and eax, edx
or ecx, edx
lea eax, [eax + ecx + 0x2912b89]
xor eax, 0x98aee5cb
mov dword [esi + 0x3c], eax
push eax
mov eax, esp
push eax
mov ecx, esp
mov dword [esi + 0x2c], ecx
push eax
mov ecx, esp
mov dword [esi + 0x30], ecx
push eax
mov ebx, esp
mov dword [esi + 0x34], ebx
push eax
mov edx, esp
sub esp, 0x318
mov ecx, esp
mov dword [esi + 0x1c], ecx
push eax
mov ecx, esp
mov dword [esi + 0x20], ecx
sub esp, 8
mov ecx, esp
mov dword [esi + 0x38], ecx
push eax
mov ecx, esp
mov dword [esi + 0x24], ecx
push eax
mov ecx, esp
mov dword [esi + 0x28], ecx
mov ecx, dword [esi + 0x44]
mov dword [eax], ecx
mov ecx, dword [esi + 0x4c]
mov eax, dword [esi + 0x2c]
mov dword [eax], ecx
mov ecx, dword [esi + 0x50]
mov eax, dword [esi + 0x30]
mov dword [eax], ecx
mov ecx, dword [esi + 0x5c]
mov eax, dword [esi + 0x54]
mov dword [ebx], eax
mov eax, dword [esi + 0x58]
mov dword [edx], edi
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.100a1b70
mov ecx, dword [esi + 0x34]
mov eax, dword [esi + 0x38]
add esp, 8
mov ecx, dword [ecx]
sub esp, 4
mov dword [esp], eax
call fcn.1003e3f0
mov eax, dword [esi + 0x3c]
cmp eax, 0x7d17af69
jbe 0x1009dbce
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0x5c]
mov edi, dword [esi + 0x58]
mov ebx, dword [esi + 0x38]
mov dword [esi + 0x80], 0
sub esp, 0x14
mov eax, esp
mov dword [eax + 0x10], ebx
mov dword [eax + 0xc], edi
mov dword [eax + 8], edx
mov dword [eax], ecx
mov dword [eax + 4], 0x300
call fcn.100a7de0
add esp, 0x14
mov word [esi + 0x1a], ax
jmp 0x1009dcc2
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x38]
mov dx, word [esi + 0x1a]
mov word [eax], dx
call fcn.10027aa0
mov eax, dword [esi + 0x20]
movsx eax, byte [eax]
cmp eax, 0
jne 0x1009dd9d
mov ecx, dword [0x102886c0]
add ecx, dword [0x102886c4]
xor ecx, 0xad0992ee
add ecx, 0xe42d17c6
mov eax, ecx
and eax, 0xa33ce0fe
xor ecx, 0xa33ce0fe
or eax, ecx
cmp eax, 0x2a10a3a8
jb 0x1009e0c0
mov ecx, dword [esi + 0x2c]
mov eax, dword [0x102886c8]
mov edi, dword [0x102886cc]
mov edx, eax
xor edx, 0xffffffff
xor eax, 0xffffffff
or edx, eax
mov eax, edi
xor eax, 0xffffffff
xor edi, 0xffffffff
or eax, edi
xor edx, 0xffffffff
xor eax, 0xffffffff
or edx, eax
mov eax, edx
or eax, 0x531aa255
xor eax, 0xffffffff
xor edx, 0xffffffff
and edx, 0xace55daa
or eax, edx
xor eax, 0xffffffff
mov edi, 0x49b17aca
xor edx, edx
div edi
mov edx, dword [esi + 0x30]
add eax, 0xdfedeecc
add eax, 0x37b3eeaa
sub eax, 0xdfedeecc
mov edx, dword [edx]
mov dword [edx], 2
mov ecx, dword [ecx]
xorps xmm0, xmm0
movsd qword [ecx], xmm0
cmp eax, 0x4c505b10
jae 0x1009dd15
mov dword [esi + 0x80], 0xffffffff
jmp 0x1009df88
mov eax, dword [0x102886d0]
mov ecx, dword [0x102886d4]
xor ecx, 0xffffffff
sub ecx, 0xffffffff
sub eax, ecx
xor eax, 0xe12dc939
xor eax, 0xeb139ee9
and eax, 0x5226d334
cmp eax, 0x1398487f
jb 0x1009e0dc
mov ecx, dword [esi + 0x28]
mov edi, dword [esi + 0x2c]
mov eax, dword [0x102886d8]
mov ebx, dword [0x102886dc]
mov edx, eax
xor edx, 0xffffffff
and edx, ebx
xor ebx, 0xffffffff
and eax, ebx
sub eax, edx
imul eax, eax, 0xee5f4afd
mov ebx, 0xbdd1c3a3
xor edx, edx
div ebx
mov edx, dword [esi + 0x1c]
mov ebx, eax
mov eax, dword [esi + 0x24]
add ebx, 0x7f67e31c
mov dword [esi + 0x14], ebx
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.100ae2d0
mov edx, dword [esi + 0x1c]
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x14]
add esp, 0xc
fstp qword [esi + 0x68]
movsd xmm0, qword [esi + 0x68]
mov edi, dword [edi]
movsd qword [edi], xmm0
cmp dword [ecx], edx
sete cl
mov byte [esi + 0x19], cl
cmp eax, 0xe2c0ad53
ja 0x1009e0dc
mov al, byte [esi + 0x19]
test al, 1
jne 0x1009df32
jmp 0x1009de59
mov eax, dword [esi + 0x24]
cmp dword [eax], 0
jne 0x1009df32
mov eax, dword [0x102886e0]
mov ecx, dword [0x102886e4]
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
mov ecx, eax
xor ecx, 0x6d6ec3c1
and eax, 0x92913c3e
shl eax, 1
sub eax, ecx
xor eax, 0x477ab75c
xor eax, 0xe68f2ec3
cmp eax, 0x7a21f82f
je 0x1009e111
mov eax, dword [0x102886e8]
mov ebx, dword [0x102886ec]
mov ecx, eax
xor ecx, 0xffffffff
mov edi, ebx
and edi, ecx
mov ecx, ebx
xor ecx, 0xffffffff
mov edx, eax
and edx, ecx
mov ecx, dword [esi + 0x20]
imul edx, edi
mov edi, eax
and edi, ebx
or eax, ebx
imul eax, edi
add eax, edx
mov edx, eax
and edx, 0x1d3a6772
xor edx, 0xffffffff
add eax, 0x1d3a6772
add eax, 1
add eax, edx
mov edi, eax
xor edi, 0xffffffff
and edi, 0x26f5f0f
mov edx, eax
and edx, 0xfd90a0f0
imul edx, edi
mov edi, eax
and edi, 0x26f5f0f
or eax, 0x26f5f0f
imul eax, edi
add eax, edx
xor eax, 0xa4c1c389
mov cl, byte [ecx + 1]
mov byte [esi + 0x13], cl
cmp eax, 0x6da426d4
je 0x1009dea1
mov al, byte [esi + 0x13]
test al, 1
jne 0x1009df32
jmp 0x1009df7e
jmp 0x1009df37
mov ecx, dword [esi + 0x30]
mov edx, dword [0x102886f8]
sub edx, dword [0x102886fc]
xor edx, 0x9aa8f23a
mov eax, edx
and eax, 0xb40adeb6
shl eax, 1
add edx, 0xb40adeb6
sub edx, eax
mov eax, edx
xor eax, 0x3dabc8de
and eax, edx
mov ecx, dword [ecx]
mov dword [ecx], 2
cmp eax, 0x5dc95b8b
ja 0x1009e116
jmp 0x1009df7e
mov dword [esi + 0x80], 0xffffffff
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x5c]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.100a5710
add esp, 8
test al, 1
jne 0x1009dfad
jmp 0x1009e035
mov eax, dword [0x10288700]
mov ecx, dword [0x10288704]
add eax, 0x5b9af905
add eax, ecx
sub eax, 0x5b9af905
mov ecx, eax
and ecx, 0x58ac1b1b
xor ecx, 0xffffffff
add eax, 0x58ac1b1b
add eax, 1
add eax, ecx
xor eax, 0xffffffff
or eax, 0x9f6851db
xor eax, 0xffffffff
or eax, 0x1efe568
cmp eax, 0x5543c96a
jbe 0x1009e126
mov ecx, dword [esi + 0x30]
mov eax, dword [0x10288708]
mov edi, dword [0x1028870c]
mov edx, eax
xor edx, edi
xor edx, 0xffffffff
or eax, edi
and eax, edx
sub eax, 0xde009505
or eax, 0xdc32dbe2
add eax, 0x60c2bb8
mov ecx, dword [ecx]
mov edx, dword [ecx]
or edx, 1
mov dword [ecx], edx
cmp eax, 0x5e98184d
jae 0x1009dff4
jmp 0x1009e035
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x44]
mov edx, dword [esi + 0x5c]
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
mov ecx, dword [esi + 0x78]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x20
push eax
mov edi, esp
push eax
mov ecx, esp
push eax
mov eax, esp
push eax
mov edx, esp
mov dword [esi + 8], edx
push eax
mov edx, esp
sub esp, 8
mov ebx, esp
mov dword [esi + 0xc], ebx
mov ebx, dword [esi + 0x44]
mov dword [edi], ebx
mov ebx, dword [esi + 8]
mov edi, dword [esi + 0x4c]
mov dword [ecx], edi
mov edi, dword [esi + 0x40]
mov ecx, dword [esi + 0x50]
mov dword [eax], ecx
mov ecx, dword [esi + 0x5c]
mov eax, dword [esi + 0x54]
mov dword [ebx], eax
mov eax, dword [esi + 0x58]
mov dword [edx], edi
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.100a1b70
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
add esp, 8
mov ecx, dword [ecx]
sub esp, 4
mov dword [esp], eax
call fcn.1003e3f0
jmp 0x1009dbce
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x30]
mov ecx, dword [ecx]
mov dword [ecx], 2
mov eax, dword [eax]
xorps xmm0, xmm0
movsd qword [eax], xmm0
jmp 0x1009dd15
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x1c]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.100ae2d0
mov eax, dword [esi + 0x2c]
add esp, 0xc
fstp qword [esi + 0x60]
movsd xmm0, qword [esi + 0x60]
mov eax, dword [eax]
movsd qword [eax], xmm0
jmp 0x1009ddca
jmp 0x1009dea1
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
mov dword [eax], 2
jmp 0x1009df37
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
mov ecx, dword [eax]
or ecx, 1
mov dword [eax], ecx
jmp 0x1009dff4