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

Disassembly:
push 0xffffffffffffffff
push 0x10164e09
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa8
push ebx
mov eax, 0x21f
push ebp
push esi
mov esi, dword [0x1018cc78]
push edi
cdq
idiv esi
mov edi, dword [0x1018cc74]
push 0xffffffffffffff9e
xor ebp, ebp
mov byte [esp + 0xb6], 0xdd
mov dword [esp + 0x14], ebp
mov cl, byte [edx + edi]
sub cl, 0xe
mov al, cl
mov byte [0x1018cc9d], cl
sub al, 0x23
push eax
mov eax, 0xc5
cdq
idiv esi
mov eax, 0xa
mov dl, byte [edx + edi]
add dl, cl
push edx
cdq
idiv esi
mov al, byte [edx + edi]
mov dl, 0xea
sub dl, cl
push eax
push edx
call fcn.100f7250
mov cl, 0x9e
mov dl, byte [esp + 0x28]
imul cl
add esp, 0x14
mov byte [0x1018cc9d], al
mov byte [esp + 0x50], dl
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
mov eax, 0xc3
mov ebx, 1
cdq
idiv dword [0x1018cc78]
mov eax, dword [0x1018cc74]
mov dword [esp + 0xc0], ebp
mov word [esp + 0x14], 0xffd1
mov cl, byte [edx + eax]
mov al, byte [0x101954b0]
test bl, al
mov byte [0x1018cc9e], cl
jne 0x100f6bc1
lea edx, [esp + 0x14]
or al, bl
push edx
mov ecx, 0x101954b4
mov byte [0x101954b0], al
call fcn.100fd880
push 0x100f7260
call fcn.1013c36b
add esp, 4
mov al, byte [esp + 0x14]
mov edi, dword [0x101954b4]
push ebp
lea ecx, [esp + 0x20]
mov byte [esp + 0x20], al
call fcn.1000bc70
push edi
call fcn.1013c2c2
add esp, 4
mov esi, eax
lea ecx, [esp + 0x1c]
push ebx
push esi
call fcn.1000c010
test al, al
je 0x100f6c0c
mov ecx, dword [esp + 0x20]
push esi
push edi
push ecx
call fcn.100017d0
add esp, 0xc
lea ecx, [esp + 0x1c]
push esi
call fcn.1000bff0
lea edx, [esp + 0x50]
lea eax, [esp + 0x1c]
push edx
mov edx, dword [esp + 0xcc]
push eax
mov byte [esp + 0xc8], bl
sub esp, 0x10
mov ecx, esp
mov dword [esp + 0x30], esp
push edx
call fcn.10023d70
lea eax, [esp + 0x78]
mov byte [esp + 0xd8], bl
push eax
call fcn.10023160
add esp, 0x14
push eax
mov byte [esp + 0xcc], 3
call fcn.10021e70
add esp, 0xc
lea ecx, [esp + 0x60]
mov byte [esp + 0xc0], bl
push ebx
call fcn.1000bc70
push ebx
lea ecx, [esp + 0x20]
mov byte [esp + 0xc4], 0
call fcn.1000bc70
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], ebp
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
cmp esi, ebp
je 0x100f71f4
mov eax, dword [esp + 0x14]
mov ecx, edi
sub ecx, esi
sar ecx, 4
cmp eax, ecx
jae 0x100f71f4
mov dl, byte [esp + 0x14]
push ebp
lea ecx, [esp + 0x64]
mov byte [esp + 0x64], dl
call fcn.1000bc70
push str.__t_r_n
call fcn.1013c2c2
add esp, 4
mov esi, eax
lea ecx, [esp + 0x60]
push ebx
push esi
call fcn.1000c010
test al, al
je 0x100f6cf3
mov eax, dword [esp + 0x64]
push esi
push str.__t_r_n
push eax
call fcn.100017d0
add esp, 0xc
lea ecx, [esp + 0x60]
push esi
call fcn.1000bff0
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x60]
add eax, edx
push ecx
lea ecx, [esp + 0x30]
push eax
push ecx
mov byte [esp + 0xcc], 4
call fcn.10022dc0
add esp, 0xc
push ebx
lea ecx, [esp + 0x64]
mov byte [esp + 0xc4], 6
call fcn.1000bc70
mov cl, byte [esp + 0xb2]
mov al, byte [0x101954b8]
inc cl
mov word [esp + 0x3c], 0x48
test bl, al
mov byte [esp + 0xb2], cl
mov word [esp + 0x3e], 0x45
mov word [esp + 0x40], 0x3f
jne 0x100f6d7b
lea edx, [esp + 0x3c]
or al, bl
push edx
mov ecx, 0x101954bc
mov byte [0x101954b8], al
call fcn.100fd8f0
push 0x100f7270
call fcn.1013c36b
add esp, 4
mov esi, dword [0x101954bc]
push esi
call fcn.1013c2c2
add esp, 4
lea ecx, [esp + 0x2c]
push eax
mov eax, dword [esp + 0x38]
push esi
push eax
push ebp
call fcn.1000d2b0
cmp eax, ebp
jne 0x100f6da8
or dword [esp + 0x10], ebx
jmp 0x100f71a1
mov eax, 0x20
mov ecx, 0x37
mov word [esp + 0x1c], ax
mov word [esp + 0x24], ax
mov word [esp + 0x26], ax
mov word [esp + 0x2a], ax
mov al, byte [0x101954c0]
mov word [esp + 0x1e], cx
test bl, al
mov word [esp + 0x20], 0x34
mov word [esp + 0x22], cx
mov word [esp + 0x28], cx
jne 0x100f6e0a
lea ecx, [esp + 0x1c]
push 0x52
or al, bl
push ecx
mov ecx, 0x101954c4
mov byte [0x101954c0], al
call fcn.100159b0
push 0x100f7280
call fcn.1013c36b
add esp, 4
mov esi, dword [0x101954c4]
push esi
call fcn.1013c2c2
mov edx, dword [esp + 0x38]
add esp, 4
lea ecx, [esp + 0x2c]
push eax
push esi
push edx
push ebp
call fcn.1000d2b0
cmp eax, ebp
jne 0x100f6e3d
mov eax, dword [esp + 0x10]
or al, 2
mov dword [esp + 0x10], eax
jmp 0x100f71a1
mov eax, 0x3a
mov word [esp + 0x46], 0x27
mov word [esp + 0x44], ax
mov word [esp + 0x48], ax
mov al, byte [0x101954c8]
mov word [esp + 0x4a], 0x22
test bl, al
mov word [esp + 0x4c], 0x2b
jne 0x100f6ec9
or al, bl
push 0xc
mov byte [0x101954c8], al
call fcn.1013c2df
add esp, 4
mov dword [0x101954cc], eax
xor esi, esi
mov di, word [esp + esi + 0x44]
push 0x4e
mov eax, edi
mov ecx, 0x101954cc
and eax, 0xffff
push eax
call fcn.100a8ee0
mov ecx, dword [0x101954cc]
add eax, 0x4e
xor eax, edi
mov word [esi + ecx], ax
add esi, 2
cmp esi, 0xa
jb 0x100f6e82
mov edx, dword [0x101954cc]
push 0x100f7290
mov word [edx + 0xa], bp
call fcn.1013c36b
add esp, 4
mov esi, dword [0x101954cc]
push esi
call fcn.1013c2c2
add esp, 4
lea ecx, [esp + 0x2c]
push eax
mov eax, dword [esp + 0x38]
push esi
push eax
push ebp
call fcn.1000d2b0
cmp eax, ebp
jne 0x100f6efc
mov eax, dword [esp + 0x10]
or al, 4
mov dword [esp + 0x10], eax
jmp 0x100f71a1
mov eax, 0x11
mov word [esp + 0x8c], 0x5d
mov word [esp + 0x90], ax
mov word [esp + 0x9e], ax
mov al, byte [0x101954d0]
mov word [esp + 0x8e], 8
test bl, al
mov word [esp + 0x92], 0x15
mov word [esp + 0x94], 0x3e
mov word [esp + 0x96], 0x3b
mov word [esp + 0x98], bx
mov word [esp + 0x9a], 0x16
mov word [esp + 0x9c], 0x10
mov word [esp + 0xa0], 0x1b
mov word [esp + 0xa2], 0x19
mov word [esp + 0xa4], 4
mov word [esp + 0xa6], 0x1d
mov word [esp + 0xa8], 6
mov word [esp + 0xaa], bx
jne 0x100f700f
or al, bl
push 0x22
mov byte [0x101954d0], al
call fcn.1013c2df
add esp, 4
mov dword [0x101954d4], eax
mov edi, 0x30
xor esi, esi
mov bp, word [esp + esi + 0x8c]
push edi
mov ecx, ebp
and ecx, 0xffff
push ecx
mov ecx, 0x101954d4
call fcn.1004a650
mov edx, dword [0x101954d4]
xor eax, edi
xor eax, ebp
xor edi, edi
mov word [esi + edx], ax
mov eax, dword [0x101954d4]
mov di, word [esi + eax]
add esi, 2
cmp esi, 0x20
jb 0x100f6fbf
push 0x100f72a0
mov word [eax + 0x20], 0
call fcn.1013c36b
add esp, 4
mov edi, dword [0x101954d4]
push edi
call fcn.1013c2c2
mov esi, eax
mov eax, dword [esp + 0x38]
add esp, 4
cmp eax, esi
mov ebp, eax
mov ecx, eax
jb 0x100f702e
mov ecx, esi
mov eax, dword [esp + 0x30]
push ecx
push edi
push eax
call fcn.100145d0
add esp, 0xc
test eax, eax
jne 0x100f7069
cmp ebp, esi
jb 0x100f7069
cmp ebp, esi
setne al
test eax, eax
jne 0x100f7069
mov eax, dword [esp + 0x10]
or al, 8
mov dword [esp + 0x10], eax
mov al, byte [0x1018cc9d]
mov byte [esp + 0xb2], al
jmp 0x100f719f
mov eax, 0x12
mov word [esp + 0x70], 0x1a
mov word [esp + 0x72], ax
mov word [esp + 0x7c], ax
mov al, byte [0x101954d8]
mov word [esp + 0x74], 0x21
test bl, al
mov word [esp + 0x76], 0xe
mov word [esp + 0x78], 0xc
mov word [esp + 0x7a], 0x18
mov word [esp + 0x7e], 0x26
mov word [esp + 0x80], 0x24
mov word [esp + 0x82], 0x1c
mov word [esp + 0x84], 0x1f
mov word [esp + 0x86], 0x11
mov word [esp + 0x88], 0x20
jne 0x100f713e
or al, bl
push 0x1c
mov byte [0x101954d8], al
call fcn.1013c2df
add esp, 4
mov dword [0x101954dc], eax
xor edi, edi
mov si, word [esp + edi + 0x70]
push 0x53
mov ecx, esi
and ecx, 0xffff
push ecx
mov ecx, 0x101954dc
call fcn.1002ea10
mov edx, dword [0x101954dc]
sub esi, eax
add esi, 0x53
mov word [edi + edx], si
add edi, 2
cmp edi, 0x1a
jb 0x100f70f5
mov eax, dword [0x101954dc]
push 0x100f72b0
mov word [eax + 0x1a], 0
call fcn.1013c36b
add esp, 4
mov edi, dword [0x101954dc]
push edi
call fcn.1013c2c2
mov ebp, dword [esp + 0x38]
add esp, 4
cmp ebp, eax
mov esi, ebp
jb 0x100f7159
mov esi, eax
mov ecx, dword [esp + 0x30]
mov edx, edi
test esi, esi
jbe 0x100f7186
mov di, word [ecx]
cmp di, word [edx]
jne 0x100f7176
add ecx, 2
add edx, 2
dec esi
jne 0x100f7163
jmp 0x100f7186
mov cx, word [ecx]
cmp cx, word [edx]
sbb ecx, ecx
and ecx, 0xfffffffe
inc ecx
test ecx, ecx
jne 0x100f719f
cmp ebp, eax
jb 0x100f719f
xor ecx, ecx
cmp ebp, eax
setne cl
test ecx, ecx
jne 0x100f719f
mov eax, dword [esp + 0x10]
or al, 0x10
mov dword [esp + 0x10], eax
xor ebp, ebp
mov ecx, dword [esp + 0x30]
mov byte [esp + 0xc0], 0
cmp ecx, ebp
je 0x100f71cf
mov al, byte [ecx - 1]
test al, al
je 0x100f71c3
cmp al, 0xff
je 0x100f71c3
dec al
mov byte [ecx - 1], al
jmp 0x100f71cf
add ecx, 0xfffffffe
push ecx
call fcn.101307a0
add esp, 4
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
inc ecx
add eax, 0x10
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
jmp 0x100f6c83
cmp dword [esp + 0x10], ebp
jne 0x100f71fe
mov dword [esp + 0x10], ebx
cmp esi, edi
mov dword [esp + 0xc0], 0xffffffff
je 0x100f7220
push ebx
mov ecx, esi
call fcn.1000bc70
add esi, 0x10
cmp esi, edi
jne 0x100f720d
mov esi, dword [esp + 0x54]
push esi
call fcn.101307a0
mov ecx, dword [esp + 0xbc]
mov eax, dword [esp + 0x14]
add esp, 4
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb4
ret