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

Disassembly:
sub esp, 0x54
mov eax, dword [esp + 0x58]
push ebx
mov ebx, dword [esp + 0x60]
push ebp
mov ecx, dword [eax + 0x198]
mov ebp, ebx
mov edx, dword [eax + 0x10]
mov dword [esp + 0x10], ecx
mov ecx, dword [eax + 0x64]
mov dword [esp + 0x28], ecx
mov ecx, dword [eax + 0x1a0]
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax + 0x60]
push esi
lea esi, [eax + 0x108]
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax + 4]
push edi
mov edi, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x10], ecx
add ecx, eax
mov dword [esp + 0x68], eax
add eax, edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x14], edx
add edx, edi
mov edi, dword [esp + 0x70]
add edi, ebx
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x6c], eax
mov eax, dword [esi + 0x28]
lea ecx, [edi - 8]
mov dword [esp + 0x54], esi
mov dword [esp + 0x4c], edx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x1c], eax
cmp ebx, ecx
jae 0x107b1e97
push dword [esp + 0x74]
push dword [esp + 0x44]
push ebx
call fcn.107b7d04
mov ecx, dword [esp + 0x50]
push 8
push dword [esp + 0x40]
lea esi, [ecx + eax*4]
mov ecx, dword [esp + 0x24]
mov eax, dword [esi]
cmp eax, dword [esp + 0x7c]
mov dword [esp + 0x4c], eax
cmovb ecx, dword [esp + 0x38]
add eax, ecx
mov dword [esp + 0x74], ecx
push ebx
mov dword [esp + 0x68], eax
call fcn.107b7d04
mov ecx, dword [esp + 0x30]
add esp, 0x18
mov edx, dword [esp + 0x68]
mov edi, ebx
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
mov dword [esp + 0x34], eax
cmp dword [esp + 0x34], edx
mov eax, dword [esp + 0x10]
cmovb eax, dword [esp + 0x24]
add eax, dword [esp + 0x34]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x10]
sub edi, eax
mov dword [esp + 0x70], edi
sub edi, dword [esp + 0x6c]
inc edi
cmp edi, edx
mov dword [esp + 0x5c], edi
cmovb eax, dword [esp + 0x24]
add eax, edi
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x70]
mov dword [ecx], eax
mov dword [esi], eax
mov eax, edx
sub eax, edi
lea esi, [ebx + 1]
dec eax
mov dword [esp + 0x20], esi
cmp eax, 3
sbb ecx, ecx
inc ecx
cmp dword [esp + 0x14], edi
mov edi, dword [esp + 0x3c]
sbb eax, eax
neg eax
test eax, ecx
je 0x107b1a67
push esi
call fcn.107afedc
push dword [esp + 0x5c]
mov esi, eax
call fcn.107afedc
pop ecx
pop ecx
cmp eax, esi
jne 0x107b1a6b
mov edx, dword [esp + 0x68]
mov eax, edi
push dword [esp + 0x28]
cmp dword [esp + 0x60], edx
cmovb eax, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x60]
add eax, 4
push edi
push eax
lea eax, [ebx + 5]
push eax
call fcn.107b6e28
mov ebx, dword [esp + 0x34]
add esp, 0x14
lea esi, [eax + 4]
mov eax, ebx
sub eax, ebp
xor edx, edx
jmp 0x107b1cf1
mov dword [esp + 0x20], esi
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x34], eax
jbe 0x107b1b2e
push dword [esp + 0x48]
call fcn.107afef8
push ebx
mov esi, eax
mov dword [esp + 0x64], edx
call fcn.107afef8
pop ecx
pop ecx
cmp esi, eax
jne 0x107b1b2a
cmp dword [esp + 0x5c], edx
jne 0x107b1b2a
mov ecx, dword [esp + 0x68]
cmp dword [esp + 0x34], ecx
mov esi, dword [esp + 0x28]
mov eax, esi
cmovb eax, dword [esp + 0x4c]
mov dword [esp + 0x58], eax
mov eax, edi
cmovb eax, dword [esp + 0x2c]
push esi
push eax
mov eax, dword [esp + 0x50]
add eax, 8
push edi
push eax
lea eax, [ebx + 8]
push eax
call fcn.107b6e28
mov ecx, dword [esp + 0x84]
add esp, 0x14
sub ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x48]
cmp dword [esp + 0x58], edx
lea esi, [eax + 8]
mov dword [esp + 0x5c], ecx
sbb ecx, ecx
neg ecx
cmp ebp, ebx
sbb eax, eax
neg eax
test eax, ecx
je 0x107b1b21
mov edi, dword [esp + 0x58]
mov al, byte [ebx - 1]
dec edx
cmp al, byte [edx]
jne 0x107b1b1d
dec ebx
inc esi
cmp edi, edx
sbb ecx, ecx
neg ecx
cmp ebp, ebx
sbb eax, eax
neg eax
test eax, ecx
jne 0x107b1b03
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x5c]
jmp 0x107b1cde
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x38], eax
jbe 0x107b1e7a
push dword [esp + 0x50]
call fcn.107afedc
push ebx
mov esi, eax
call fcn.107afedc
pop ecx
pop ecx
cmp esi, eax
jne 0x107b1e7a
push 8
push dword [esp + 0x34]
push dword [esp + 0x28]
call fcn.107b7d04
mov ecx, dword [esp + 0x24]
add esp, 0xc
mov edx, dword [esp + 0x18]
mov esi, dword [ecx + eax*4]
cmp esi, dword [esp + 0x68]
mov ecx, dword [esp + 0x10]
cmovb ecx, dword [esp + 0x24]
add ecx, esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x70]
inc ecx
mov dword [edx + eax*4], ecx
cmp esi, dword [esp + 0x14]
jbe 0x107b1c46
push dword [esp + 0x20]
call fcn.107afef8
push dword [esp + 0x4c]
mov esi, eax
mov dword [esp + 0x64], edx
call fcn.107afef8
pop ecx
pop ecx
cmp eax, esi
jne 0x107b1c46
cmp edx, dword [esp + 0x5c]
jne 0x107b1c46
mov ecx, dword [esp + 0x68]
cmp dword [esp + 0x58], ecx
mov esi, dword [esp + 0x28]
mov eax, esi
cmovb eax, dword [esp + 0x4c]
mov dword [esp + 0x50], eax
mov eax, edi
cmovb eax, dword [esp + 0x2c]
push esi
push eax
mov eax, dword [esp + 0x50]
add eax, 8
push edi
push eax
lea eax, [ebx + 9]
push eax
call fcn.107b6e28
mov ebx, dword [esp + 0x34]
add esp, 0x14
mov edx, dword [esp + 0x48]
lea esi, [eax + 8]
mov eax, dword [esp + 0x70]
sub eax, dword [esp + 0x58]
inc eax
mov dword [esp + 0x20], eax
jmp 0x107b1c2f
lea eax, [ebx - 1]
mov dword [esp + 0x5c], eax
lea ecx, [edx - 1]
mov al, byte [eax]
mov edx, ecx
cmp al, byte [ecx]
jne 0x107b1cda
mov ebx, dword [esp + 0x5c]
inc esi
cmp dword [esp + 0x50], edx
sbb ecx, ecx
neg ecx
cmp ebp, ebx
sbb eax, eax
neg eax
test eax, ecx
jne 0x107b1c14
jmp 0x107b1cda
mov ecx, dword [esp + 0x68]
cmp dword [esp + 0x38], ecx
mov esi, dword [esp + 0x28]
mov eax, esi
cmovb eax, dword [esp + 0x4c]
mov dword [esp + 0x58], eax
mov eax, edi
cmovb eax, dword [esp + 0x2c]
push esi
push eax
mov eax, dword [esp + 0x58]
add eax, 4
push edi
push eax
lea eax, [ebx + 4]
push eax
call fcn.107b6e28
mov edx, dword [esp + 0x84]
add esp, 0x14
sub edx, dword [esp + 0x38]
mov dword [esp + 0x20], edx
lea esi, [eax + 4]
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x58], eax
sbb ecx, ecx
neg ecx
cmp ebp, ebx
sbb eax, eax
neg eax
test eax, ecx
je 0x107b1cde
mov edi, dword [esp + 0x60]
add edi, dword [esp + 0x38]
mov edx, dword [esp + 0x58]
lea eax, [ebx - 1]
mov dword [esp + 0x60], eax
lea ecx, [edi - 1]
mov al, byte [eax]
mov edi, ecx
cmp al, byte [ecx]
jne 0x107b1cd6
mov ebx, dword [esp + 0x60]
inc esi
cmp edx, edi
sbb ecx, ecx
neg ecx
cmp ebp, ebx
sbb eax, eax
neg eax
test eax, ecx
jne 0x107b1caf
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x1c], eax
mov eax, ebx
sub eax, ebp
mov dword [esp + 0x6c], edx
add edx, 2
lea ecx, [esi - 3]
push ecx
push edx
push ebp
push eax
push dword [esp + 0x64]
call fcn.107b9af8
add ebx, esi
lea eax, [edi - 8]
add esp, 0x14
mov ebp, ebx
cmp ebx, eax
ja 0x107b1e8f
mov ecx, dword [esp + 0x70]
push dword [esp + 0x74]
mov esi, dword [esp + 0x14]
push dword [esp + 0x44]
lea edi, [ecx + 2]
add ecx, 2
add esi, ecx
push esi
call fcn.107b7d04
mov ecx, dword [esp + 0x50]
push 8
push dword [esp + 0x40]
push esi
mov dword [ecx + eax*4], edi
call fcn.107b7d04
mov ecx, dword [esp + 0x30]
lea esi, [ebx - 2]
push dword [esp + 0x8c]
push dword [esp + 0x5c]
mov dword [ecx + eax*4], edi
mov edi, ebx
sub edi, dword [esp + 0x30]
push esi
add edi, 0xfffffffe
call fcn.107b7d04
mov ecx, dword [esp + 0x68]
push 8
push dword [esp + 0x58]
push esi
mov dword [ecx + eax*4], edi
call fcn.107b7d04
mov ecx, dword [esp + 0x48]
add esp, 0x30
mov dword [ecx + eax*4], edi
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x10]
mov eax, ebx
sub eax, dword [esp + 0x10]
mov edx, eax
mov dword [esp + 0x5c], eax
sub edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x68]
cmp edx, eax
mov dword [esp + 0x70], edx
cmovb esi, dword [esp + 0x24]
sub eax, edx
add esi, edx
dec eax
cmp eax, 3
mov dword [esp + 0x60], esi
sbb ecx, ecx
inc ecx
cmp dword [esp + 0x14], edx
sbb eax, eax
neg eax
test eax, ecx
je 0x107b1e84
push esi
call fcn.107afedc
push ebx
mov esi, eax
call fcn.107afedc
pop ecx
pop ecx
cmp esi, eax
jne 0x107b1e84
mov edx, dword [esp + 0x68]
mov eax, edi
push dword [esp + 0x28]
cmp dword [esp + 0x74], edx
cmovb eax, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x68]
add eax, 4
push edi
push eax
lea eax, [ebx + 4]
push eax
call fcn.107b6e28
mov ecx, dword [esp + 0x30]
lea esi, [eax + 4]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x80], ecx
lea ecx, [esi - 3]
push ecx
push 0
push ebx
push 0
push dword [esp + 0x78]
mov dword [esp + 0x44], eax
call fcn.107b9af8
push dword [esp + 0x9c]
push dword [esp + 0x6c]
push ebx
call fcn.107b7d04
mov ecx, dword [esp + 0x78]
mov ebp, dword [esp + 0x90]
push 8
push dword [esp + 0x68]
mov dword [ecx + eax*4], ebp
push ebx
call fcn.107b7d04
mov ecx, dword [esp + 0x58]
add ebx, esi
add esp, 0x40
mov dword [ecx + eax*4], ebp
lea eax, [edi - 8]
mov ebp, ebx
cmp ebx, eax
jbe 0x107b1d89
jmp 0x107b1e8f
mov eax, ebx
sub eax, ebp
sar eax, 8
inc eax
add ebx, eax
lea eax, [edi - 8]
cmp ebx, eax
jb 0x107b1962
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x6c]
sub edi, ebp
push edi
push ebp
push dword [esi + 0xc]
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], eax
call fcn.107c1994
add esp, 0xc
add dword [esi + 0xc], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret