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

Disassembly:
sub esp, 0x17c
mov eax, dword [0x102e5cc0]
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 0x101e98fd
sub esi, 0x66
sub edx, 0x66
jmp 0x101e9912
jne 0x101e9904
sub edx, 0x66
jmp 0x101e9912
add esi, 0x66
movzx esi, si
cmp ecx, 0xffffffff
je 0x101e9912
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 0x101e98e0
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 0x101e9c03
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 0x101e9b5c
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 0x101e9a41
mov eax, 9
jmp 0x101e9a4c
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 0x101e9aa4
jne 0x101e9a98
mov edi, 0x118
jmp 0x101e9acb
cwde
imul esi, eax, 0x2b
add esi, 0x6c
lea edi, [esi + 0x2b]
jmp 0x101e9ad0
cmp eax, 0xfffffffc
jg 0x101e9ac6
jne 0x101e9ab6
movzx edi, byte [ebp + 1]
mov esi, 0x118
jmp 0x101e9ad0
cwde
mov esi, 0x6c
imul eax, eax, 0x2b
sub esi, eax
lea edi, [esi - 0x2b]
jmp 0x101e9ad0
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 0x101e9a10
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
cmp edi, 2
jg 0x101e9cce
test edi, edi
jle 0x101e9b92
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 0x101e9b80
add edi, edi
mov dword [esp + 0x20], edi
cmp edi, 4
jge 0x101e9bcf
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 0x101e9bc0
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 0x101e99b0
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 0x101e9cad
mov eax, ebx
lea ecx, [esp + 0x148]
and eax, 3
shl eax, 4
push edx
add ecx, eax
push ecx
push ebp
call fcn.1010efe0
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.1010d06f
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 0x101e9d0b
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 0x101e9d11
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 0x101e9cd0
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 0x101e9d84
mov esi, eax
mov ebx, 2
mov eax, dword [esp + 0x80]
cmp edi, eax
jge 0x101e9d96
mov edi, eax
mov ecx, 2
mov eax, dword [esp + 0x94]
cmp esi, eax
jle 0x101e9da8
mov esi, eax
mov ebx, 3
mov eax, dword [esp + 0x84]
cmp edi, eax
jge 0x101e9dba
mov edi, eax
mov ecx, 3
cmp esi, edi
jge 0x101e9e0d
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 0x101e9d30
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 0x101e9bd3