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

Disassembly:
sub esp, 0x34
cmp dword [esp + 0x4c], 0
jle 0x101d5467
mov edx, dword [esp + 0x38]
push ebx
push ebp
add edx, 0xfffffffd
push esi
mov dword [esp + 0xc], edx
push edi
nop dword [eax]
movzx eax, byte [edx + 2]
lea ebp, [edx + 2]
mov dword [esp + 0x14], eax
lea ecx, [edx + 6]
movzx eax, byte [ecx]
lea esi, [edx + 5]
mov dword [esp + 0x20], eax
lea edi, [edx + 4]
movzx eax, byte [esi]
lea ebx, [edx + 3]
movzx edx, byte [ebx]
mov dword [esp + 0x1c], eax
movzx eax, byte [edi]
mov dword [esp + 0x38], eax
sub eax, edx
mov dword [esp + 0x18], edx
cdq
xor eax, edx
mov dword [esp + 0x30], ebx
sub eax, edx
mov ebx, dword [esp + 0x54]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x24], eax
movzx eax, byte [edx + 1]
mov dword [esp + 0x3c], eax
sub eax, dword [esp + 0x14]
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x28], eax
movzx eax, byte [edx]
dec edx
mov dword [esp + 0x2c], eax
movzx eax, byte [edx]
mov dword [esp + 0x34], eax
movzx eax, byte [ebx]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x40], eax
lea eax, [ebx + 9]
push eax
lea eax, [ebx + 8]
push eax
lea eax, [ebx + 7]
mov ebx, dword [esp + 0x38]
push eax
push ecx
mov ecx, dword [esp + 0x20]
push esi
push edi
push ebx
push ebp
lea eax, [ecx + 1]
push eax
push ecx
push edx
lea ebp, [ecx - 2]
lea eax, [ecx - 3]
push ebp
push eax
movzx eax, byte [eax]
lea ebx, [ecx - 4]
sub eax, dword [esp + 0x48]
cdq
mov edi, eax
movzx eax, byte [ecx + 7]
sub eax, dword [esp + 0x4c]
xor edi, edx
sub edi, edx
cdq
mov esi, eax
xor esi, edx
sub esi, edx
mov edx, ecx
push ebx
movzx eax, byte [edx + 9]
sub eax, dword [esp + 0x50]
cdq
xor eax, edx
sub eax, edx
cmp eax, 1
setle cl
mov edx, dword [esp + 0x48]
dec cl
movzx eax, byte [edx + 8]
sub eax, dword [esp + 0x50]
cdq
xor eax, edx
sub eax, edx
cmp eax, 1
setle al
dec al
or cl, al
movzx eax, byte [ebx]
mov ebx, dword [esp + 0x4c]
cmp esi, 1
movzx ecx, cl
mov esi, 0xffffffff
cmovg ecx, esi
sub eax, ebx
cdq
xor eax, edx
sub eax, edx
cmp eax, 1
setle al
dec al
or cl, al
movzx eax, byte [ebp]
cmp edi, 1
movzx ecx, cl
mov ebp, dword [esp + 0x6c]
cmovg ecx, esi
sub eax, ebx
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, ebx
cdq
mov esi, eax
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x54]
xor esi, edx
sub esi, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 1
mov eax, dword [esp + 0x5c]
setle cl
sub eax, dword [esp + 0x54]
cdq
dec cl
xor eax, edx
sub eax, edx
mov edx, 0xffffffff
cmp eax, 1
setle al
dec al
or cl, al
cmp dword [esp + 0x60], 1
movzx ecx, cl
cmovg ecx, edx
cmp dword [esp + 0x64], 1
setle al
dec al
or cl, al
cmp esi, 1
movzx ebx, cl
mov eax, ebp
cmovg ebx, edx
sub eax, dword [esp + 0x50]
cdq
xor eax, edx
sub eax, edx
cmp eax, 1
mov eax, dword [esp + 0x94]
setle cl
sub ebp, dword [esp + 0x68]
dec cl
or bl, cl
not bl
movzx ecx, bl
push ecx
movzx ecx, byte [eax]
mov eax, ebp
cdq
mov edi, eax
mov eax, dword [esp + 0x5c]
sub eax, dword [esp + 0x78]
xor edi, edx
sub edi, edx
cdq
mov esi, eax
mov eax, dword [esp + 0x7c]
sub eax, dword [esp + 0x78]
xor esi, edx
sub esi, edx
cdq
xor eax, edx
push ecx
sub eax, edx
mov ecx, eax
test ecx, ecx
jns 0x101d53bb
add ecx, 1
sar ecx, 1
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x5c]
cdq
xor eax, edx
mov ebx, dword [esp + 0x84]
sub eax, edx
lea edx, [ecx + eax*2]
mov eax, dword [esp + 0x94]
movzx ecx, byte [eax]
mov eax, dword [esp + 0x64]
cmp edx, ecx
setle cl
sub eax, dword [esp + 0x60]
cdq
dec cl
xor eax, edx
sub eax, edx
cmp eax, ebx
setle al
dec al
or cl, al
mov eax, dword [esp + 0x70]
cmp esi, ebx
movzx edx, cl
mov esi, 0xffffffff
cmovg edx, esi
cmp dword [esp + 0x68], ebx
setle cl
dec cl
or dl, cl
cmp dword [esp + 0x6c], ebx
movzx ecx, dl
cmovg ecx, esi
sub eax, dword [esp + 0x80]
cdq
xor eax, edx
sub eax, edx
cmp eax, ebx
setle al
dec al
or cl, al
cmp edi, ebx
movzx eax, cl
cmovg eax, esi
not al
movzx eax, al
push eax
call fcn.101d3a00
mov edx, dword [esp + 0x58]
add esp, 0x48
add edx, dword [esp + 0x4c]
sub dword [esp + 0x5c], 1
mov dword [esp + 0x10], edx
jne 0x101d51c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret