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

Disassembly:
sub esp, 0x54
mov eax, dword [esp + 0x58]
push ebx
push ebp
push esi
mov ecx, dword [eax]
xor esi, esi
cmp word [esp + 0x74], si
push edi
mov eax, dword [ecx]
mov dword [esp + 0x18], esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
je 0x10079de9
mov cl, byte [eax + 0x3c]
test cl, cl
jns 0x10079de9
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x54
ret
mov edx, dword [esp + 0x6c]
mov cx, word [edx]
cmp cx, 0x3f
mov dword [esp + 0x40], ecx
jbe 0x10079e04
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x54
ret
and ecx, 0xffff
mov eax, 1
xor edx, edx
mov byte [esp + 0x13], 1
mov dword [esp + 0x20], ecx
call fcn.1007e4f0
add eax, 0xffffffff
mov dword [esp + 0x54], esi
adc edx, 0xffffffff
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], edx
mov dword [esp + 0x58], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x60]
cmp eax, ecx
ja 0x1007a3cb
jb 0x10079e63
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x5c]
cmp ecx, eax
jae 0x1007a3cb
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x28]
and eax, 0xffff
cmp edx, eax
jg 0x1007a3cb
xor edi, edi
cmp edx, edi
jle 0x10079e9c
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x4c]
mov esi, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
or ebx, esi
mov esi, dword [esp + 0x50]
or esi, ecx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], esi
cmp edx, eax
jge 0x10079eac
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0x18]
mov esi, dword [ecx + edx*4]
jmp 0x10079eb0
mov esi, dword [esp + 0x7c]
mov eax, dword [esi + 0x24]
mov dword [esp + 0x18], esi
test ah, 4
jne 0x1007a3c4
xor eax, eax
mov dword [esp + 0x1c], edi
mov al, byte [esi + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x68]
shl edx, 4
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x20]
cmp eax, edi
mov edx, dword [edx + ecx + 0x38]
mov dword [esp + 0x2c], edx
jle 0x1007a01d
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x1c]
mov eax, 1
xor edx, edx
call fcn.1007e4f0
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
mov ebx, eax
mov ebp, edx
and eax, ecx
mov ecx, ebp
and ecx, edi
or eax, ecx
jne 0x10079ffd
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x24]
mov ecx, dword [eax + 4]
mov eax, dword [edx + ecx]
push eax
call fcn.10059b80
mov edi, eax
add esp, 4
cmp byte [edi], 0x9a
jne 0x10079ffd
mov ecx, dword [esp + 0x2c]
mov eax, dword [edi + 0x1c]
cmp eax, ecx
jne 0x10079ffd
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
movsx ecx, word [edi + 0x20]
push 0
push 0x82
not eax
not edx
push eax
mov eax, dword [esp + 0x74]
push edx
mov edx, dword [esp + 0x3c]
push ecx
add eax, 0x148
push edx
push eax
call fcn.10075330
mov esi, eax
add esp, 0x1c
test esi, esi
je 0x10079ff9
test byte [esi + 0x12], 2
je 0x10079fe5
cmp word [edi + 0x20], 0
jl 0x10079fe5
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x24]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + edx]
mov edx, dword [esp + 0x68]
push ecx
mov eax, dword [edx]
push eax
call fcn.10059950
add esp, 8
test eax, eax
jne 0x10079fb6
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 8]
mov edi, dword [eax]
mov eax, dword [esp + 0x68]
mov edx, dword [esi]
mov ecx, dword [eax]
push edx
push ecx
call fcn.10059950
add esp, 8
test eax, eax
jne 0x10079fd5
mov edx, dword [esp + 0x30]
mov eax, dword [edx + 8]
mov eax, dword [eax]
push eax
push edi
call fcn.1002b0f0
add esp, 8
test eax, eax
jne 0x10079ff9
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
or ecx, ebx
or eax, ebp
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], eax
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
inc eax
add edx, 0x18
cmp eax, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], edx
jl 0x10079eee
mov eax, dword [esi + 0x24]
test ah, 0x10
jne 0x1007a2bb
test ah, 1
je 0x1007a03f
xor ebp, ebp
mov eax, 1
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
jmp 0x1007a06f
mov ebp, dword [esi + 0x1c]
test ebp, ebp
mov dword [esp + 0x34], ebp
je 0x10079dfa
test byte [ebp + 0x38], 4
jne 0x10079dfa
mov cx, word [ebp + 0x32]
mov ax, word [ebp + 0x34]
mov word [esp + 0x38], cx
mov cl, byte [ebp + 0x36]
test cl, cl
setne byte [esp + 0x13]
mov edx, eax
xor edi, edi
and edx, 0xffff
mov byte [esp + 0x16], 0
mov byte [esp + 0x15], 0
mov byte [esp + 0x17], 0
mov dword [esp + 0x1c], edi
mov dword [esp + 0x3c], edx
jle 0x1007a2bb
xor ecx, ecx
mov cx, word [esi + 0x18]
cmp edi, ecx
jge 0x1007a0c9
cmp word [esi + 0x1a], 0
jne 0x1007a0c9
mov eax, dword [esi + 0x2c]
mov esi, dword [eax + edi*4]
xor eax, eax
mov ax, word [esi + 0x12]
test al, 0x82
je 0x1007a0c9
test al, al
jns 0x1007a2a5
mov byte [esp + 0x13], 0
jmp 0x1007a2a5
test ebp, ebp
je 0x1007a0ef
mov edx, dword [ebp + 4]
movsx eax, word [edx + edi*2]
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x24], eax
mov dl, byte [edi + edx]
mov byte [esp + 0x14], dl
mov edx, dword [ebp + 0xc]
movsx edx, word [edx + 0x24]
cmp eax, edx
jne 0x1007a0fb
jmp 0x1007a0f4
mov byte [esp + 0x14], 0
or eax, 0xffffffff
mov dword [esp + 0x24], eax
mov dl, byte [esp + 0x13]
test dl, dl
je 0x1007a121
test eax, eax
jl 0x1007a121
cmp edi, ecx
jl 0x1007a121
mov ecx, dword [ebp + 0xc]
lea edx, [eax + eax*2]
mov eax, dword [ecx + 4]
mov cl, byte [eax + edx*8 + 0x14]
test cl, cl
jne 0x1007a121
mov byte [esp + 0x13], 0
mov ebp, dword [esp + 0x6c]
xor esi, esi
mov bl, 1
xor edi, edi
cmp esi, dword [esp + 0x20]
jge 0x1007a1d0
mov eax, 1
xor edx, edx
mov ecx, esi
call fcn.1007e4f0
mov ecx, dword [esp + 0x44]
and eax, ecx
mov ecx, dword [esp + 0x48]
and edx, ecx
or eax, edx
jne 0x1007a1c4
mov ecx, dword [ebp + 4]
mov edx, dword [edi + ecx]
push edx
call fcn.10059b80
mov ecx, dword [esp + 0x78]
add esp, 4
test ch, 3
jne 0x1007a16d
xor bl, bl
cmp byte [eax], 0x9a
jne 0x1007a1c4
mov ecx, dword [esp + 0x2c]
cmp dword [eax + 0x1c], ecx
jne 0x1007a1c4
movsx ecx, word [eax + 0x20]
mov eax, dword [esp + 0x24]
cmp ecx, eax
jne 0x1007a1c4
test eax, eax
jl 0x1007a200
push edx
mov edx, dword [esp + 0x6c]
mov eax, dword [edx]
push eax
call fcn.10059950
add esp, 8
test eax, eax
jne 0x1007a1a6
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 8]
mov edx, dword [esp + 0x34]
mov ecx, dword [edx + 0x20]
mov edx, dword [esp + 0x1c]
mov ecx, dword [ecx + edx*4]
mov edx, dword [eax]
push ecx
push edx
call fcn.1002b0f0
add esp, 8
test eax, eax
je 0x1007a200
inc esi
add edi, 0x18
test bl, bl
jne 0x1007a12b
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x1007a1e5
mov eax, dword [esp + 0x38]
and eax, 0xffff
cmp ecx, eax
jge 0x1007a1ea
mov byte [esp + 0x13], 0
mov al, byte [esp + 0x17]
test al, al
je 0x1007a2bb
mov byte [esp + 0x13], 1
jmp 0x1007a2c7
mov eax, dword [esp + 0x68]
test byte [eax + 0x23], 1
jne 0x1007a26a
mov al, byte [esp + 0x16]
test al, al
je 0x1007a22a
mov edx, dword [ebp + 4]
mov al, byte [esp + 0x14]
mov bl, byte [esp + 0x15]
lea ecx, [esi + esi*2]
xor al, bl
cmp al, byte [edx + ecx*8 + 0xc]
jne 0x1007a1d0
jmp 0x1007a26a
mov ecx, dword [ebp + 4]
lea eax, [esi + esi*2]
mov al, byte [ecx + eax*8 + 0xc]
mov cl, byte [esp + 0x14]
xor al, cl
mov byte [esp + 0x15], al
je 0x1007a265
mov ecx, dword [esp + 0x28]
mov eax, 1
xor edx, edx
call fcn.1007e4f0
mov ecx, dword [esp + 0x80]
mov edi, dword [ecx]
or edi, eax
mov eax, dword [ecx + 4]
or eax, edx
mov dword [ecx], edi
mov dword [ecx + 4], eax
mov byte [esp + 0x16], 1
mov eax, dword [esp + 0x24]
test eax, eax
jge 0x1007a277
mov byte [esp + 0x17], 1
mov eax, 1
xor edx, edx
mov ecx, esi
call fcn.1007e4f0
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x34]
or ecx, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x44], ecx
or eax, edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x48], eax
inc edi
cmp edi, edx
mov dword [esp + 0x1c], edi
jge 0x1007a1ea
mov esi, dword [esp + 0x18]
jmp 0x1007a096
mov al, byte [esp + 0x13]
test al, al
je 0x1007a3ad
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x54]
mov dword [esp + 0x1c], 0
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
or ecx, eax
mov eax, dword [esp + 0x20]
or esi, edx
mov dword [esp + 0x58], ecx
test eax, eax
mov dword [esp + 0x54], esi
jle 0x1007a3ad
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x34], 0
mov eax, 1
xor edx, edx
call fcn.1007e4f0
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
mov ebx, edx
mov ebp, eax
mov ecx, ebx
and eax, edi
and ecx, esi
or eax, ecx
jne 0x1007a38d
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x34]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x68]
add ecx, 0x44
mov eax, dword [eax + edx]
push eax
push ecx
mov dword [esp + 0x44], eax
call fcn.10074180
mov esi, eax
mov edi, edx
mov edx, esi
add esp, 8
or edx, edi
jne 0x1007a365
mov eax, dword [esp + 0x3c]
push eax
call fcn.10059c50
add esp, 4
test eax, eax
je 0x1007a38d
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
not eax
not ecx
and eax, esi
and ecx, edi
or eax, ecx
jne 0x1007a38d
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
or ecx, ebp
or eax, ebx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
inc ecx
add edx, 0x18
cmp ecx, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x34], edx
jl 0x1007a305
mov ecx, dword [esp + 0x28]
mov al, byte [esp + 0x13]
inc ecx
test al, al
mov dword [esp + 0x28], ecx
jne 0x10079e41
jmp 0x1007a3cb
mov al, byte [esi + 0x1d]
test al, al
jne 0x1007a3e3
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x44]
cmp eax, ecx
jne 0x1007a3ef
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x48]
cmp eax, edx
jne 0x1007a3ef
mov al, byte [esp + 0x40]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
mov al, byte [esp + 0x13]
test al, al
jne 0x1007a44b
mov eax, dword [esp + 0x20]
lea ebx, [eax - 1]
test ebx, ebx
jle 0x10079dfa
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
mov eax, 1
xor edx, edx
mov ecx, ebx
call fcn.1007e4f0
add eax, 0xffffffff
adc edx, 0xffffffff
mov ecx, eax
mov esi, edx
and ecx, edi
and esi, ebp
cmp ecx, eax
jne 0x1007a432
cmp esi, edx
je 0x1007a441
dec ebx
test ebx, ebx
jg 0x1007a40e
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x54
ret
pop edi
pop esi
mov al, bl
pop ebp
pop ebx
add esp, 0x54
ret
pop edi
pop esi
pop ebp
or al, 0xff
pop ebx
add esp, 0x54
ret