Function at 0x101f1100
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x17c
mov eax, dword [0x102f0d80]
xor eax, esp
mov dword [esp + 0x178], eax
push ebx
push ebp
mov ebp, dword [esp + 0x188]
mov ecx, 0xfffffff6
push esi
push edi
movsx edi, word [esp + 0x1a8]
mov dword [esp + 0x44], ebp
mov eax, ecx
shl eax, 0xa
movzx esi, ax
lea eax, [esi + 0x400]
movzx edx, ax
test ecx, ecx
jle 0x101f114d
sub esi, 0x66
sub edx, 0x66
jmp 0x101f1162
jne 0x101f1154
sub edx, 0x66
jmp 0x101f1162
add esi, 0x66
movzx esi, si
cmp ecx, 0xffffffff
je 0x101f1162
add edx, 0x66
movsx eax, si
imul eax, edi
sar eax, 0x10
mov dword [esp + ecx*4 + 0xc0], eax
movsx eax, dx
imul eax, edi
sar eax, 0x10
mov dword [esp + ecx*4 + 0x110], eax
inc ecx
cmp ecx, 9
jle 0x101f1130
movsx edx, word [esp + 0x1b4]
mov edi, 1
xor eax, eax
mov dword [esp + 0x20], edi
xor ecx, ecx
mov dword [esp + 0x48], eax
sub edx, edi
mov word [esp + 0x138], cx
mov dword [esp + 0x18], edx
js 0x101f1453
mov eax, dword [esp + 0x194]
lea ecx, [esp + 0x148]
mov ebx, dword [esp + 0x1a0]
add ecx, edx
sub dword [esp + 0x198], eax
sub ebx, eax
mov dword [esp + 0x10], ecx
lea esi, [eax + edx*2]
mov dword [esp + 0x1a0], ebx
lea eax, [esp + 0x148]
mov dword [esp + 0x14], esi
sub dword [esp + 0x19c], eax
nop word [eax + eax]
movsx ebp, word [ebx + esi]
xor ebx, ebx
add ebp, dword [esp + 0x1a4]
mov dword [esp + 0x3c], ebp
test edi, edi
jle 0x101f13ac
mov eax, dword [esp + 0x198]
mov edx, dword [esp + 0x19c]
mov dword [esp + 0x28], ecx
movzx eax, word [esi + eax]
movzx edx, byte [ecx + edx]
movsx esi, word [esp + 0x1ac]
cwde
mov dword [esp + 0x24], eax
lea eax, [esp + 0x48]
lea eax, [eax + edi*4]
mov dword [esp + 0x40], edx
lea edi, [esp + edi*2 + 0x138]
mov dword [esp + 0x30], esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x1c], edi
nop
movsx eax, word [esp + ebx*2 + 0x138]
mov edi, dword [esp + 0x14]
imul eax, edx
sar eax, 8
movzx edx, ax
movzx eax, word [edi]
mov esi, edx
sub eax, esi
cwde
imul eax, dword [esp + 0x30]
sar eax, 0x10
cmp eax, 9
jle 0x101f1291
mov eax, 9
jmp 0x101f129c
cmp eax, 0xfffffff6
mov edi, 0xfffffff6
cmovl eax, edi
mov edi, dword [esp + 0x1c]
mov byte [ecx], al
mov cx, word [esp + eax*4 + 0xc0]
add cx, dx
movzx edx, cx
mov dword [esp + 0x34], edx
movzx edx, cx
mov cx, word [esp + eax*4 + 0x110]
add cx, si
mov word [esp + ebx*2 + 0x138], dx
movzx esi, cx
movzx ecx, cx
mov word [edi], cx
lea ecx, [eax + 1]
mov dword [esp + 0x38], esi
cmp ecx, 4
jl 0x101f12f4
jne 0x101f12e8
mov edi, 0x118
jmp 0x101f131b
cwde
imul esi, eax, 0x2b
add esi, 0x6c
lea edi, [esi + 0x2b]
jmp 0x101f1320
cmp eax, 0xfffffffc
jg 0x101f1316
jne 0x101f1306
movzx edi, byte [ebp + 1]
mov esi, 0x118
jmp 0x101f1320
cwde
mov esi, 0x6c
imul eax, eax, 0x2b
sub esi, eax
lea edi, [esi - 0x2b]
jmp 0x101f1320
movzx edi, byte [eax + ebp + 5]
movzx esi, byte [eax + ebp + 4]
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x1b0]
mov edx, dword [esp + ebx*4 + 0x48]
add dword [esp + 0x1c], 2
movzx eax, word [ecx]
sub eax, dword [esp + 0x34]
movsx ecx, ax
imul ecx, ecx
movsx eax, si
movsx esi, bp
imul eax, esi
mov ebp, dword [esp + 0x3c]
imul ecx, dword [esp + 0x24]
add ecx, edx
add eax, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + ebx*4 + 0x48], eax
inc ebx
movzx eax, word [ecx]
sub eax, dword [esp + 0x38]
movsx ecx, ax
imul ecx, ecx
movsx eax, di
mov edi, dword [esp + 0x20]
imul eax, esi
imul ecx, dword [esp + 0x24]
add ecx, edx
mov edx, dword [esp + 0x2c]
add eax, ecx
mov ecx, dword [esp + 0x28]
add ecx, 0x10
mov dword [esp + 0x28], ecx
mov dword [edx], eax
add edx, 4
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x40]
cmp ebx, edi
jl 0x101f1260
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
cmp edi, 2
jg 0x101f151e
test edi, edi
jle 0x101f13e2
mov eax, edi
mov esi, edi
shl eax, 4
add eax, edx
lea edx, [esp + 0x148]
add edx, eax
nop dword [eax + eax]
mov al, byte [ecx]
lea ecx, [ecx + 0x10]
inc al
lea edx, [edx + 0x10]
mov byte [edx - 0x10], al
sub esi, 1
jne 0x101f13d0
add edi, edi
mov dword [esp + 0x20], edi
cmp edi, 4
jge 0x101f141f
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x148]
mov eax, edi
mov esi, 4
shl eax, 4
add eax, dword [esp + 0x18]
add ecx, eax
sub esi, edi
nop word [eax + eax]
mov al, byte [edx]
lea edx, [edx + 0x10]
mov byte [ecx], al
lea ecx, [ecx + 0x10]
sub esi, 1
jne 0x101f1410
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
dec ecx
mov esi, dword [esp + 0x14]
dec edx
mov ebx, dword [esp + 0x1a0]
sub esi, 2
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ecx
test edx, edx
jns 0x101f1200
mov eax, dword [esp + 0x48]
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x50]
mov ecx, 0x7fffffff
cmp eax, ecx
cmovl ecx, eax
mov eax, dword [esp + 0x4c]
cmp ecx, eax
mov edx, eax
cmovle edx, ecx
xor ebx, ebx
cmp ecx, eax
mov eax, 2
mov ecx, 3
setg bl
cmp edx, esi
cmovg ebx, eax
cmovle esi, edx
mov eax, dword [esp + 0x54]
mov edx, 4
cmp esi, eax
cmovg ebx, ecx
cmovle eax, esi
mov ecx, dword [esp + 0x58]
cmp eax, ecx
mov esi, dword [esp + 0x64]
cmovg ebx, edx
cmovle ecx, eax
mov eax, dword [esp + 0x5c]
mov edx, 5
cmp ecx, eax
cmovg ebx, edx
cmovle eax, ecx
mov ecx, dword [esp + 0x60]
mov edx, 6
cmp eax, ecx
cmovle ecx, eax
cmovg ebx, edx
movsx edx, word [esp + 0x1b4]
cmp ecx, esi
mov eax, 7
cmovg ebx, eax
cmovle esi, ecx
test edx, edx
jle 0x101f14fd
mov eax, ebx
lea ecx, [esp + 0x148]
and eax, 3
shl eax, 4
push edx
add ecx, eax
push ecx
push ebp
call fcn.1011e240
add esp, 0xc
mov ecx, dword [esp + 0x188]
mov eax, esi
pop edi
sar ebx, 2
add byte [ebp], bl
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1011bad5
add esp, 0x17c
ret
xor edx, edx
mov edi, dword [esp + edx*4 + 0x58]
mov esi, dword [esp + edx*4 + 0x48]
cmp esi, edi
jle 0x101f155b
movzx ecx, word [esp + edx*2 + 0x138]
mov ax, word [esp + edx*2 + 0x140]
mov word [esp + edx*2 + 0x138], ax
lea eax, [edx + 4]
mov word [esp + edx*2 + 0x140], cx
mov ecx, edi
mov dword [esp + edx*4 + 0x48], edi
mov dword [esp + edx*4 + 0x58], esi
jmp 0x101f1561
mov ecx, esi
mov eax, edx
mov esi, edi
mov dword [esp + edx*4 + 0x88], esi
mov dword [esp + edx*4 + 0x78], ecx
mov dword [esp + edx*4 + 0x68], eax
inc edx
cmp edx, 4
jl 0x101f1520
nop word [eax + eax]
mov edx, dword [esp + 0x78]
mov ecx, 0x7fffffff
cmp dword [esp + 0x88], ecx
mov esi, dword [esp + 0x8c]
cmovl ecx, dword [esp + 0x88]
xor eax, eax
test edx, edx
cmovle edx, eax
mov eax, dword [esp + 0x7c]
xor ebx, ebx
mov edi, edx
cmp ecx, esi
cmovle esi, ecx
setg bl
cmp edx, eax
cmovl edi, eax
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x90]
setl cl
cmp esi, eax
jle 0x101f15d4
mov esi, eax
mov ebx, 2
mov eax, dword [esp + 0x80]
cmp edi, eax
jge 0x101f15e6
mov edi, eax
mov ecx, 2
mov eax, dword [esp + 0x94]
cmp esi, eax
jle 0x101f15f8
mov esi, eax
mov ebx, 3
mov eax, dword [esp + 0x84]
cmp edi, eax
jge 0x101f160a
mov edi, eax
mov ecx, 3
cmp esi, edi
jge 0x101f165d
mov eax, dword [esp + ebx*4 + 0x68]
xor eax, 4
mov dword [esp + ebx*4 + 0x88], 0x7fffffff
mov dword [esp + ecx*4 + 0x68], eax
mov eax, dword [esp + ebx*4 + 0x58]
mov dword [esp + ecx*4 + 0x48], eax
mov ax, word [esp + ebx*2 + 0x140]
add ebx, ebx
mov word [esp + ecx*2 + 0x138], ax
mov dword [esp + ecx*4 + 0x78], 0
add ecx, ecx
movups xmm0, xmmword [esp + ebx*8 + 0x148]
movups xmmword [esp + ecx*8 + 0x148], xmm0
jmp 0x101f1580
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0x20]
sar eax, 2
add byte [ecx], al
mov eax, dword [esp + 0x6c]
sar eax, 2
add byte [ecx + 0x10], al
mov eax, dword [esp + 0x70]
sar eax, 2
add byte [ecx + 0x20], al
mov eax, dword [esp + 0x74]
sar eax, 2
add byte [ecx + 0x30], al
jmp 0x101f1423