Function at 0x685ecc50
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x2c
mov edx, dword [sym.libglib_2.0_0.dll_g_threads_got_initialized]
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x14]
test edx, edx
je 0x685ecc81
mov eax, dword [edi]
mov edx, dword [0x686576c4]
test eax, eax
je 0x685ecf1d
mov dword [esp], eax
call edx
mov eax, dword [edi + 0x28]
test eax, eax
jne 0x685ecdfa
mov edx, dword [edi + 0x48]
test edx, edx
jne 0x685ecda8
mov eax, dword [edi + 0x4c]
test eax, eax
jne 0x685ecd7b
test ebx, ebx
mov edx, dword [edi + 0x2c]
jle 0x685ecccd
xor eax, eax
mov dword [ebp - 0x1c], edi
nop
mov ecx, dword [edx]
cmp word [ecx + 4], 0
je 0x685eccc2
movzx edi, word [esi + eax*8 + 6]
mov word [ecx + 6], di
inc eax
mov edx, dword [edx + 4]
cmp eax, ebx
jne 0x685eccb0
mov edi, dword [ebp - 0x1c]
mov esi, dword [edi + 0x24]
xor ebx, ebx
test esi, esi
jne 0x685ecceb
jmp 0x685ecdd1
mov esi, dword [esi + 0x28]
test esi, esi
je 0x685ecee2
test byte [esi + 0x18], 1
nop
je 0x685ecce0
inc dword [esi + 0xc]
mov dword [ebp - 0x1c], 0
lea esi, [esi]
mov eax, dword [esi + 0x18]
mov edx, eax
and edx, 0x22
cmp edx, 2
je 0x685ecd30
test al, 0x10
je 0x685ece32
inc dword [esi + 0xc]
mov dword [esp + 4], esi
mov eax, dword [edi + 0x18]
mov dword [esp], eax
call sym.libglib_2.0_0.dll_g_ptr_array_add
mov eax, dword [esi + 0x14]
inc dword [ebp - 0x1c]
mov dword [ebp + 0xc], eax
mov ebx, dword [esi + 0x28]
test ebx, ebx
jne 0x685ecd47
jmp 0x685ecd50
mov ebx, dword [ebx + 0x28]
test ebx, ebx
je 0x685ecd50
test byte [ebx + 0x18], 1
je 0x685ecd40
inc dword [ebx + 0xc]
mov eax, dword [esi + 0xc]
cmp eax, 1
jbe 0x685eceb0
dec eax
test ebx, ebx
mov dword [esi + 0xc], eax
je 0x685ecec6
mov edx, dword [ebp - 0x1c]
test edx, edx
je 0x685ecd77
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebx + 0x14]
jl 0x685ecdbc
mov esi, ebx
jmp 0x685ecd00
mov ecx, dword [sym.libglib_2.0_0.dll_g_threads_got_initialized]
xor ebx, ebx
test ecx, ecx
je 0x685ecd9e
mov eax, dword [edi]
mov ebx, dword [0x686576cc]
test eax, eax
je 0x685ecf30
mov dword [esp], eax
call ebx
xor ebx, ebx
add esp, 0x2c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [edi + 0x4c]
mov dword [edi + 0x48], 0
test eax, eax
je 0x685ecca2
jmp 0x685ecd7b
mov eax, dword [ebx + 0xc]
cmp eax, 1
jbe 0x685ecf3d
dec eax
mov dword [ebx + 0xc], eax
mov ebx, 1
mov edx, dword [sym.libglib_2.0_0.dll_g_threads_got_initialized]
test edx, edx
je 0x685ecd9e
mov eax, dword [edi]
mov esi, dword [0x686576cc]
test eax, eax
je 0x685ecf55
mov dword [esp], eax
call esi
add esp, 0x2c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, 0x10
mov esi, str.g_main_context_check___called_recursively_from_within_a_sources_check___or_prepare___member.
mov dword [esp + 4], ebx
xor ebx, ebx
mov dword [esp + 8], esi
mov dword [esp], 0x6865eb8f
call sym.libglib_2.0_0.dll_g_log
mov ecx, dword [sym.libglib_2.0_0.dll_g_threads_got_initialized]
test ecx, ecx
jne 0x685ecd87
add esp, 0x2c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esi + 8]
mov ebx, dword [eax + 4]
mov eax, dword [sym.libglib_2.0_0.dll_g_threads_got_initialized]
inc dword [edi + 0x28]
test eax, eax
je 0x685ece59
mov eax, dword [edi]
mov edx, dword [0x686576cc]
test eax, eax
je 0x685ecef7
mov dword [esp], eax
call edx
mov dword [esp], esi
call ebx
mov ecx, dword [sym.libglib_2.0_0.dll_g_threads_got_initialized]
test ecx, ecx
mov ebx, eax
je 0x685ece7f
mov eax, dword [edi]
mov edx, dword [0x686576c4]
test eax, eax
je 0x685ecf0a
mov dword [esp], eax
call edx
dec dword [edi + 0x28]
test ebx, ebx
jne 0x685ecea0
mov eax, dword [esi + 0x18]
test al, 0x10
je 0x685ecd30
jmp 0x685ecd15
mov eax, dword [esi + 0x18]
or eax, 0x10
mov dword [esi + 0x18], eax
jmp 0x685ece89
mov ecx, 1
mov edx, edi
mov eax, esi
call sym._g_source_unref_internal
test ebx, ebx
jne 0x685ecd68
mov edx, dword [sym.libglib_2.0_0.dll_g_threads_got_initialized]
xor ebx, ebx
cmp dword [ebp - 0x1c], 0
setg bl
test edx, edx
je 0x685ecd9e
jmp 0x685ecddb
mov edx, dword [sym.libglib_2.0_0.dll_g_threads_got_initialized]
xor ebx, ebx
test edx, edx
je 0x685ecd9e
jmp 0x685ecddb
mov dword [ebp - 0x20], edx
mov dword [esp], edi
call sym.libglib_2.0_0.dll_g_static_mutex_get_mutex_impl
mov edx, dword [ebp - 0x20]
jmp 0x685ece54
mov dword [ebp - 0x20], edx
mov dword [esp], edi
call sym.libglib_2.0_0.dll_g_static_mutex_get_mutex_impl
mov edx, dword [ebp - 0x20]
jmp 0x685ece7a
mov dword [ebp - 0x20], edx
mov dword [esp], edi
call sym.libglib_2.0_0.dll_g_static_mutex_get_mutex_impl
mov edx, dword [ebp - 0x20]
jmp 0x685ecc7c
mov dword [esp], edi
call sym.libglib_2.0_0.dll_g_static_mutex_get_mutex_impl
jmp 0x685ecd97
mov eax, ebx
mov ecx, 1
mov edx, edi
mov ebx, 1
call sym._g_source_unref_internal
jmp 0x685ecdd1
mov dword [esp], edi
call sym.libglib_2.0_0.dll_g_static_mutex_get_mutex_impl
lea esi, [esi]
jmp 0x685ecdeb