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

Disassembly:
sub esp, 0x30
cmp dword [esp + 0x48], 0
jle 0x101d4e04
mov ecx, dword [esp + 0x4c]
mov eax, 1
add ecx, 0xfffffff8
shl ax, cl
push ebx
movsx ecx, ax
mov eax, dword [esp + 0x3c]
push ebp
mov ebp, dword [esp + 0x3c]
add eax, eax
push esi
push edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x3c], eax
lea eax, [ebp - 2]
movzx eax, word [eax]
lea ebx, [ebp + 2]
mov dword [esp + 0x14], eax
lea edi, [ebp + 4]
movzx eax, word [ebp + 6]
lea esi, [ebp + 6]
mov dword [esp + 0x1c], eax
lea ecx, [ebp - 4]
movzx eax, word [edi]
add ebp, 0xfffffff4
mov dword [esp + 0x20], eax
movzx eax, word [ebx]
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x44]
movzx edx, word [ebp]
sub eax, edx
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x24], eax
movzx eax, word [ecx]
mov ecx, ebp
mov dword [esp + 0x2c], eax
sub eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x5c]
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x28], eax
movzx eax, word [ecx - 6]
lea ecx, [ebp - 8]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x50]
push ebp
mov ebp, dword [esp + 0x34]
movzx edx, byte [eax]
shl dx, cl
movsx eax, dx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x3c], eax
lea ecx, [edx + 8]
lea eax, [edx + 0xc]
push eax
lea eax, [edx + 0xa]
push eax
push ecx
push esi
push edi
push ebx
push edx
lea eax, [edx - 2]
push eax
lea eax, [edx - 4]
push eax
lea eax, [edx - 6]
push eax
lea eax, [edx - 8]
push eax
lea eax, [edx - 0xa]
push eax
movzx eax, word [ebp]
lea ebx, [edx - 0xe]
sub eax, dword [esp + 0x48]
cdq
mov edi, eax
movzx eax, word [ecx]
mov ecx, dword [esp + 0x78]
xor edi, edx
push ebp
sub edi, edx
push ebx
movzx ebp, word [ecx]
sub eax, ebp
cdq
mov esi, eax
movzx eax, word [ecx + 0xa]
xor esi, edx
sub esi, edx
sub eax, ebp
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x80]
cmp eax, dword [esp + 0x4c]
setle cl
movzx eax, word [edx + 0xc]
dec cl
sub eax, ebp
cdq
xor eax, edx
sub eax, edx
cmp eax, dword [esp + 0x4c]
setle al
dec al
or cl, al
cmp esi, dword [esp + 0x4c]
mov esi, dword [esp + 0x4c]
mov eax, 0xffffffff
movzx ecx, cl
cmovg ecx, eax
movzx eax, word [ebx]
mov ebx, dword [esp + 0x50]
sub eax, ebx
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x80]
cmp eax, esi
setle al
dec al
or cl, al
cmp edi, esi
movzx ecx, cl
mov eax, 0xffffffff
cmovg ecx, eax
movzx eax, word [edx - 0xa]
sub eax, ebx
cdq
xor eax, edx
sub eax, edx
cmp eax, esi
setle al
dec al
or cl, al
not cl
movzx eax, cl
push eax
mov eax, dword [esp + 0x58]
sub eax, ebx
cdq
mov esi, eax
mov eax, dword [esp + 0x60]
sub eax, ebp
xor esi, edx
sub esi, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, dword [esp + 0x50]
mov eax, dword [esp + 0x5c]
setle cl
sub eax, ebp
cdq
dec cl
xor eax, edx
mov ebp, 0xffffffff
sub eax, edx
mov edx, dword [esp + 0x50]
cmp eax, edx
setle al
dec al
or cl, al
cmp dword [esp + 0x64], edx
movzx ecx, cl
cmovg ecx, ebp
cmp dword [esp + 0x68], edx
setle al
dec al
or cl, al
movzx ebx, cl
mov eax, dword [esp + 0x84]
cmp esi, edx
mov esi, dword [esp + 0x54]
cmovg ebx, ebp
movzx ebp, word [eax - 8]
mov eax, ebp
sub eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, dword [esp + 0x50]
mov eax, dword [esp + 0x94]
setle cl
sub ebp, dword [esp + 0x58]
dec cl
or bl, cl
not bl
movzx ecx, bl
push ecx
movzx ecx, byte [eax]
mov eax, ebp
cdq
mov ebx, eax
mov eax, dword [esp + 0x64]
sub eax, dword [esp + 0x78]
xor ebx, edx
sub ebx, edx
cdq
mov edi, eax
mov eax, dword [esp + 0x88]
xor edi, edx
sub edi, edx
push ecx
movzx edx, word [eax]
sub esi, edx
mov eax, esi
cdq
mov ecx, eax
mov eax, dword [esp + 0x74]
sub eax, dword [esp + 0x7c]
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
mov eax, eax
test eax, eax
jns 0x101d4d55
add eax, 1
sar eax, 1
lea esi, [eax + ecx*2]
mov ebp, dword [esp + 0x80]
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0xa4]
movzx edx, byte [eax]
mov eax, dword [esp + 0x64]
lea ecx, [ecx - 8]
shl dx, cl
movsx ecx, dx
cmp esi, ecx
mov esi, 0xffffffff
setle cl
sub eax, dword [esp + 0x68]
cdq
dec cl
xor eax, edx
sub eax, edx
cmp eax, ebp
setle al
dec al
or cl, al
mov eax, dword [esp + 0x60]
cmp edi, ebp
movzx edx, cl
cmovg edx, esi
cmp dword [esp + 0x6c], ebp
setle cl
dec cl
or dl, cl
cmp dword [esp + 0x70], ebp
movzx ecx, dl
cmovg ecx, esi
sub eax, dword [esp + 0x74]
cdq
xor eax, edx
sub eax, edx
cmp eax, ebp
setle al
dec al
or cl, al
cmp ebx, ebp
movzx eax, cl
cmovg eax, esi
not al
movzx eax, al
push eax
call fcn.101d4070
mov ebp, dword [esp + 0x90]
add esp, 0x4c
add ebp, dword [esp + 0x3c]
sub dword [esp + 0x58], 1
mov dword [esp + 0x44], ebp
jne 0x101d4b26
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret