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

Disassembly:
sub esp, 0x50
push ebx
mov ebx, dword [esp + 0x68]
push ebp
mov ebp, dword [esp + 0x60]
push esi
mov esi, dword [esp + 0x74]
mov eax, esi
push edi
mov edi, dword [esp + 0x6c]
sub eax, edi
sar eax, 2
mov dword [esp + 0x14], edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], ebp
test eax, eax
jle 0x100dc975
mov edx, ebx
mov dword [esp + 0x2c], eax
sub edx, ebp
mov ecx, 0x7fffffff
cmp eax, ecx
mov dword [esp + 0x28], edx
cmovl ecx, eax
lea eax, [esp + 0x34]
cmp edx, ecx
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x28]
cmovl eax, ecx
mov ecx, dword [eax]
jmp 0x100dc97e
mov ecx, ebx
sub ecx, ebp
cmp ecx, eax
cmovl ecx, eax
mov eax, ecx
lea ecx, [esi - 4]
cdq
sub eax, edx
mov dword [esp + 0x50], ecx
sar eax, 1
lea edx, [edi + eax*4]
add eax, ebp
mov dword [esp + 0x58], eax
lea eax, [ebx - 1]
mov dword [esp + 0x5c], edx
mov edx, dword [edx]
push edx
push dword [edi]
mov dword [esp + 0x54], eax
mov eax, dword [ecx]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x30], edx
mov dword [esp + 0x20], eax
call fcn.100d3100
mov ecx, dword [esp + 0x14]
push dword [esp + 0x18]
test al, al
je 0x100dc9ec
push dword [esp + 0x2c]
call fcn.100d3100
test al, al
je 0x100dc9d7
lea ecx, [esp + 0x54]
jmp 0x100dca1b
push dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
push dword [edi]
call fcn.100d3100
lea edx, [esp + 0x64]
jmp 0x100dca12
push dword [edi]
call fcn.100d3100
test al, al
je 0x100dc9fd
lea ecx, [esp + 0x64]
jmp 0x100dca1b
push dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
push dword [esp + 0x2c]
call fcn.100d3100
lea edx, [esp + 0x54]
test al, al
lea ecx, [esp + 0x48]
cmove ecx, edx
mov eax, dword [ecx + 4]
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], eax
mov eax, dword [ecx + 8]
mov ecx, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x44], eax
mov eax, dword [ecx]
mov ecx, dword [esp + 0x14]
push eax
push dword [edi]
mov dword [esp + 0x20], eax
call fcn.100d3100
test al, al
je 0x100dca7b
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
add edi, 4
inc ebp
push esi
mov dword [esp + 0x70], edi
mov ecx, ebx
mov dword [esp + 0x6c], ebp
push dword [edi]
call fcn.100d3100
test al, al
jne 0x100dca51
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x14]
sub esi, 4
dec ebx
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], ebx
push dword [esi]
push dword [esp + 0x1c]
call fcn.100d3100
test al, al
je 0x100dcac4
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
sub esi, 4
dec ebx
mov dword [esp + 0x78], esi
mov ecx, ebp
mov dword [esp + 0x74], ebx
push dword [esi]
push edi
call fcn.100d3100
test al, al
jne 0x100dcaa2
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x1c]
mov ecx, esi
sub ecx, edi
sar ecx, 2
test ecx, ecx
jle 0x100dcae4
mov eax, ebx
mov edx, 0x7fffffff
sub eax, ebp
cmp ecx, edx
cmovl edx, ecx
cmp eax, edx
cmovl edx, eax
jmp 0x100dcaed
mov edx, ebx
sub edx, ebp
cmp edx, ecx
cmovl edx, ecx
test edx, edx
jle 0x100dcb94
mov eax, dword [edi]
mov ecx, dword [esi]
mov dword [edi], ecx
mov dword [esi], eax
mov cl, byte [ebx]
mov al, byte [ebp]
mov byte [ebp], cl
mov ecx, dword [esp + 0x34]
mov byte [ebx], al
mov ebp, dword [esp + 0x68]
cmp ecx, ebp
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x28]
sete dl
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x30], esi
mov dword [esp + 0x20], ebx
cmp eax, edi
je 0x100dcb61
test dl, dl
jne 0x100dcb61
cmp ecx, ebx
sete cl
cmp eax, esi
je 0x100dcb50
test cl, cl
jne 0x100dcb50
test cl, cl
lea eax, [esp + 0x64]
lea edx, [esp + 0x3c]
cmove eax, edx
jmp 0x100dcb65
mov cl, 1
lea eax, [esp + 0x64]
test cl, cl
lea edx, [esp + 0x3c]
cmove eax, edx
jmp 0x100dcb65
lea eax, [esp + 0x70]
mov ecx, dword [eax + 8]
add edi, 4
inc ebp
mov dword [esp + 0x44], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x68], ebp
jmp 0x100dca33
mov eax, dword [esp + 0x38]
mov dword [eax + 8], edi
pop edi
pop esi
mov dword [eax + 4], ebp
pop ebp
pop ebx
add esp, 0x50
ret 0x1c