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

Disassembly:
sub esp, 0x7c
push ebx
push ebp
push esi
push edi
xor ebx, ebx
xor esi, esi
xor edi, edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edi
cmp word [esp + 0xa0], bx
je 0x1007b714
mov eax, dword [esp + 0x90]
mov eax, dword [eax]
mov eax, dword [eax]
test byte [eax + 0x4c], 0x40
jne 0x1007be88
mov ecx, dword [esp + 0x94]
movzx eax, word [ecx]
mov dword [esp + 0x2c], eax
cmp eax, 0x3f
ja 0x1007be88
movzx ecx, ax
xor edx, edx
mov eax, 1
mov byte [esp + 0x12], 1
call fcn.10084690
add eax, 0xffffffff
mov dword [esp + 0x50], ebx
mov dword [esp + 0x64], eax
mov ecx, edx
mov eax, dword [esp + 0x9c]
adc ecx, 0xffffffff
xor ebp, ebp
mov dword [esp + 0x40], ecx
mov cl, byte [esp + 0x12]
and eax, 0x800
mov dword [esp + 0x68], eax
mov eax, ebx
setne al
mov dword [esp + 0x54], ebx
add eax, 0x182
mov dword [esp + 0x34], ebp
movzx eax, ax
xor edx, edx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x60], eax
mov dword [esp + 0x38], edx
lea esp, [esp]
mov eax, dword [esp + 0x40]
cmp edi, eax
ja 0x1007be1d
jb 0x1007b7a8
cmp esi, dword [esp + 0x64]
jae 0x1007be21
movzx eax, word [esp + 0xa0]
cmp edx, eax
jg 0x1007be19
test edx, edx
jle 0x1007b7d2
mov edi, dword [esp + 0x48]
or ebp, dword [ebx + 8]
or edi, dword [ebx + 0xc]
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x34], ebp
cmp edx, eax
jge 0x1007b7f5
cmp word [esp + 0x68], 0
mov eax, dword [esp + 0x98]
mov eax, dword [eax + 0x18]
mov ebx, dword [eax + edx*4]
mov dword [esp + 0x20], ebx
jne 0x1007be04
jmp 0x1007b800
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x20], ebx
mov edx, dword [ebx + 0x24]
test edx, 0x400
jne 0x1007be13
xor eax, eax
xor ebp, ebp
mov word [ebx + 0x1e], ax
movzx eax, byte [ebx + 0x10]
lea ecx, [eax + eax*8]
mov eax, dword [esp + 0x90]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*8 + 0x34]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x4c], eax
movzx eax, cx
test eax, eax
je 0x1007b95c
mov ebx, dword [esp + 0x94]
add ebx, 4
lea esp, [esp]
mov eax, 1
xor edx, edx
mov ecx, ebp
call fcn.10084690
mov ecx, eax
mov dword [esp + 0x44], eax
mov eax, edx
mov dword [esp + 0x24], edx
and ecx, esi
and eax, edi
or ecx, eax
jne 0x1007b8f9
push dword [ebx]
call fcn.10044080
mov edi, eax
add esp, 4
cmp byte [edi], 0xa2
jne 0x1007b8f5
mov edx, dword [esp + 0x4c]
cmp dword [edi + 0x1c], edx
jne 0x1007b8f5
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x34]
movzx eax, ax
not ecx
push 0
push eax
mov eax, dword [esp + 0x50]
not eax
push eax
movsx eax, word [edi + 0x20]
push ecx
push eax
mov eax, dword [esp + 0xa4]
push edx
add eax, 0x50
push eax
call fcn.1006d320
mov esi, eax
add esp, 0x1c
test esi, esi
je 0x1007b8f1
movzx ecx, word [esi + 0xc]
cmp ecx, 1
jne 0x1007b91d
mov edx, dword [esp + 0x20]
xor eax, eax
movzx edx, word [edx + 0x28]
test edx, edx
je 0x1007b919
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + 0x30]
cmp esi, dword [ecx]
je 0x1007b915
inc eax
add ecx, 4
cmp eax, edx
jl 0x1007b8e5
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
inc ebp
movzx eax, cx
add ebx, 0x18
cmp ebp, eax
jl 0x1007b850
mov edi, dword [esp + 0x20]
mov edx, dword [edi + 0x24]
jmp 0x1007b960
movzx ecx, word [esi + 0xc]
cmp eax, edx
jge 0x1007b8f1
test cl, 0x82
je 0x1007b942
cmp word [edi + 0x20], 0
jl 0x1007b942
push dword [esi]
mov eax, dword [esp + 0x94]
push dword [ebx]
push dword [eax]
call fcn.10042780
add esp, 0xc
test eax, eax
je 0x1007b8f1
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
or esi, dword [esp + 0x44]
or edi, dword [esp + 0x24]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edi
jmp 0x1007b8f9
mov edi, dword [esp + 0x20]
test edx, 0x1000
jne 0x1007bcc7
test edx, 0x100
je 0x1007b98f
mov dl, byte [esp + 0x12]
mov eax, 1
mov dword [esp + 0x3c], 0
mov dword [esp + 0x44], 0
jmp 0x1007b9bf
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x3c], ecx
test ecx, ecx
je 0x1007be88
test byte [ecx + 0x38], 4
jne 0x1007be88
cmp byte [ecx + 0x36], 0
movzx eax, word [ecx + 0x32]
setne dl
mov dword [esp + 0x44], eax
movzx eax, word [ecx + 0x34]
mov byte [esp + 0x12], dl
xor cl, cl
movzx eax, ax
xor ebp, ebp
mov byte [esp + 0x1e], cl
mov byte [esp + 0x1d], cl
mov byte [esp + 0x1f], cl
mov dword [esp + 0x30], ebp
mov dword [esp + 0x5c], eax
test eax, eax
je 0x1007bcc7
mov dword [esp + 0x24], ebp
movzx esi, word [edi + 0x18]
mov bh, 1
mov byte [esp + 0x13], bh
cmp ebp, esi
jge 0x1007ba52
movzx eax, word [edi + 0x2a]
cmp ebp, eax
jl 0x1007ba52
mov ebx, dword [edi + 0x30]
mov eax, dword [esp + 0x60]
mov edi, dword [ebx + ebp*4]
movzx ecx, word [edi + 0xc]
and eax, ecx
test ax, ax
je 0x1007ba2a
and ecx, 0x100
neg ecx
sbb cl, cl
not cl
and cl, dl
mov dl, cl
mov byte [esp + 0x12], dl
jmp 0x1007bc87
test cl, 1
je 0x1007ba4e
mov edi, dword [edi]
lea edx, [ebp + 1]
cmp edx, esi
jge 0x1007ba4e
lea ecx, [ebp + 1]
lea ecx, [ebx + ecx*4]
mov edi, edi
mov eax, dword [ecx]
cmp dword [eax], edi
je 0x1007ba7c
inc edx
add ecx, 4
cmp edx, esi
jl 0x1007ba40
mov bh, byte [esp + 0x13]
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x1007ba80
mov eax, dword [edx + 4]
movsx ecx, word [eax + ebp*2]
mov eax, dword [edx + 0x1c]
mov dword [esp + 0x28], ecx
mov bl, byte [eax + ebp]
mov eax, dword [edx + 0xc]
mov byte [esp + 0x13], bl
movsx eax, word [eax + 0x28]
cmp ecx, eax
jne 0x1007ba8c
jmp 0x1007ba85
xor bh, bh
jmp 0x1007ba52
mov byte [esp + 0x13], 0
or ecx, 0xffffffff
mov dword [esp + 0x28], ecx
mov bl, byte [esp + 0x12]
test bl, bl
je 0x1007babb
test ecx, ecx
js 0x1007babb
cmp ebp, esi
mov esi, dword [esp + 0x28]
jl 0x1007babf
mov eax, dword [edx + 0xc]
mov ecx, esi
shl ecx, 4
mov eax, dword [eax + 4]
mov al, byte [eax + ecx + 0xc]
neg al
sbb al, al
and al, bl
mov byte [esp + 0x12], al
jmp 0x1007babf
mov esi, dword [esp + 0x28]
xor edi, edi
test bh, bh
je 0x1007bca4
mov ebp, dword [esp + 0x94]
add ebp, 4
mov ecx, dword [esp + 0x2c]
movzx eax, cx
cmp edi, eax
jge 0x1007bca0
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.10084690
mov ecx, eax
mov dword [esp + 0x6c], eax
and ecx, dword [esp + 0x18]
mov eax, edx
and eax, dword [esp + 0x14]
or ecx, eax
mov dword [esp + 0x58], edx
jne 0x1007bbde
mov edx, dword [ebp]
test edx, edx
je 0x1007bb33
mov eax, dword [edx + 4]
test eax, 0x41000
je 0x1007bb33
test eax, 0x40000
je 0x1007bb2c
mov edx, dword [edx + 0x14]
mov edx, dword [edx + 4]
jmp 0x1007bb2f
mov edx, dword [edx + 0xc]
test edx, edx
jne 0x1007bb13
mov al, byte [esp + 0x9c]
and al, 0xc0
neg al
sbb al, al
and bh, al
mov bl, bh
cmp esi, 0xffffffff
jl 0x1007bb67
cmp byte [edx], 0xa2
jne 0x1007bbde
mov eax, dword [esp + 0x4c]
cmp dword [edx + 0x1c], eax
jne 0x1007bbde
movsx eax, word [edx + 0x20]
cmp eax, esi
jmp 0x1007bb99
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x24]
push dword [esp + 0x4c]
mov eax, dword [eax + 0x28]
push dword [eax + ecx + 4]
call fcn.10044080
add esp, 4
push eax
push edx
call fcn.10044080
add esp, 4
push eax
push 0
call fcn.100427d0
add esp, 0x10
test eax, eax
jne 0x1007bbde
cmp esi, 0xffffffff
je 0x1007bbf7
mov eax, dword [esp + 0x90]
push dword [ebp]
mov esi, dword [eax]
push esi
call fcn.100425f0
mov ecx, eax
add esp, 8
test ecx, ecx
jne 0x1007bbc0
mov eax, dword [esi]
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x3c]
mov bh, bl
mov edx, dword [esp + 0x30]
mov eax, dword [eax + 0x20]
push dword [eax + edx*4]
push dword [ecx]
call fcn.10059460
add esp, 8
test eax, eax
je 0x1007bbf3
inc edi
add ebp, 0x18
test bh, bh
je 0x1007bca0
mov esi, dword [esp + 0x28]
jmp 0x1007bad3
mov esi, dword [esp + 0x28]
test byte [esp + 0x9c], 0x40
mov ebp, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
lea eax, [ebp + 1]
mov word [ecx + 0x1e], ax
jne 0x1007bc61
cmp byte [esp + 0x1e], 0
lea eax, [edi + edi*2]
mov ecx, dword [esp + 0x94]
mov al, byte [ecx + eax*8 + 0x10]
je 0x1007bc33
mov cl, byte [esp + 0x13]
xor cl, byte [esp + 0x1d]
cmp cl, al
jne 0x1007bca4
jmp 0x1007bc61
mov dl, al
xor dl, byte [esp + 0x13]
mov byte [esp + 0x1d], dl
je 0x1007bc5b
mov ecx, dword [esp + 0x38]
mov eax, 1
xor edx, edx
call fcn.10084690
mov ecx, dword [esp + 0xa8]
or dword [ecx], eax
or dword [ecx + 4], edx
mov cl, 1
mov byte [esp + 0x1e], cl
cmp esi, 0xffffffff
jne 0x1007bc6b
mov byte [esp + 0x1f], 1
mov eax, dword [esp + 0x18]
or eax, dword [esp + 0x6c]
mov dl, byte [esp + 0x12]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
or eax, dword [esp + 0x58]
mov dword [esp + 0x14], eax
add dword [esp + 0x24], 0x18
inc ebp
mov dword [esp + 0x30], ebp
cmp ebp, dword [esp + 0x5c]
jge 0x1007bcb8
mov edi, dword [esp + 0x20]
jmp 0x1007b9e6
mov ebp, dword [esp + 0x30]
test ebp, ebp
je 0x1007bcb3
mov eax, dword [esp + 0x44]
movzx eax, ax
cmp ebp, eax
jge 0x1007bcb8
mov byte [esp + 0x12], 0
mov cl, byte [esp + 0x1f]
test cl, cl
je 0x1007bcc7
mov byte [esp + 0x12], 1
jmp 0x1007bcd2
cmp byte [esp + 0x12], 0
je 0x1007bdec
mov ebx, dword [esp + 0x20]
xor ebp, ebp
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x14]
or eax, dword [ebx + 8]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x54]
or eax, dword [ebx + 0xc]
mov dword [esp + 0x54], eax
test cx, cx
je 0x1007bdf4
mov esi, dword [esp + 0x94]
add esi, 4
mov dword [esp + 0x24], esi
lea ecx, [ecx]
mov eax, 1
xor edx, edx
mov ecx, ebp
call fcn.10084690
mov ecx, eax
mov dword [esp + 0x5c], eax
and ecx, dword [esp + 0x18]
mov eax, edx
and eax, edi
mov dword [esp + 0x58], edx
or ecx, eax
jne 0x1007bdd1
mov esi, dword [esi]
test esi, esi
je 0x1007bd5a
mov eax, dword [esp + 0x90]
add eax, 0x1e8
push esi
push eax
call fcn.1006d220
add esp, 8
mov edi, eax
mov ebx, edx
jmp 0x1007bd5e
xor edi, edi
xor ebx, ebx
mov eax, edi
or eax, ebx
jne 0x1007bd9f
mov byte [esp + 0x84], 1
mov dword [esp + 0x74], fcn.10020740
mov dword [esp + 0x78], 0x10058110
mov dword [esp + 0x88], eax
test esi, esi
je 0x1007bd9f
lea eax, [esp + 0x70]
push esi
push eax
call fcn.10078760
add esp, 8
cmp byte [esp + 0x84], 0
je 0x1007bdcd
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
not ecx
not eax
and ecx, edi
mov edi, dword [esp + 0x14]
and eax, ebx
or ecx, eax
jne 0x1007bdd1
mov eax, dword [esp + 0x18]
or eax, dword [esp + 0x5c]
or edi, dword [esp + 0x58]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edi
jmp 0x1007bdd1
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
inc ebp
add dword [esp + 0x24], 0x18
mov esi, dword [esp + 0x24]
movzx eax, cx
cmp ebp, eax
jl 0x1007bd10
jmp 0x1007bdf0
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov cl, byte [esp + 0x12]
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x34]
inc edx
mov dword [esp + 0x38], edx
test cl, cl
jne 0x1007b790
jmp 0x1007be19
cmp byte [ebx + 0x1d], 0
jne 0x1007be27
mov eax, dword [esp + 0x40]
cmp esi, dword [esp + 0x64]
jne 0x1007be33
cmp edi, eax
jne 0x1007be33
mov al, byte [esp + 0x2c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
test cl, cl
jne 0x1007be7e
mov ecx, dword [esp + 0x2c]
movzx eax, cx
lea ebx, [eax - 1]
test ebx, ebx
jle 0x1007be88
mov eax, 1
xor edx, edx
mov ecx, ebx
call fcn.10084690
add eax, 0xffffffff
mov ecx, eax
adc edx, 0xffffffff
and ecx, esi
mov esi, edx
and esi, edi
cmp ecx, eax
jne 0x1007be69
cmp esi, edx
je 0x1007be74
dec ebx
test ebx, ebx
jle 0x1007be88
mov esi, dword [esp + 0x18]
jmp 0x1007be45
pop edi
pop esi
pop ebp
mov al, bl
pop ebx
add esp, 0x7c
ret
pop edi
pop esi
pop ebp
or al, 0xff
pop ebx
add esp, 0x7c
ret
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x7c
ret