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

Disassembly:
sub esp, 0x50
push ebx
mov ebx, dword [esp + 0x60]
push ebp
mov ebp, dword [esp + 0x60]
push esi
mov esi, dword [esp + 0x74]
mov dword [esp + 0xc], edx
mov edx, esi
sub edx, ebx
mov dword [esp + 0x34], ecx
sar edx, 2
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], ebp
push edi
mov edi, dword [esp + 0x74]
mov dword [esp + 0x1c], edi
test edx, edx
jle 0x1010497f
mov eax, edi
mov ecx, 0x7fffffff
sub eax, ebp
cmp edx, ecx
cmovl ecx, edx
cmp eax, ecx
cmovl ecx, eax
jmp 0x10104988
mov ecx, edi
sub ecx, ebp
cmp ecx, edx
cmovl ecx, edx
mov eax, ecx
lea ecx, [esi - 4]
cdq
sub eax, edx
mov dword [esp + 0x50], ecx
sar eax, 1
lea edx, [ebx + eax*4]
add eax, ebp
mov dword [esp + 0x58], eax
lea eax, [edi - 1]
mov dword [esp + 0x5c], edx
mov edx, dword [edx]
push edx
push dword [ebx]
mov dword [esp + 0x54], eax
mov eax, dword [ecx]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x30], edx
mov dword [esp + 0x1c], eax
call fcn.100fbec0
mov ecx, dword [esp + 0x10]
push dword [esp + 0x14]
test al, al
je 0x101049f6
push dword [esp + 0x2c]
call fcn.100fbec0
test al, al
je 0x101049e1
lea ecx, [esp + 0x54]
jmp 0x10104a25
push dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
push dword [ebx]
call fcn.100fbec0
lea edx, [esp + 0x64]
jmp 0x10104a1c
push dword [ebx]
call fcn.100fbec0
test al, al
je 0x10104a07
lea ecx, [esp + 0x64]
jmp 0x10104a25
push dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
push dword [esp + 0x2c]
call fcn.100fbec0
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, ebx
mov dword [esp + 0x30], eax
mov edx, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x28], ecx
mov eax, dword [edx]
push eax
push dword [ecx]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x1c], eax
call fcn.100fbec0
test al, al
je 0x10104a9f
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov ecx, edi
mov ebp, dword [esp + 0x24]
add ebx, 4
inc ebp
mov dword [esp + 0x6c], ebx
push esi
mov dword [esp + 0x6c], ebp
push dword [ebx]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebx
call fcn.100fbec0
test al, al
jne 0x10104a65
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
sub esi, 4
dec edi
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], edi
push dword [esi]
push dword [esp + 0x18]
call fcn.100fbec0
test al, al
je 0x10104ae8
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
sub esi, 4
dec edi
mov dword [esp + 0x78], esi
mov ecx, ebp
mov dword [esp + 0x74], edi
push dword [esi]
push ebx
call fcn.100fbec0
test al, al
jne 0x10104ac6
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
mov edx, esi
sub edx, ebx
sar edx, 2
test edx, edx
jle 0x10104b08
mov ecx, edi
mov eax, 0x7fffffff
sub ecx, ebp
cmp edx, eax
cmovl eax, edx
cmp ecx, eax
cmovl eax, ecx
jmp 0x10104b11
mov eax, edi
sub eax, ebp
cmp eax, edx
cmovl eax, edx
test eax, eax
jle 0x10104bc0
mov ecx, dword [esi]
mov eax, dword [ebx]
mov edx, dword [esp + 0x34]
mov dword [ebx], ecx
mov dword [esi], eax
mov cl, byte [edi]
mov al, byte [ebp]
mov byte [ebp], cl
mov ecx, dword [esp + 0x30]
mov byte [edi], al
mov ebp, dword [esp + 0x68]
cmp edx, ebp
mov ebx, dword [esp + 0x6c]
mov esi, dword [esp + 0x78]
sete al
mov edi, dword [esp + 0x74]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x1c], edi
cmp ecx, ebx
je 0x10104b87
test al, al
jne 0x10104b87
cmp edx, edi
sete al
cmp ecx, esi
je 0x10104b76
test al, al
jne 0x10104b76
xor cl, cl
lea eax, [esp + 0x64]
test cl, cl
lea edx, [esp + 0x3c]
cmove eax, edx
jmp 0x10104b8b
mov cl, 1
lea eax, [esp + 0x64]
test cl, cl
lea edx, [esp + 0x3c]
cmove eax, edx
jmp 0x10104b8b
lea eax, [esp + 0x70]
mov edx, dword [eax + 8]
add ebx, 4
inc ebp
mov dword [esp + 0x44], edx
mov eax, dword [eax + 4]
mov ecx, ebx
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x68], ebp
mov dword [esp + 0x28], ebx
jmp 0x10104a43
mov eax, dword [esp + 0x38]
pop edi
pop esi
mov dword [eax + 4], ebp
pop ebp
mov dword [eax + 8], ebx
pop ebx
add esp, 0x50
ret 0x1c