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

Disassembly:
push ebp
push edi
mov edi, edx
push esi
push ebx
sub esp, 0x9c
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x14], eax
mov eax, 1
mov dword [esp + 0x2c], ecx
test edx, edx
je 0x7a6768
test edi, edi
je 0x7a6c65
lea edx, [esp + 0x4c]
xor eax, eax
lea esi, [esi]
lea esi, [esi]
cmp dword [edi + 0x18], ecx
ja 0x7a675b
lea edx, [edi + 0x10]
add eax, 1
mov edi, dword [edi + 0x10]
mov dword [edx], edi
test edi, edi
jne 0x7a6750
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x14]
add dword [ecx + 0xc0], eax
cmp dword [edi + 0x18], 1
je 0x7a6c10
mov esi, dword [esp + 0x14]
sub esp, 4
movzx eax, byte [esi + 0xb]
mov byte [esp + 0x24], al
mov eax, esi
mov esi, dword [esi + 0x98]
mov ebp, dword [eax + 0xd8]
mov dword [esp + 0x2c], esi
bswap esi
mov eax, dword [ebp + 0x20]
mov dword [esp + 0xc], esi
mov ebx, dword [eax]
lea eax, [ebp + 0x34]
push 0x30
push ebx
push eax
call sub.msvcrt.dll_memcmp
add esp, 0x10
mov dword [esp + 4], 0
test eax, eax
je 0x7a67cd
mov eax, dword [ebx + 0x10]
add eax, 1
mov dword [esp + 4], eax
cmp word [ebp + 0x28], 0
jne 0x7a6833
mov eax, dword [ebx + 0x60]
test eax, eax
jne 0x7a6c20
mov eax, dword [ebp + 4]
movzx edx, byte [ebp + 0x2b]
test dl, dl
jne 0x7a67f4
mov edx, 3
call fcn.0076c4e0
mov eax, 0xffffffff
xor ebx, ebx
lea esi, [esp + 0x70]
mov word [ebp + 0x28], ax
sub esp, 0xc
add ebx, 1
mov ecx, 1
mov edx, esi
push ebx
mov eax, ebp
call fcn.0079dfb0
add esp, 0x10
cmp eax, 0xffffffff
je 0x7a6803
mov esi, eax
test eax, eax
je 0x7a6833
add esp, 0x9c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp + 0x44]
movzx ebx, byte [esp + 0x20]
mov dword [esp + 0x10], eax
test eax, eax
je 0x7a6af0
mov eax, dword [ebp + 8]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0x10]
lea esi, [eax + 0x18]
mov dword [esp + 0x6c], eax
mov eax, esi
mov dword [esp + 0x58], ebp
cdq
mov eax, ebx
mov dword [esp + 0x18], ebp
mov ecx, edx
mov dword [esp + 0xc], edx
mul esi
imul ecx, ebx
mov dword [esp + 0x38], edi
mov ebx, edi
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
add edx, ecx
add eax, 0x20
mov dword [esp + 0x40], esi
adc edx, 0
mov dword [esp + 8], esi
mov ecx, edx
mov edx, eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x1c], 0
mov edi, edx
mov ebp, ecx
xor eax, 1
and eax, 1
mov byte [esp + 0x30], al
jmp 0x7a6960
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x7a68d7
cmp byte [esp + 0x30], 0
je 0x7a6c00
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x70]
mov edx, esi
mov dword [esp + 0x70], 0
call fcn.0079d4f0
mov ecx, dword [esp + 0x70]
cmp dword [esp + 4], ecx
ja 0x7a6bf4
mov esi, dword [esp + 0xc]
lea eax, [ecx - 1]
imul esi, eax
mul dword [esp + 8]
add edx, esi
mov esi, dword [esp + 0x18]
add eax, 0x38
adc edx, 0
mov esi, dword [esi + 0x68]
test esi, esi
je 0x7a6921
cmp ecx, esi
jae 0x7a6928
mov esi, dword [esp + 0x18]
mov dword [esi + 0x68], ecx
mov esi, dword [esp + 0x18]
sub esp, 0xc
mov ecx, dword [esi + 8]
mov esi, dword [ecx]
push edx
push eax
push dword [esp + 0x3c]
push dword [ebx + 4]
push ecx
call dword [esi + 0xc]
add esp, 0x20
test eax, eax
jne 0x7a6add
and word [ebx + 0x1c], 0xffbf
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x7a69bc
lea esi, [esi]
nop
mov eax, dword [esp + 4]
mov esi, dword [ebx + 0x18]
test eax, eax
jne 0x7a68c5
mov eax, dword [esp + 0xb0]
add dword [esp + 0x10], 1
xor ecx, ecx
test eax, eax
jne 0x7a6be0
lea eax, [esp + 0x58]
sub esp, 4
mov edx, dword [ebx + 4]
push ebp
push edi
push ecx
mov ecx, esi
call fcn.007725d0
add esp, 0x10
test eax, eax
jne 0x7a6add
add edi, dword [esp + 8]
adc ebp, dword [esp + 0xc]
mov dword [esp + 0x1c], ebx
or word [ebx + 0x1c], 0x40
mov ebx, dword [ebx + 0x10]
test ebx, ebx
jne 0x7a6960
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], ebp
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0x18]
test ebx, ebx
je 0x7a6cc2
mov ecx, dword [ebp + 0x68]
test ecx, ecx
jne 0x7a6e30
movzx eax, byte [esp + 0x20]
and eax, 3
mov byte [esp + 4], al
je 0x7a6d26
cmp byte [ebp + 0x31], 0
je 0x7a6ffd
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x7a706b
sub esp, 0xc
mov ebx, 0x200
xor esi, esi
push edx
call eax
add esp, 0x10
cmp eax, 0x1f
jle 0x7a6a3b
cmp eax, 0x10000
mov esi, 0x10000
cmovg eax, esi
mov esi, eax
mov ebx, eax
sar esi, 0x1f
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
push esi
push ebx
add eax, ebx
adc edx, esi
add eax, 0xffffffff
adc edx, 0xffffffff
push edx
push eax
call fcn.0080a460
mov ecx, esi
add esp, 0x10
imul edx, ebx
imul ecx, eax
add ecx, edx
mul ebx
mov ebx, dword [esp + 0x34]
add edx, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
cmp ecx, eax
sbb ebx, edx
jge 0x7a6d16
lea ebx, [esp + 0x58]
xor eax, eax
mov dword [esp + 0x18], ebp
mov esi, dword [esp + 0x30]
mov dword [esp + 0x20], edi
mov ebp, eax
mov edi, dword [esp + 0x34]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x1c]
jmp 0x7a6abe
add esi, dword [esp + 8]
adc edi, dword [esp + 0xc]
add ebp, 1
mov eax, edi
cmp esi, dword [esp + 0x60]
sbb eax, dword [esp + 0x64]
jge 0x7a7055
sub esp, 4
mov ecx, dword [ebx + 0x18]
mov edx, dword [ebx + 4]
push edi
push esi
push dword [esp + 0x38]
mov eax, dword [esp + 0x14]
call fcn.007725d0
add esp, 0x10
test eax, eax
je 0x7a6aa3
add esp, 0x9c
mov esi, eax
pop ebx
mov eax, esi
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 8]
mov dword [esp + 0x70], 0x82067f37
mov dword [esp + 0x74], 0x18e22d00
mov dword [esp + 0x78], eax
mov eax, dword [ebp + 0x70]
mov edx, eax
bswap edx
mov dword [esp + 0x7c], edx
test eax, eax
je 0x7a6ca3
mov eax, dword [ebp + 0x54]
mov edx, dword [ebp + 0x58]
sub esp, 0xc
mov esi, dword [esp + 0x34]
mov dword [esp + 0x90], edx
mov ecx, eax
mov edx, dword [esp + 0x80]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x7c]
add edx, eax
add eax, dword [esp + 0x84]
add eax, edx
add edx, dword [esp + 0x88]
add edx, eax
add eax, ecx
add eax, edx
add edx, dword [esp + 0x90]
add edx, eax
mov ecx, eax
bswap ecx
mov dword [esp + 0x94], ecx
mov ecx, edx
bswap ecx
mov dword [esp + 0x98], ecx
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 8]
mov dword [ebp + 0x24], esi
mov byte [ebp + 0x41], 0
mov dword [ebp + 0x50], edx
mov byte [ebp + 0x2f], 1
mov edx, dword [eax]
push 0
push 0
push 0x20
lea ecx, [esp + 0x88]
push ecx
push eax
call dword [edx + 0xc]
mov esi, eax
add esp, 0x20
test eax, eax
jne 0x7a6826
cmp byte [ebp + 0x30], 0
mov eax, dword [ebp + 8]
je 0x7a684a
mov edx, ebx
sar edx, 2
and edx, 3
je 0x7a684a
call fcn.007670a0
mov esi, eax
test eax, eax
je 0x7a6847
jmp 0x7a6826
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x7a6985
mov ecx, dword [esp + 0x2c]
jmp 0x7a6985
mov esi, dword [ebx + 0x18]
jmp 0x7a696f
add dword [esp + 0x10], 1
mov ecx, dword [esp + 0x2c]
jmp 0x7a6985
mov edx, dword [edi + 0x14]
lea eax, [edi + 4]
call fcn.0076c080
jmp 0x7a677c
call fcn.0077b440
test eax, eax
jne 0x7a6c39
lea eax, [esp + 0x70]
mov edx, eax
mov eax, 4
call fcn.0077ba40
cmp byte [ebp + 0x2b], 0
jne 0x7a6c70
mov eax, dword [ebp + 4]
mov ecx, 4
mov edx, 4
call fcn.0076c500
mov esi, eax
test eax, eax
je 0x7a6c70
cmp eax, 5
jne 0x7a6826
jmp 0x7a67df
xor eax, eax
jmp 0x7a6768
mov edx, dword [esp + 0x70]
mov eax, ebp
call fcn.0076c2a0
cmp byte [ebp + 0x2b], 0
mov eax, dword [ebp + 4]
jne 0x7a67f4
mov edx, 4
mov ecx, 4
call fcn.0076c580
mov eax, dword [ebp + 4]
movzx edx, byte [ebp + 0x2b]
jmp 0x7a67e6
call fcn.0077b440
test eax, eax
jne 0x7a6b1b
lea edx, [ebp + 0x54]
mov eax, 8
call fcn.0077ba40
jmp 0x7a6b1b
mov eax, dword [ebp + 0x44]
mov dword [esp + 4], 0
mov byte [esp + 0x18], 0
mov ecx, eax
mov ebx, edi
mov esi, ecx
jmp 0x7a6d07
add esi, 1
mov ecx, dword [ebx + 0x18]
mov eax, ebp
mov edx, esi
call fcn.0079d8d0
test eax, eax
sete dl
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x7a6fb0
test dl, dl
je 0x7a6fa0
test byte [ebx + 0x1c], 0x40
jne 0x7a6ce0
mov edx, 1
xor eax, eax
jmp 0x7a6cf4
cmp edx, dword [esp + 0x34]
jne 0x7a6d26
cmp eax, dword [esp + 0x30]
je 0x7a6ffd
mov byte [esp + 0x18], 0
mov dword [esp + 4], 0
cmp byte [ebp + 0x2f], 0
je 0x7a702e
mov byte [esp + 0x30], 1
xor esi, esi
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x20], eax
test edx, edx
js 0x7a6dae
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
add eax, dword [esp + 4]
imul ebx, eax
mul dword [esp + 0x40]
add edx, ebx
mov ecx, eax
add ecx, 0x1f
mov ebx, edx
adc ebx, 0
cmp ecx, dword [esp + 0x20]
sbb ebx, dword [esp + 0x24]
jl 0x7a6d91
add eax, 0x20
adc edx, 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
sub esp, 8
lea edx, [ebp + 0x6c]
lea eax, [ebp + 8]
push dword [esp + 0x2c]
push dword [esp + 0x2c]
call fcn.0078b390
mov byte [ebp + 0x2f], 0
add esp, 0x10
mov eax, dword [ebp + 0x44]
cmp byte [esp + 0x30], 0
mov ecx, eax
jne 0x7a6cd4
nop
mov ebx, ecx
test esi, esi
jne 0x7a6826
mov ecx, dword [esp + 0x28]
mov dword [ebp + 0x44], ebx
mov eax, ecx
sar ecx, 0x10
xor al, al
or eax, ecx
mov word [ebp + 0x42], ax
mov eax, dword [esp + 0xb0]
test eax, eax
je 0x7a6dfe
mov eax, dword [esp + 0x2c]
add dword [ebp + 0x3c], 1
mov dword [ebp + 0x48], eax
mov eax, ebp
call fcn.0076c1a0
mov dword [ebp + 0xc], ebx
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
test eax, eax
je 0x7a6826
mov ecx, dword [edi + 4]
mov edx, dword [edi + 0x18]
call fcn.007a6690
mov edi, dword [edi + 0x10]
test edi, edi
je 0x7a6826
mov eax, dword [ebx + 0x58]
test eax, eax
je 0x7a6e1c
jmp 0x7a6e11
mov eax, dword [ebp + 0x24]
sub esp, 0xc
mov esi, 7
add eax, 0x18
mov dword [esp + 0x24], eax
push eax
call fcn.0077bf40
add esp, 0x10
mov ebx, eax
test eax, eax
je 0x7a6826
mov ecx, dword [ebp + 0x68]
mov eax, 0x18
xor edx, edx
cmp ecx, 1
je 0x7a6e7d
mov esi, dword [esp + 0x18]
lea eax, [ecx - 2]
mov ecx, esi
sar ecx, 0x1f
imul ecx, eax
mul esi
add edx, ecx
add eax, 0x30
adc edx, 0
mov ecx, dword [ebp + 8]
sub esp, 0xc
mov esi, dword [ecx]
push edx
push eax
push 8
push ebx
push ecx
call dword [esi + 8]
mov esi, eax
mov eax, dword [ebx]
bswap eax
mov dword [ebp + 0x4c], eax
mov eax, dword [ebx + 4]
bswap eax
mov dword [ebp + 0x50], eax
mov eax, dword [ebp + 0x68]
mov dword [ebp + 0x68], 0
mov dword [esp + 0x24], eax
add esp, 0x20
cmp dword [esp + 0x10], eax
jb 0x7a6f83
test esi, esi
jne 0x7a6f83
mov eax, dword [esp + 0x18]
mov dword [esp + 0x48], edi
mov dword [esp + 0x38], eax
sar eax, 0x1f
mov dword [esp + 0x3c], eax
lea eax, [ebx + 0x18]
mov dword [esp + 0x44], eax
lea esi, [esi]
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 4]
mov esi, dword [esp + 0x38]
sub eax, 1
mov ecx, edi
imul ecx, eax
mul esi
add edx, ecx
add eax, 0x20
adc edx, 0
mov esi, eax
mov eax, dword [ebp + 8]
sub esp, 0xc
mov edi, edx
mov edx, dword [eax]
push edi
push esi
push dword [esp + 0x2c]
push ebx
push eax
call dword [edx + 8]
add esp, 0x20
test eax, eax
je 0x7a6f30
sub esp, 0xc
mov esi, eax
push ebx
call fcn.007677d0
add esp, 0x10
jmp 0x7a6826
sub esp, 8
mov edx, dword [ebx]
mov ecx, dword [ebx + 4]
lea eax, [esp + 0x78]
push eax
mov eax, ebp
bswap edx
bswap ecx
push dword [esp + 0x50]
call fcn.007650a0
mov eax, dword [ebp + 8]
mov edx, dword [eax]
mov dword [esp], edi
push esi
push 0x18
lea edi, [esp + 0x88]
push edi
push eax
call dword [edx + 0xc]
add dword [esp + 0x24], 1
mov edi, dword [esp + 0x24]
add esp, 0x20
test eax, eax
jne 0x7a6f7d
cmp dword [esp + 0x10], edi
jae 0x7a6ee0
mov edi, dword [esp + 0x48]
mov esi, eax
sub esp, 0xc
push ebx
call fcn.007677d0
add esp, 0x10
test esi, esi
je 0x7a69e6
jmp 0x7a6826
mov ecx, esi
mov esi, eax
jmp 0x7a6dc0
mov ebx, esi
mov ecx, esi
mov esi, eax
test dl, dl
je 0x7a6dc0
cmp byte [esp + 0x18], 0
je 0x7a6dc0
mov dword [esp + 8], edi
mov edi, dword [esp + 0x1c]
mov esi, ebx
add ebx, 1
mov ecx, dword [edi + 0x18]
mov eax, ebp
mov edx, ebx
call fcn.0079d8d0
mov edx, esi
sub edx, ebx
add edx, dword [esp + 4]
test eax, eax
jne 0x7a6ff2
test edx, edx
jg 0x7a6fd3
mov edi, dword [esp + 8]
mov esi, eax
jmp 0x7a6dc2
movzx edx, byte [esp + 4]
mov eax, dword [esp + 0x5c]
call fcn.007670a0
cmp byte [ebp + 0x2f], 0
mov dword [esp + 4], eax
jne 0x7a7038
mov ebx, dword [ebp + 0x44]
mov byte [esp + 0x18], 0
mov ecx, ebx
test eax, eax
je 0x7a6cd4
mov esi, eax
jmp 0x7a6dc2
mov eax, dword [ebp + 0x44]
mov ecx, eax
jmp 0x7a6cd4
mov esi, dword [esp + 4]
mov byte [esp + 0x18], 0
mov dword [esp + 4], 0
test esi, esi
sete byte [esp + 0x30]
jmp 0x7a6d44
mov dword [esp + 4], ebp
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
mov byte [esp + 0x18], 1
jmp 0x7a6d33
mov ebx, 0x1000
xor esi, esi
jmp 0x7a6a3b