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

Disassembly:
sub esp, 0x4c
mov eax, dword [esp + 0x64]
shl eax, 2
mov dword [esp + 0x38], eax
test eax, eax
jle 0x101d5196
mov edx, dword [esp + 0x50]
mov ecx, edx
push ebx
push ebp
push esi
mov esi, dword [esp + 0x60]
mov ebp, edx
push edi
lea eax, [esi + esi*4]
lea edi, [eax + edx]
sub ebp, eax
lea eax, [esi + esi*2]
mov dword [esp + 0x10], edi
add eax, eax
mov dword [esp + 0x30], ebp
sub ecx, eax
lea ebx, [esi + esi]
mov dword [esp + 0x24], ecx
lea eax, [esi*8]
sub eax, esi
mov ecx, edx
sub ecx, eax
mov eax, edx
sub eax, esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], eax
lea ecx, [esi + esi*2]
mov eax, edx
sub eax, ebx
mov dword [esp + 0x18], eax
mov eax, edx
sub eax, ecx
mov dword [esp + 0x14], eax
lea eax, [esi*4]
mov dword [esp + 0x4c], eax
nop dword [eax + eax]
mov eax, dword [esp + 0x1c]
lea edi, [ebx + edx]
add ecx, edx
lea ebx, [edx + esi]
movzx edx, byte [edx]
add ebp, esi
mov dword [esp + 0x34], edx
movzx eax, byte [eax]
mov dword [esp + 0x74], eax
movzx eax, byte [ecx]
mov dword [esp + 0x38], eax
movzx eax, byte [edi]
mov dword [esp + 0x28], eax
movzx eax, byte [ebx]
mov dword [esp + 0x54], eax
sub eax, edx
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
movzx eax, byte [edx]
mov dword [esp + 0x44], eax
sub eax, dword [esp + 0x74]
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x40], eax
movzx eax, byte [edx]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x2c], eax
movzx eax, byte [ebp]
mov dword [esp + 0x50], eax
movzx eax, byte [edx]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x10]
lea edx, [eax + esi]
push edx
mov edx, dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x68]
add edx, eax
push edx
push ecx
mov ecx, dword [esp + 0x40]
push edi
push ebx
push eax
push dword [esp + 0x38]
mov eax, dword [esp + 0x30]
push dword [esp + 0x38]
push dword [esp + 0x38]
movzx eax, byte [eax]
push ebp
mov ebp, dword [esp + 0x60]
sub eax, ebp
cdq
mov ebx, eax
movzx eax, byte [ecx]
sub eax, dword [esp + 0xa0]
xor ebx, edx
sub ebx, edx
cdq
mov edi, eax
mov eax, dword [esp + 0x50]
xor edi, edx
sub edi, edx
push ecx
movzx eax, byte [eax]
sub eax, dword [esp + 0xa4]
push dword [esp + 0x54]
cdq
push dword [esp + 0x54]
xor eax, edx
sub eax, edx
cmp eax, 1
mov eax, dword [esp + 0x58]
setle cl
dec cl
movzx eax, byte [eax]
sub eax, dword [esp + 0xac]
cdq
xor eax, edx
mov esi, dword [esp + 0x9c]
sub eax, edx
cmp eax, 1
setle al
dec al
or cl, al
mov eax, dword [esp + 0x48]
cmp edi, 1
movzx ecx, cl
mov edi, 0xffffffff
cmovg ecx, edi
movzx eax, byte [eax + esi]
sub eax, ebp
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x98]
cmp eax, 1
setle al
dec al
or cl, al
cmp ebx, 1
movzx ecx, cl
lea eax, [esi*4]
movzx eax, byte [eax + edx]
cmovg ecx, edi
sub eax, ebp
cdq
xor eax, edx
sub eax, edx
cmp eax, 1
setle al
dec al
or cl, al
not cl
movzx eax, cl
push eax
mov eax, dword [esp + 0x68]
sub eax, dword [esp + 0xb0]
cdq
mov edi, eax
mov eax, dword [esp + 0x64]
sub eax, ebp
xor edi, edx
sub edi, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 1
mov eax, dword [esp + 0x74]
setle cl
sub eax, ebp
cdq
dec cl
xor eax, edx
mov ebp, dword [esp + 0x8c]
sub eax, edx
mov edx, 0xffffffff
cmp eax, 1
setle al
dec al
or cl, al
cmp dword [esp + 0x78], 1
movzx ecx, cl
cmovg ecx, edx
cmp dword [esp + 0x7c], 1
setle al
dec al
or cl, al
cmp edi, 1
mov edi, dword [esp + 0xb0]
mov eax, ebp
movzx ebx, cl
cmovg ebx, edx
sub eax, edi
cdq
xor eax, edx
sub eax, edx
cmp eax, 1
mov eax, dword [esp + 0xac]
setle cl
sub ebp, dword [esp + 0x68]
sub edi, dword [esp + 0x70]
dec cl
or bl, cl
not bl
movzx ecx, bl
push ecx
movzx ecx, byte [eax]
mov eax, ebp
cdq
mov ebp, eax
mov eax, dword [esp + 0x68]
sub eax, dword [esp + 0x94]
xor ebp, edx
sub ebp, edx
cdq
mov ebx, eax
mov eax, edi
xor ebx, edx
sub ebx, edx
cdq
mov edi, eax
mov eax, dword [esp + 0x84]
sub eax, dword [esp + 0x94]
xor edi, edx
sub edi, edx
cdq
xor eax, edx
push ecx
sub eax, edx
mov ecx, eax
test ecx, ecx
jns 0x101d50ca
add ecx, 1
sar ecx, 1
mov eax, dword [esp + 0xac]
lea edx, [ecx + edi*2]
mov edi, dword [esp + 0x9c]
movzx ecx, byte [eax]
mov eax, dword [esp + 0x7c]
cmp edx, ecx
setle cl
sub eax, dword [esp + 0x6c]
cdq
dec cl
xor eax, edx
sub eax, edx
cmp eax, edi
setle al
dec al
or cl, al
mov eax, dword [esp + 0x70]
cmp ebx, edi
movzx edx, cl
mov ebx, 0xffffffff
cmovg edx, ebx
cmp dword [esp + 0x80], edi
setle cl
dec cl
or dl, cl
cmp dword [esp + 0x84], edi
movzx ecx, dl
cmovg ecx, ebx
sub eax, dword [esp + 0x88]
cdq
xor eax, edx
sub eax, edx
cmp eax, edi
setle al
dec al
or cl, al
cmp ebp, edi
movzx eax, cl
cmovg eax, ebx
not al
movzx eax, al
push eax
call fcn.101d3a00
mov edx, dword [esp + 0xa8]
add esp, 0x48
inc edx
mov dword [esp + 0x60], edx
mov ebp, dword [esp + 0x30]
lea ebx, [esi + esi]
inc dword [esp + 0x14]
lea ecx, [esi + esi*2]
inc dword [esp + 0x18]
inc ebp
inc dword [esp + 0x1c]
inc dword [esp + 0x20]
inc dword [esp + 0x24]
inc dword [esp + 0x10]
sub dword [esp + 0x48], 1
mov dword [esp + 0x30], ebp
jne 0x101d4e90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret