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

Disassembly:
sub esp, 0x1c4
push ebx
push ebp
push edi
mov edi, dword [esp + 0x1d8]
movzx eax, byte [edi + 0x2a]
movzx ecx, byte [edi + 0x2b]
shl eax, 8
add eax, ecx
xor ebx, ebx
and eax, 0x8000
mov dword [esp + 0x34], ebx
mov dword [esp + 0x40], 0x64
movzx edx, byte [edi + 0x2a]
mov dword [esp + 0x20], eax
movzx eax, byte [edi + 0x2b]
shl edx, 8
add edx, eax
test dh, dh
mov dword [esp + 0x2c], ebx
lea ebp, [esp + 0x40]
lea eax, [edi + 0x63]
js 0x6c37b3
lea eax, [edi + 0x65]
mov ecx, dword [esp + 0x1dc]
cmp ecx, eax
jne 0x6c37d0
push ecx
call fcn.0064bff0
add esp, 4
mov dword [esp + 0x1dc], eax
mov ecx, eax
movzx edx, byte [edi + 0x2a]
movzx eax, byte [edi + 0x2b]
shl edx, 8
add edx, eax
test dh, dh
lea eax, [edi + 0x70]
js 0x6c37e7
lea eax, [edi + 0x74]
cmp ecx, eax
je 0x6c3ce7
mov ecx, dword [esp + 0x1e4]
mov edx, dword [esp + 0x1e0]
push esi
mov esi, dword [esp + 0x1d8]
push ecx
push edx
push esi
call fcn.006c36a0
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x1f4]
mov edx, dword [eax + 0x220]
add eax, 0x220
add esp, 0xc
xor ecx, ecx
test edx, edx
jne 0x6c3840
mov eax, dword [eax + 4]
mov dword [esp + 0x14], eax
jmp 0x6c3859
mov edx, dword [eax + 4]
mov eax, dword [eax + 0x218]
and edx, 0xfeffffff
add ecx, edx
test eax, eax
jne 0x6c3840
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1e8]
mov eax, dword [ecx + 0x444]
cmp eax, 0x16
mov dword [esp + 0x40], eax
je 0x6c3879
mov dword [ecx + 0x444], 0x18
movzx eax, byte [esi + 0x2a]
movzx ecx, byte [esi + 0x2b]
shl eax, 8
add eax, ecx
test ah, ah
jns 0x6c3893
lea edx, [esi + 0x63]
mov dword [esp + 0x1c], edx
jmp 0x6c389a
lea eax, [esi + 0x65]
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x24]
xor eax, eax
cmp ecx, eax
je 0x6c38ad
lea ecx, [esi + 0x78]
mov dword [esp + 0x20], ecx
jmp 0x6c38b4
lea edx, [esi + 0x7d]
mov dword [esp + 0x20], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], eax
lea eax, [esi + 0x3ff6]
mov dword [esp + 0x28], 0x10
mov dword [esp + 0x34], eax
movzx ecx, byte [edi + 0x2a]
movzx edx, byte [edi + 0x2b]
shl ecx, 8
add ecx, edx
test ch, ch
lea eax, [edi + 0x70]
js 0x6c38e9
lea eax, [edi + 0x74]
mov edi, dword [esp + 0x1e0]
cmp edi, eax
je 0x6c3ae0
mov ecx, dword [esp + 0x1e4]
push 0x486
push str..pagepage0cur.c
lea eax, [esp + 0x40]
push eax
push 0xffffffffffffffff
push ebp
push ecx
push edi
call fcn.006b25d0
mov ebp, eax
mov edx, dword [ebp + 4]
mov ecx, dword [ebp + edx*4 + 8]
mov eax, dword [ebp + 8]
and ecx, 0x3fffffff
and eax, 0x7fffffff
add ecx, eax
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x3c]
sub esi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [esp + 0x1f4]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x38]
lea ebx, [eax + ecx]
mov eax, ebx
add esp, 0x1c
sub eax, edx
test esi, esi
je 0x6c3991
test eax, eax
je 0x6c3985
mov edx, edi
and edx, 0x3fff
sub eax, edx
and eax, 0xffff
mov ecx, eax
shr ecx, 8
mov byte [edi - 2], cl
jmp 0x6c3999
xor eax, eax
mov ecx, eax
shr ecx, 8
mov byte [edi - 2], cl
jmp 0x6c3999
mov edx, eax
shr edx, 8
mov byte [edi - 2], dl
mov byte [edi - 1], al
mov eax, esi
neg eax
sbb eax, eax
add eax, 6
mov edi, dword [esp + 0x28]
mov ecx, ebx
sub ecx, eax
and byte [ecx], 0xf0
mov eax, esi
neg eax
sbb eax, eax
add eax, 5
mov esi, dword [esp + 0x2c]
mov ecx, ebx
sub ecx, eax
movzx eax, byte [ecx]
movzx edx, byte [ecx + 1]
shl eax, 8
add eax, edx
and eax, 0xffff0007
or eax, edi
mov edx, eax
shr edx, 8
mov byte [ecx], dl
mov edx, dword [esp + 0x20]
mov byte [ecx + 1], al
mov eax, dword [ebp + 4]
mov edi, dword [ebp + eax*4 + 8]
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x10]
and edi, 0x3fffffff
and ecx, 0x7fffffff
add edi, ecx
add edx, edi
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x28]
inc eax
inc esi
add edx, 8
cmp eax, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], edx
jne 0x6c3a96
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x34]
inc eax
mov dword [esp + 0x18], eax
mov eax, ebx
and eax, 0x3fff
sub edx, 2
mov ecx, eax
shr ecx, 8
movzx esi, cl
mov byte [edx + 1], al
movzx eax, al
shl esi, 8
push edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], edx
mov byte [edx], cl
add esi, eax
call fcn.0064bc90
add eax, esi
mov edx, eax
and edx, 0xffffc000
movzx ecx, byte [edx + 0x2a]
add edx, 0x2a
movzx edx, byte [edx + 1]
shl ecx, 8
add ecx, edx
and ecx, 0x8000
add esp, 4
neg ecx
sbb ecx, ecx
add ecx, 6
sub eax, ecx
mov cl, byte [eax]
and cl, 0xf4
or cl, 4
mov byte [eax], cl
mov dword [esp + 0x10], 0
mov edx, dword [esp + 0x1e8]
mov eax, dword [esp + 0x1e4]
mov ecx, dword [esp + 0x1c]
push edx
push eax
push ecx
push edi
push ebx
call fcn.006c2e20
mov edx, dword [esp + 0x1f4]
push edx
mov dword [esp + 0x34], ebx
call fcn.0064bff0
mov esi, dword [esp + 0x1f0]
mov edi, dword [esp + 0x1f4]
add esp, 0x18
mov dword [esp + 0x1e0], eax
jmp 0x6c38d2
mov eax, dword [esp + 0x18]
test eax, eax
jbe 0x6c3b17
mov eax, dword [esp + 0x10]
add eax, 5
cmp eax, 8
ja 0x6c3b17
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
push 0
add ebp, 4
push ecx
mov dword [esp + 0x18], ebp
call fcn.006acc00
mov eax, dword [esp + 0x20]
add esp, 8
dec eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x38]
test eax, eax
je 0x6c3b32
push 0x4bb
push str..pagepage0cur.c
push eax
call fcn.006483f0
add esp, 0xc
mov eax, dword [esp + 0x1e8]
mov edx, dword [eax + 0x220]
add eax, 0x220
xor ecx, ecx
test edx, edx
jne 0x6c3b50
mov eax, dword [eax + 4]
jmp 0x6c3b67
mov edx, dword [eax + 4]
mov eax, dword [eax + 0x218]
and edx, 0xfeffffff
add ecx, edx
test eax, eax
jne 0x6c3b50
mov eax, ecx
mov ecx, dword [esp + 0x14]
mov edx, dword [0x977b10]
sub eax, ecx
cmp eax, 0x190000
sbb ecx, ecx
neg ecx
add ecx, edx
mov dword [esp + 0x14], eax
jne 0x6c3bb5
push 0x4c0
push str..pagepage0cur.c
push str.log_data_len___100__UNIV_PAGE_SIZE
call fcn.00651650
mov edx, dword [0x977b18]
mov eax, dword [edx]
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x14]
je 0x6c3bb5
mov dword [0x977b18], 0
mov ecx, dword [0x977b14]
test ecx, ecx
je 0x6c3bd5
push 0x4c0
push str..pagepage0cur.c
call fcn.006516c0
mov eax, dword [esp + 0x1c]
add esp, 8
mov edi, dword [esp + 0x3c]
mov ecx, eax
shr ecx, 0x18
mov edx, eax
shr edx, 0x10
mov byte [edi], cl
mov byte [edi + 1], dl
mov ecx, eax
mov byte [edi + 3], al
mov eax, dword [esp + 0x24]
xor edx, edx
shr ecx, 8
test eax, eax
sete dl
mov byte [edi + 2], cl
lea edx, [edx*4 + 0x70]
push edx
push eax
push ebx
call fcn.006ac810
movzx edx, byte [esi + 0x2a]
movzx ecx, byte [esi + 0x2b]
mov edi, dword [esp + 0x24]
shl edx, 8
mov eax, 0x1ffa
add ecx, edx
sub eax, edi
add esp, 0xc
test ch, ch
lea eax, [esi + eax*2]
lea ecx, [esi + 0x70]
js 0x6c3c35
lea ecx, [esi + 0x74]
and ecx, 0x3fff
mov edx, ecx
mov byte [eax + 1], cl
mov ecx, dword [esp + 0x10]
shr edx, 8
inc ecx
push ecx
push eax
mov byte [eax], dl
call fcn.006acc00
lea eax, [edi + 2]
mov edx, eax
mov byte [esi + 0x27], al
mov eax, dword [esp + 0x28]
shr edx, 8
add esp, 8
test eax, eax
mov byte [esi + 0x26], dl
je 0x6c3c6c
sub eax, esi
mov byte [esi + 0x29], al
mov ecx, eax
shr ecx, 8
mov byte [esi + 0x28], cl
movzx eax, byte [esi + 0x2a]
movzx edx, byte [esi + 0x2b]
mov ecx, dword [esp + 0x2c]
shl eax, 8
add eax, edx
and eax, 0x8000
lea edx, [ecx + 2]
or eax, edx
mov byte [esi + 0x2b], al
mov edx, eax
shr edx, 8
mov byte [esi + 0x2a], dl
mov byte [esi + 0x37], cl
mov eax, ecx
shr eax, 8
mov byte [esi + 0x36], al
mov eax, dword [esp + 0x40]
cmp eax, 0x18
mov byte [esi + 0x30], 0
mov byte [esi + 0x31], 0
mov byte [esi + 0x32], 0
mov byte [esi + 0x33], 5
mov byte [esi + 0x34], 0
mov byte [esi + 0x35], 0
pop esi
jne 0x6c3cda
mov ecx, dword [esp + 0x1e4]
cmp dword [ecx + 0x444], 0x16
je 0x6c3ce7
mov edx, dword [esp + 0x1e4]
mov dword [edx + 0x444], eax
pop edi
pop ebp
pop ebx
add esp, 0x1c4
ret