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

Disassembly:
mov eax, 0x701500e7
call fcn.70055494
sub esp, 0xddc
mov eax, dword [section..cdata]
push ebx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 8]
push esi
mov esi, ecx
mov dword [ebp - 0x7d4], eax
mov eax, dword [esi + 4]
xor ebx, ebx
push edi
xor edi, edi
test byte [eax + 0x25], 0x60
mov dword [ebp - 0x7ac], esi
mov dword [ebp - 0x7c4], ebx
mov dword [ebp - 0x7b0], ebx
je 0x700c862b
mov eax, dword [eax + 0x70]
push ebx
push eax
lea ecx, [ebp - 0x7e8]
call fcn.700e1dcd
lea ecx, [ebp - 0x7e8]
call fcn.7009ac83
mov ecx, dword [eax + 0xa0]
mov eax, dword [ecx]
call dword [eax + 0x18]
mov edi, dword [eax + 0x5c]
mov eax, dword [edi + 0x9c]
push eax
mov dword [ebp - 0x7c4], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x7a8]
push eax
push edi
mov ecx, esi
mov dword [ebp - 0x7a8], ebx
mov word [ebp - 0x790], 1
call fcn.700c7126
mov esi, eax
cmp esi, 1
jne 0x700c8db6
cmp word [ebp - 0x7a8], bx
jbe 0x700c86dd
movzx esi, word [ebp - 0x7a8]
mov eax, esi
shl eax, 4
add eax, 4
push eax
call fcn.700e1dcd
pop ecx
mov dword [ebp - 0x7c0], eax
cmp eax, ebx
mov dword [ebp - 4], ebx
je 0x700c86a8
push fcn.7005bd84
push 0x700c6fc7
push esi
lea ebx, [eax + 4]
push 0x10
push ebx
mov dword [eax], esi
call fcn.70055722
jmp 0x700c86aa
xor ebx, ebx
or dword [ebp - 4], 0xffffffff
test ebx, ebx
mov dword [ebp - 0x7b0], ebx
jne 0x700c86db
call dword [sym.imp.kernel32.dll_GetLastError]
mov esi, eax
call fcn.7006107f
push 0xffffffffffffffff
push ebx
push esi
push 0x15
push 0xfffffffffffffffb
mov ecx, eax
call fcn.700e1dcd
mov esi, eax
jmp 0x700c8db6
xor ebx, ebx
movzx eax, word [ebp - 0x7a8]
cmp eax, ebx
mov dword [ebp - 0x794], ebx
mov dword [ebp - 0x798], eax
jle 0x700c8778
mov ebx, dword [ebp - 0x7b0]
push 8
mov ecx, ebx
call fcn.700e1dcd
mov esi, eax
cmp esi, 1
jne 0x700c8db6
push 5
push 5
mov ecx, ebx
call fcn.700e1dcd
mov esi, eax
cmp esi, 1
jne 0x700c8db6
mov ecx, dword [ebp - 0x794]
add ecx, ecx
xor eax, eax
mov ax, word [ebp + ecx - 0x110]
test ax, ax
je 0x700c8761
movzx ecx, word [ebp + ecx - 0x290]
push ebx
push ecx
mov ecx, dword [ebp - 0x7ac]
push eax
push edi
call fcn.700e1dcd
mov esi, eax
cmp esi, 1
jne 0x700c8db6
inc dword [ebp - 0x794]
mov eax, dword [ebp - 0x794]
add ebx, 0x10
cmp eax, dword [ebp - 0x798]
jl 0x700c86fe
and dword [ebp - 0x7bc], 0
mov esi, dword [ebp - 0x7ac]
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x78]
mov eax, dword [ebp - 0x7bc]
movzx eax, word [ebp + eax*2 - 0x790]
push eax
call fcn.700e1dcd
mov dword [ebp - 0x7a4], eax
mov eax, dword [ebp - 0x7d4]
test eax, eax
je 0x700c87b5
mov dword [ebp - 0x7a4], eax
lea eax, [ebp - 0x590]
push eax
lea eax, [ebp - 0x190]
push eax
push dword [ebp - 0x7a4]
mov ecx, esi
call fcn.700e1dcd
mov esi, eax
xor eax, eax
inc eax
cmp esi, eax
jne 0x700c8db6
and dword [ebp - 0x794], 0
mov dword [ebp - 0x7b4], eax
movzx eax, word [ebp - 0x7a8]
test eax, eax
jle 0x700c89e4
mov eax, dword [ebp - 0x7b0]
add eax, 8
mov dword [ebp - 0x7a0], eax
mov eax, dword [ebp - 0x794]
mov ecx, dword [ebp - 0x7b4]
lea edi, [ebp + eax*2 - 0x290]
and word [edi], 0
cmp word [ebp + eax*2 - 0x110], 0
mov dword [ebp + eax*4 - 0xbe8], ecx
je 0x700c8952
mov eax, dword [ebp - 0x7ac]
mov eax, dword [eax + 4]
test byte [eax + 0x1c], 2
mov eax, dword [ebp - 0x794]
je 0x700c8947
movzx eax, word [ebp + eax*2 - 0x110]
mov ecx, dword [ebp - 0x7a4]
push eax
call fcn.700e1dcd
mov ebx, eax
test ebx, ebx
je 0x700c8952
mov ecx, dword [ebp - 0x7a4]
mov ecx, dword [ecx + 0x68]
xor eax, eax
inc eax
cmp word [ecx + 0x100], ax
mov dword [ebp - 0x79c], eax
jb 0x700c8952
mov eax, dword [ebp - 0x7a4]
push dword [ebp - 0x79c]
mov ecx, dword [eax + 0x68]
call fcn.700e1dcd
cmp dword [0x70170c10], 0
push 0
push dword [ebx + 0x14]
mov esi, eax
je 0x700c88eb
call fcn.700e1dcd
pop ecx
pop ecx
push 0xffffffffffffffff
push 0
push dword [esi + 0x14]
mov dword [ebp - 0x798], eax
call fcn.700e1dcd
pop ecx
pop ecx
push eax
push 0xffffffffffffffff
push dword [ebp - 0x798]
push dword [0x7016a5ec]
push dword [0x7016a5e8]
call fcn.700e1dcd
add esp, 0x18
dec eax
dec eax
jmp 0x700c8915
call fcn.700e1dcd
push 0
push dword [esi + 0x14]
mov dword [ebp - 0x798], eax
call fcn.700e1dcd
push eax
push dword [ebp - 0x798]
push dword [0x7016a5ec]
call fcn.700e1dcd
add esp, 0x1c
test eax, eax
je 0x700c893e
inc dword [ebp - 0x79c]
mov eax, dword [ebp - 0x7a4]
mov eax, dword [eax + 0x68]
mov cx, word [ebp - 0x79c]
cmp cx, word [eax + 0x100]
jbe 0x700c888b
jmp 0x700c8952
mov ax, word [ebp - 0x79c]
jmp 0x700c894f
mov ax, word [ebp + eax*2 - 0x110]
mov word [edi], ax
mov di, word [edi]
test di, di
je 0x700c89c4
mov eax, dword [ebp - 0x7a0]
mov eax, dword [eax]
test eax, eax
je 0x700c89c4
imul eax, dword [ebp - 0x7b4]
mov ecx, dword [ebp - 0x7a4]
mov ecx, dword [ecx + 0x54]
mov ecx, dword [ecx + 0xd4]
mov esi, dword [ebp - 0x794]
mov dword [ebp - 0x7b4], eax
movzx eax, di
lea eax, [eax + eax*4]
movzx eax, word [ecx + eax*4 + 0xe]
shr eax, 1
mov dword [ebp + esi*4 - 0xde8], eax
xor eax, eax
mov ax, word [ebp + esi*2 - 0x110]
push eax
mov eax, dword [ebp - 0x7ac]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x70]
call fcn.700e1dcd
mov ax, word [eax + 0x60]
mov word [ebp + esi*2 - 0x390], ax
movzx eax, word [ebp - 0x7a8]
inc dword [ebp - 0x794]
add dword [ebp - 0x7a0], 0x10
cmp dword [ebp - 0x794], eax
jl 0x700c8808
mov esi, dword [ebp - 0x7ac]
xor eax, eax
mov ecx, 0x80
lea edi, [ebp - 0x9e8]
rep stosd dword es:[edi], eax
inc eax
cmp dword [esi + 8], eax
mov dword [ebp - 0x7a0], eax
jl 0x700c8bbf
lea eax, [esi + 0x34]
mov dword [ebp - 0x7cc], eax
push dword [ebp - 0x7a0]
mov ecx, dword [ebp - 0x7cc]
call fcn.700e1dcd
mov edi, dword [eax]
mov eax, dword [eax + 8]
or eax, dword [ebp + 0xc]
mov dword [ebp - 0x7c0], edi
je 0x700c8baa
mov eax, dword [edi + 0x78]
test eax, eax
je 0x700c8a43
mov eax, dword [eax + 8]
jmp 0x700c8a45
xor eax, eax
and dword [ebp - 0x794], 0
test eax, eax
mov dword [ebp - 0x798], eax
jle 0x700c8baa
push dword [ebp - 0x794]
mov ecx, edi
call fcn.700e1dcd
movzx eax, word [eax]
test ax, ax
mov dword [ebp - 0x7b8], eax
je 0x700c8b92
mov ecx, dword [esi + 4]
test byte [ecx + 0x1c], 2
je 0x700c8b7a
mov ebx, dword [ebp - 0x7a4]
push eax
mov ecx, ebx
call fcn.700e1dcd
mov edi, eax
test edi, edi
je 0x700c8b7a
mov ecx, dword [ebx + 0x68]
xor eax, eax
inc eax
cmp word [ecx + 0x100], ax
mov dword [ebp - 0x79c], eax
jb 0x700c8b7a
xor ebx, ebx
mov eax, dword [ebp - 0x7a4]
push dword [ebp - 0x79c]
mov ecx, dword [eax + 0x68]
call fcn.700e1dcd
cmp dword [0x70170c10], ebx
push ebx
push dword [edi + 0x14]
mov esi, eax
je 0x700c8b16
call fcn.700e1dcd
pop ecx
pop ecx
push 0xffffffffffffffff
push ebx
push dword [esi + 0x14]
mov dword [ebp - 0x7c8], eax
call fcn.700e1dcd
pop ecx
pop ecx
push eax
push 0xffffffffffffffff
push dword [ebp - 0x7c8]
push dword [0x7016a5ec]
push dword [0x7016a5e8]
call fcn.700e1dcd
add esp, 0x18
dec eax
dec eax
jmp 0x700c8b3f
call fcn.700e1dcd
push ebx
push dword [esi + 0x14]
mov dword [ebp - 0x7c8], eax
call fcn.700e1dcd
push eax
push dword [ebp - 0x7c8]
push dword [0x7016a5ec]
call fcn.700e1dcd
add esp, 0x1c
cmp eax, ebx
je 0x700c8b68
inc dword [ebp - 0x79c]
mov eax, dword [ebp - 0x7a4]
mov eax, dword [eax + 0x68]
mov cx, word [ebp - 0x79c]
cmp cx, word [eax + 0x100]
jbe 0x700c8ab9
jmp 0x700c8b74
mov eax, dword [ebp - 0x79c]
mov dword [ebp - 0x7b8], eax
mov esi, dword [ebp - 0x7ac]
movzx eax, word [ebp - 0x7b8]
mov edi, dword [ebp - 0x7c0]
mov dword [ebp + eax*4 - 0x9e8], 1
inc dword [ebp - 0x794]
mov eax, dword [ebp - 0x794]
cmp eax, dword [ebp - 0x798]
jl 0x700c8a5a
inc dword [ebp - 0x7a0]
mov eax, dword [ebp - 0x7a0]
cmp eax, dword [esi + 8]
jle 0x700c8a12
xor eax, eax
cmp dword [esi + 0x3c], eax
je 0x700c8bc9
mov dword [esi + 0x3c], eax
cmp dword [ebp - 0x7b4], eax
mov dword [ebp - 0x7a0], eax
jle 0x700c8da0
movzx eax, word [ebp - 0x7a8]
dec eax
mov dword [ebp - 0x7c0], eax
mov edi, dword [ebp - 0x7c0]
test edi, edi
mov eax, dword [ebp - 0x7a0]
mov dword [ebp - 0x798], eax
mov dword [ebp - 0x794], edi
jl 0x700c8d2c
mov esi, edi
shl esi, 4
add esi, dword [ebp - 0x7b0]
mov dword [ebp - 0x79c], esi
mov bx, word [ebp + edi*2 - 0x290]
test bx, bx
je 0x700c8d0e
cmp dword [esi + 8], 0
je 0x700c8d0e
mov eax, dword [ebp - 0x798]
mov ecx, dword [ebp + edi*4 - 0xbe8]
cdq
idiv ecx
mov ecx, esi
movzx eax, ax
push eax
mov dword [ebp - 0x798], edx
call fcn.700e1dcd
movzx ecx, bx
mov edx, dword [ebp + ecx*4 - 0x9e8]
test edx, edx
mov esi, eax
je 0x700c8c71
mov al, byte [esi]
add al, 0x30
mov byte [ebp + ecx - 0x191], al
mov ecx, dword [esi + 4]
mov ax, word [ecx + 4]
mov ebx, dword [ebp + edi*4 - 0xde8]
dec ax
test ax, ax
lea ebx, [ebp + ebx*2 - 0x590]
jbe 0x700c8cde
test edx, edx
lea esi, [ecx + 8]
je 0x700c8cb1
movzx ecx, ax
shl ecx, 1
mov edx, ecx
shr ecx, 2
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebp - 0x794]
jmp 0x700c8cde
movzx edx, ax
test edx, edx
jle 0x700c8cde
mov ecx, ebx
sub esi, ebx
mov dword [ebp - 0x7b8], edx
cmp word [ecx], 0
je 0x700c8cd4
mov dx, word [esi + ecx]
test dx, dx
jne 0x700c8cd4
mov word [ecx], dx
inc ecx
inc ecx
dec dword [ebp - 0x7b8]
jne 0x700c8cc2
mov cx, word [ebp + edi*2 - 0x390]
cmp cx, ax
jbe 0x700c8d0e
movzx ecx, cx
movzx edx, ax
sub ecx, edx
shl ecx, 1
lea edi, [ebx + edx*2]
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [ebp - 0x794]
mov esi, dword [ebp - 0x79c]
dec edi
sub esi, 0x10
test edi, edi
mov dword [ebp - 0x794], edi
mov dword [ebp - 0x79c], esi
jge 0x700c8c1a
call fcn.700f3984
mov esi, eax
cmp esi, 1
jne 0x700c8db6
mov edi, dword [ebp - 0x7a4]
xor esi, esi
push esi
push esi
push esi
lea eax, [ebp - 0x7d0]
push eax
push 0xa0000
lea eax, [ebp - 0x590]
push eax
xor ebx, ebx
lea eax, [ebp - 0x190]
mov dword [ebp - 0x7d0], esi
inc ebx
push eax
mov ecx, edi
mov dword [edi + 0x64], ebx
call fcn.700e1dcd
cmp eax, 8
mov dword [edi + 0x64], esi
je 0x700c8d88
cmp eax, 4
je 0x700c8d88
cmp eax, 3
je 0x700c8d88
cmp eax, ebx
mov esi, eax
jne 0x700c8db6
inc dword [ebp - 0x7a0]
mov eax, dword [ebp - 0x7a0]
cmp eax, dword [ebp - 0x7b4]
jl 0x700c8be9
inc dword [ebp - 0x7bc]
cmp dword [ebp - 0x7bc], 1
jl 0x700c877f
xor esi, esi
inc esi
movzx eax, word [ebp - 0x7a8]
test eax, eax
jle 0x700c8e0b
mov edi, dword [ebp - 0x7b0]
mov dword [ebp - 0x798], eax
xor ebx, ebx
cmp dword [edi + 8], ebx
jle 0x700c8df7
movzx eax, bx
push eax
mov ecx, edi
call fcn.700e1dcd
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
add eax, 4
push eax
call fcn.700e1dcd
add esp, 0x14
inc ebx
cmp ebx, dword [edi + 8]
jl 0x700c8dd4
push 0
mov ecx, edi
call fcn.700e1dcd
add edi, 0x10
dec dword [ebp - 0x798]
jne 0x700c8dcd
lea eax, [ebp - 0x7b0]
push eax
call fcn.700e1dcd
cmp dword [ebp - 0x7c4], 0
pop ecx
je 0x700c8e2d
push dword [ebp - 0x7c4]
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 0xc]
pop edi
mov eax, esi
pop esi
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
pop ebx
call fcn.700555ea
leave
ret 8