Function at 0x45fc10
Capabilities:
Enumerate pe sections

Disassembly:
push ebx
push ebp
push esi
mov esi, dword [esp + 0x10]
mov al, byte [esi]
push edi
mov edi, ecx
mov byte [edi], al
mov cl, byte [esi + 1]
mov byte [edi + 1], cl
mov dl, byte [esi + 2]
mov byte [edi + 2], dl
mov al, byte [esi + 3]
mov byte [edi + 3], al
mov cl, byte [esi + 4]
mov byte [edi + 4], cl
mov dl, byte [esi + 5]
mov byte [edi + 5], dl
mov al, byte [esi + 6]
mov byte [edi + 6], al
mov ecx, dword [esi + 8]
mov dword [edi + 8], ecx
mov edx, dword [esi + 0xc]
mov dword [edi + 0xc], edx
mov eax, dword [esi + 0x10]
mov dword [edi + 0x10], eax
mov ecx, dword [esi + 0x14]
mov dword [edi + 0x14], ecx
mov edx, dword [esi + 0x18]
mov dword [edi + 0x18], edx
mov eax, dword [esi + 0x1c]
mov dword [edi + 0x1c], eax
mov ecx, dword [esi + 0x20]
mov dword [edi + 0x20], ecx
lea edx, [esi + 0x24]
mov ecx, dword [edx]
lea eax, [edi + 0x24]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov dword [eax + 8], ecx
mov edx, dword [edx + 0xc]
mov dword [eax + 0xc], edx
mov eax, dword [esi + 0x38]
mov dword [edi + 0x38], eax
mov ecx, dword [esi + 0x3c]
mov dword [edi + 0x3c], ecx
mov ebx, dword [edi + 0x40]
cmp ebx, dword [esi + 0x40]
lea ebp, [edi + 0x40]
je 0x45fd34
test ebx, ebx
je 0x45fd00
mov edx, dword [ebx]
and edx, 0xff
cmp edx, 0x80
jae 0x45fcf9
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
and eax, 0xff
cmp eax, 0x7f
jne 0x45fce9
mov eax, dword [ebx]
and eax, 0xff
cmp eax, 0x80
jae 0x45fce4
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
jmp 0x45fce9
mov eax, 0xff
test eax, eax
jne 0x45fcf9
mov ecx, dword [ebp]
push ecx
call fcn.00499410
add esp, 4
mov dword [ebp], 0
mov eax, dword [esi + 0x40]
test eax, eax
mov dword [ebp], eax
je 0x45fd34
mov edx, dword [eax]
and edx, 0xff
cmp edx, 0x80
jae 0x45fd2d
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x45fd34
mov ecx, ebp
call fcn.0049d350
mov ebx, dword [edi + 0x44]
cmp ebx, dword [esi + 0x44]
lea ebp, [edi + 0x44]
je 0x45fdd4
test ebx, ebx
je 0x45fda0
mov eax, dword [ebx]
and eax, 0xff
cmp eax, 0x80
jae 0x45fd99
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
and eax, 0xff
cmp eax, 0x7f
jne 0x45fd89
mov ecx, dword [ebx]
and ecx, 0xff
cmp ecx, 0x80
jae 0x45fd84
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
jmp 0x45fd89
mov eax, 0xff
test eax, eax
jne 0x45fd99
mov edx, dword [ebp]
push edx
call fcn.00499410
add esp, 4
mov dword [ebp], 0
mov eax, dword [esi + 0x44]
test eax, eax
mov dword [ebp], eax
je 0x45fdd4
mov ecx, dword [eax]
and ecx, 0xff
cmp ecx, 0x80
jae 0x45fdcd
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x45fdd4
mov ecx, ebp
call fcn.0049d350
mov ebx, dword [edi + 0x48]
cmp ebx, dword [esi + 0x48]
lea ebp, [edi + 0x48]
je 0x45fe74
test ebx, ebx
je 0x45fe40
mov edx, dword [ebx]
and edx, 0xff
cmp edx, 0x80
jae 0x45fe39
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
and eax, 0xff
cmp eax, 0x7f
jne 0x45fe29
mov eax, dword [ebx]
and eax, 0xff
cmp eax, 0x80
jae 0x45fe24
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
jmp 0x45fe29
mov eax, 0xff
test eax, eax
jne 0x45fe39
mov ecx, dword [ebp]
push ecx
call fcn.00499410
add esp, 4
mov dword [ebp], 0
mov eax, dword [esi + 0x48]
test eax, eax
mov dword [ebp], eax
je 0x45fe74
mov edx, dword [eax]
and edx, 0xff
cmp edx, 0x80
jae 0x45fe6d
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x45fe74
mov ecx, ebp
call fcn.0049d350
mov ebx, dword [edi + 0x4c]
cmp ebx, dword [esi + 0x4c]
lea ebp, [edi + 0x4c]
je 0x45ff14
test ebx, ebx
je 0x45fee0
mov eax, dword [ebx]
and eax, 0xff
cmp eax, 0x80
jae 0x45fed9
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
and eax, 0xff
cmp eax, 0x7f
jne 0x45fec9
mov ecx, dword [ebx]
and ecx, 0xff
cmp ecx, 0x80
jae 0x45fec4
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
jmp 0x45fec9
mov eax, 0xff
test eax, eax
jne 0x45fed9
mov edx, dword [ebp]
push edx
call fcn.00499410
add esp, 4
mov dword [ebp], 0
mov eax, dword [esi + 0x4c]
test eax, eax
mov dword [ebp], eax
je 0x45ff14
mov ecx, dword [eax]
and ecx, 0xff
cmp ecx, 0x80
jae 0x45ff0d
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x45ff14
mov ecx, ebp
call fcn.0049d350
mov ebx, dword [edi + 0x50]
cmp ebx, dword [esi + 0x50]
lea ebp, [edi + 0x50]
je 0x45ffb4
test ebx, ebx
je 0x45ff80
mov edx, dword [ebx]
and edx, 0xff
cmp edx, 0x80
jae 0x45ff79
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
and eax, 0xff
cmp eax, 0x7f
jne 0x45ff69
mov eax, dword [ebx]
and eax, 0xff
cmp eax, 0x80
jae 0x45ff64
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
jmp 0x45ff69
mov eax, 0xff
test eax, eax
jne 0x45ff79
mov ecx, dword [ebp]
push ecx
call fcn.00499410
add esp, 4
mov dword [ebp], 0
mov eax, dword [esi + 0x50]
test eax, eax
mov dword [ebp], eax
je 0x45ffb4
mov edx, dword [eax]
and edx, 0xff
cmp edx, 0x80
jae 0x45ffad
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x45ffb4
mov ecx, ebp
call fcn.0049d350
add esi, 0x54
push esi
lea ecx, [edi + 0x54]
call fcn.00499b00
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
ret 4