Function at 0x100317a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x100a23b0]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [0x100ad68c]
mov eax, dword [esi + 8]
cmp eax, 0x80
jge 0x100317cb
mov ecx, dword [esi + 4]
mov dword [ecx + eax*4], 0x10011490
mov eax, dword [esi + 0xc]
cmp eax, 0x80
jge 0x100317df
mov edx, dword [esi + 4]
mov dword [edx + eax*4], section..text
mov eax, dword [esi + 0x10]
cmp eax, 0x80
jge 0x100317f3
mov ecx, dword [esi + 4]
mov dword [ecx + eax*4], 0x10033e40
mov eax, dword [esi + 0x14]
cmp eax, 0x80
jge 0x10031807
mov edx, dword [esi + 4]
mov dword [edx + eax*4], 0x10005300
mov eax, dword [esi + 0x18]
cmp eax, 0x80
jge 0x1003181b
mov ecx, dword [esi + 4]
mov dword [ecx + eax*4], 0x10033cb0
mov eax, dword [esi + 0x1c]
cmp eax, 0x80
jge 0x1003182f
mov edx, dword [esi + 4]
mov dword [edx + eax*4], 0x10005330
mov eax, dword [esi + 0x20]
cmp eax, 0x80
jge 0x10031843
mov ecx, dword [esi + 4]
mov dword [ecx + eax*4], 0x1002dd90
mov eax, dword [esi + 0x24]
cmp eax, 0x80
jge 0x10031857
mov edx, dword [esi + 4]
mov dword [edx + eax*4], 0x1002def0
mov eax, dword [esi + 0x28]
cmp eax, 0x80
jge 0x1003186b
mov ecx, dword [esi + 4]
mov dword [ecx + eax*4], 0x10005310
mov eax, dword [esi + 0x2c]
cmp eax, 0x80
jge 0x1003187f
mov edx, dword [esi + 4]
mov dword [edx + eax*4], 0x10001040
mov eax, dword [esi + 0x30]
cmp eax, 0x80
jge 0x10031893
mov ecx, dword [esi + 4]
mov dword [ecx + eax*4], 0x1000f980
mov eax, dword [esi + 0x34]
cmp eax, 0x80
jge 0x100318a7
mov edx, dword [esi + 4]
mov dword [edx + eax*4], 0x1000f380
mov eax, dword [esi + 0x38]
cmp eax, 0x80
jge 0x100318bb
mov ecx, dword [esi + 4]
mov dword [ecx + eax*4], 0x10001290
mov eax, dword [esi + 0x3c]
cmp eax, 0x80
jge 0x100318cf
mov edx, dword [esi + 4]
mov dword [edx + eax*4], fcn.100151e0
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push edi
push str.User32.dll
xor edi, edi
call ebx
test eax, eax
jne 0x100318f3
push str.User32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
test eax, eax
je 0x1003192a
mov dword [ebp - 0x14], 0xf1f2e532
mov dword [ebp - 0x10], 0xc4e0e3e2
mov dword [ebp - 0xc], 0x8adef0e8
xor ecx, ecx
lea ebx, [ebx]
lea edx, [ecx + 0x7f]
xor byte [ebp + ecx - 0x14], dl
inc ecx
cmp ecx, 0xc
jb 0x10031910
lea ecx, [ebp - 0x14]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
mov eax, dword [esi + 0x40]
cmp eax, 0x80
jge 0x1003193a
mov edx, dword [esi + 4]
mov dword [edx + eax*4], edi
push str.kernel32.dll
xor edi, edi
call ebx
test eax, eax
jne 0x10031956
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
test eax, eax
je 0x10031992
mov dword [ebp - 0x18], 0xeff3e52b
mov dword [ebp - 0x14], 0xf2e4eaea
mov dword [ebp - 0x10], 0xe5fbd8e2
mov dword [ebp - 0xc], 0xfdfee9e8
mov byte [ebp - 8], 0x8f
xor ecx, ecx
lea edx, [ecx + 0x7f]
xor byte [ebp + ecx - 0x18], dl
inc ecx
cmp ecx, 0x11
jb 0x10031978
lea ecx, [ebp - 0x18]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
mov eax, dword [esi + 0x44]
cmp eax, 0x80
jge 0x100319a2
mov edx, dword [esi + 4]
mov dword [edx + eax*4], edi
mov eax, dword [esi + 0x48]
pop edi
pop ebx
cmp eax, 0x80
jge 0x100319b8
mov ecx, dword [esi + 4]
mov dword [ecx + eax*4], 0x10033ff0
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.10069cdb
mov esp, ebp
pop ebp
ret