Function at 0x78c5cf
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 0xe
add esp, 0xfffff004
push eax
dec eax
jne 0x78c5d8
add esp, 0xfffff34c
mov eax, dword [ebp - 4]
push ebx
push esi
push edi
mov dword [ebp - 4], eax
xor eax, eax
mov ebx, edx
mov dword [ebp - 8], eax
xor edx, edx
mov dword [ebp - 0xc], edx
lea eax, [ebp - 0x7264]
mov byte [ebp - 0xd], 0
mov edx, dword [ebp - 4]
lea edi, [ebp - 0xe498]
mov esi, ecx
call fcn.0076cac0
mov eax, edi
mov edx, dword [ebp - 4]
call fcn.0076cac0
lea eax, [ebp - 0x7264]
mov ecx, esi
mov edx, ebx
call fcn.00766678
mov byte [ebp - 0x7253], 1
push 0x444099
lea eax, [ebp - 0xe898]
push eax
call fcn.0079e0b8
add esp, 8
mov eax, ebx
call fcn.00764e08
push eax
lea edx, [ebp - 0xe898]
push edx
call fcn.0079dfdc
add esp, 8
lea eax, [ebp - 0xe898]
xor edx, edx
call fcn.007657a4
push 0x4440a0
lea ecx, [ebp - 0xec98]
push ecx
call fcn.0079e0b8
add esp, 8
mov eax, ebx
call fcn.00764e08
push eax
lea edx, [ebp - 0xec98]
push edx
call fcn.0079dfdc
add esp, 8
mov edx, 0x4440a9
mov eax, ebx
call fcn.00765264
test al, al
jne 0x78c6ba
mov edx, 0x4440ad
mov eax, ebx
call fcn.00765264
test al, al
je 0x78c6ca
mov edx, 0x4440b1
lea eax, [ebp - 0xec98]
call fcn.0076514c
lea eax, [ebp - 0xec98]
xor edx, edx
call fcn.007657a4
push 0
lea eax, [ebp - 0xe]
mov ecx, dword [ebp - 4]
mov edx, edi
push dword [ecx + 0x20a4]
push eax
push 0x80000000
push 0
push 0
mov eax, dword [ebp - 4]
lea ecx, [ebp - 0xe898]
call fcn.00767d7c
test al, al
jne 0x78c7cc
cmp byte [ebp - 0xe], 0
jne 0x78c72c
mov eax, 0x4479e4
mov edx, 9
call fcn.0079612c
lea edx, [ebp - 0xe898]
mov eax, 0x4479e4
call fcn.00795f8c
mov al, byte [ebp - 0xe]
push eax
lea eax, [edi + 0x5850]
mov edx, 2
call fcn.00765cc0
lea eax, [edi + 0x4b24]
mov edx, 2
call fcn.00765cc0
lea eax, [edi + 0x13bc]
mov edx, 2
call fcn.00790c54
lea eax, [edi + 0xe6c]
mov edx, 2
call fcn.00765cc0
mov eax, edi
xor edx, edx
call fcn.0076650c
lea eax, [ebp - 0x1a14]
mov edx, 2
call fcn.00765cc0
lea eax, [ebp - 0x2740]
mov edx, 2
call fcn.00765cc0
lea eax, [ebp - 0x5ea8]
mov edx, 2
call fcn.00790c54
lea eax, [ebp - 0x63f8]
mov edx, 2
call fcn.00765cc0
lea eax, [ebp - 0x7264]
xor edx, edx
call fcn.0076650c
pop eax
jmp 0x78d2cd
lea edx, [ebp - 0xe898]
mov eax, 0xdd4
push edx
call fcn.00771dbc
push eax
call fcn.0078e1dc
add esp, 8
mov edx, edi
lea eax, [ebp - 0x7264]
call fcn.0078b5d8
mov esi, eax
cmp esi, 2
jne 0x78c8a4
mov eax, edi
call fcn.00766800
mov al, 1
push eax
lea eax, [edi + 0x5850]
mov edx, 2
call fcn.00765cc0
lea eax, [edi + 0x4b24]
mov edx, 2
call fcn.00765cc0
lea eax, [edi + 0x13bc]
mov edx, 2
call fcn.00790c54
lea eax, [edi + 0xe6c]
mov edx, 2
call fcn.00765cc0
mov eax, edi
xor edx, edx
call fcn.0076650c
lea eax, [ebp - 0x1a14]
mov edx, 2
call fcn.00765cc0
lea eax, [ebp - 0x2740]
mov edx, 2
call fcn.00765cc0
lea eax, [ebp - 0x5ea8]
mov edx, 2
call fcn.00790c54
lea eax, [ebp - 0x63f8]
mov edx, 2
call fcn.00765cc0
lea eax, [ebp - 0x7264]
xor edx, edx
call fcn.0076650c
pop eax
jmp 0x78d2cd
cmp esi, 1
jne 0x78c98a
mov eax, edi
call fcn.00766800
mov edx, dword [ebp - 4]
cmp byte [edx + 0x20e8], 0
jne 0x78c98a
mov eax, 0xde8
call fcn.00771dbc
push eax
call fcn.0078e218
pop ecx
mov eax, 0xbba
call fcn.00771dbc
call fcn.0078e4cc
dec eax
je 0x78c98a
mov al, 1
push eax
lea eax, [edi + 0x5850]
mov edx, 2
call fcn.00765cc0
lea eax, [edi + 0x4b24]
mov edx, 2
call fcn.00765cc0
lea eax, [edi + 0x13bc]
mov edx, 2
call fcn.00790c54
lea eax, [edi + 0xe6c]
mov edx, 2
call fcn.00765cc0
mov eax, edi
xor edx, edx
call fcn.0076650c
lea eax, [ebp - 0x1a14]
mov edx, 2
call fcn.00765cc0
lea eax, [ebp - 0x2740]
mov edx, 2
call fcn.00765cc0
lea eax, [ebp - 0x5ea8]
mov edx, 2
call fcn.00790c54
lea eax, [ebp - 0x63f8]
mov edx, 2
call fcn.00765cc0
lea eax, [ebp - 0x7264]
xor edx, edx
call fcn.0076650c
pop eax
jmp 0x78d2cd
test esi, esi
jne 0x78c995
mov eax, edi
call fcn.00766890
push 0
push 0
lea eax, [ebp - 0x7264]
xor edx, edx
call fcn.00766c44
push 0
push 0
lea ecx, [ebp - 0xe]
push ecx
push 0x80000000
push 0
push 0
lea ecx, [ebp - 0xec98]
mov edx, edi
mov eax, dword [ebp - 4]
call fcn.00767d7c
test al, al
jne 0x78ca9d
cmp byte [ebp - 0xe], 0
jne 0x78c9f4
mov eax, 0x4479e4
mov edx, 9
call fcn.0079612c
lea edx, [ebp - 0xec98]
mov eax, 0x4479e4
call fcn.00795f8c
xor eax, eax
mov al, byte [ebp - 0xe]
cmp eax, 1
sbb eax, eax
neg eax
push eax
lea eax, [edi + 0x5850]
mov edx, 2
call fcn.00765cc0
lea eax, [edi + 0x4b24]
mov edx, 2
call fcn.00765cc0
lea eax, [edi + 0x13bc]
mov edx, 2
call fcn.00790c54
lea eax, [edi + 0xe6c]
mov edx, 2
call fcn.00765cc0
mov eax, edi
xor edx, edx
call fcn.0076650c
lea eax, [ebp - 0x1a14]
mov edx, 2
call fcn.00765cc0
lea eax, [ebp - 0x2740]
mov edx, 2
call fcn.00765cc0
lea eax, [ebp - 0x5ea8]
mov edx, 2
call fcn.00790c54
lea eax, [ebp - 0x63f8]
mov edx, 2
call fcn.00765cc0
lea eax, [ebp - 0x7264]
xor edx, edx
call fcn.0076650c
pop eax
jmp 0x78d2cd
lea eax, [ebp - 0x7264]
call fcn.00766f0c
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
push ebx
mov eax, 0xdd2
call fcn.00771dbc
push eax
call fcn.0078e1dc
add esp, 8
lea edx, [ebp - 0xec98]
push edx
mov eax, 0xdd4
call fcn.00771dbc
push eax
call fcn.0078e1dc
add esp, 8
xor edx, edx
mov byte [ebp - 0x19], 0
lea eax, [ebp - 0x7264]
call fcn.0076ce04
test al, al
je 0x78cbdb
mov byte [ebp - 0x19], 1
mov cx, word [ebp - 0x3380]
mov word [edi + 0x3ee4], cx
mov ax, word [ebp - 0x337e]
mov word [edi + 0x3ee6], ax
cmp byte [ebp - 0xc5c], 0
je 0x78cbdb
mov eax, 0xdd6
call fcn.00771dbc
push eax
lea edx, [ebp - 0x724d]
push edx
call fcn.0078e15c
add esp, 8
mov al, 1
push eax
lea eax, [edi + 0x5850]
mov edx, 2
call fcn.00765cc0
lea eax, [edi + 0x4b24]
mov edx, 2
call fcn.00765cc0
lea eax, [edi + 0x13bc]
mov edx, 2
call fcn.00790c54
lea eax, [edi + 0xe6c]
mov edx, 2
call fcn.00765cc0
mov eax, edi
xor edx, edx
call fcn.0076650c
lea eax, [ebp - 0x1a14]
mov edx, 2
call fcn.00765cc0
lea eax, [ebp - 0x2740]
mov edx, 2
call fcn.00765cc0
lea eax, [ebp - 0x5ea8]
mov edx, 2
call fcn.00790c54
lea eax, [ebp - 0x63f8]
mov edx, 2
call fcn.00765cc0
lea eax, [ebp - 0x7264]
xor edx, edx
call fcn.0076650c
pop eax
jmp 0x78d2cd
xor edx, edx
mov dword [edi + 0x3eec], edx
mov word [edi + 0x3ee8], dx
and word [edi + 0x3ee4], 0xff9f
mov eax, edi
xor ecx, ecx
mov edx, 0x72
call fcn.0076a8f8
mov eax, edi
xor ecx, ecx
mov edx, 0x73
call fcn.0076a8f8
mov eax, dword [ebp - 0xc6c]
mov edx, dword [ebp - 0xc68]
add eax, 0xd
adc edx, 0
push edx
push eax
lea eax, [ebp - 0x7264]
xor edx, edx
call fcn.00766c44
movzx eax, word [edi + 0x3ee6]
add eax, 0xfffffff3
cdq
push edx
push eax
mov edx, edi
lea eax, [ebp - 0x7264]
call fcn.00767038
push 0
push 0
lea eax, [ebp - 0x7264]
xor edx, edx
call fcn.00766c44
lea eax, [ebp - 0xeca4]
mov edx, 0x10000
call fcn.007670ec
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
lea eax, [ebp - 0x7264]
mov ecx, dword [ebp - 0xeca0]
mov edx, dword [ebp - 0xeca4]
call fcn.00766ad8
mov eax, dword [ebp - 0xeca0]
add eax, 0xfffff000
cdq
add dword [ebp - 0x2c], eax
adc dword [ebp - 0x28], edx
mov eax, dword [ebp - 0xeca0]
add eax, 0xfffff000
cdq
push edx
push eax
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
call fcn.007a0cbc
mov ebx, eax
xor eax, eax
add ebx, dword [ebp - 0xeca4]
xor ecx, ecx
xor edx, edx
mov al, byte [ebx + 2]
mov dword [edi + 0x3ef8], eax
xor eax, eax
mov cl, byte [ebx + 6]
mov dl, byte [ebx + 5]
shl ecx, 8
add dx, cx
mov word [edi + 0x3efe], dx
xor edx, edx
mov dl, byte [ebx + 0x1b]
mov al, byte [ebx + 0x1a]
shl edx, 8
add ax, dx
mov word [edi + 0x3f16], ax
cmp dword [edi + 0x3ef8], 0x74
jne 0x78d0fb
cmp word [edi + 0x3efe], 0x1000
jae 0x78d0fb
cmp word [edi + 0x3f16], 0
jbe 0x78d0fb
cmp word [edi + 0x3f16], 0x400
jae 0x78d0fb
xor eax, eax
xor ecx, ecx
mov al, byte [ebx + 1]
mov cl, byte [ebx]
shl eax, 8
xor edx, edx
add cx, ax
xor eax, eax
mov word [edi + 0x3ef4], cx
xor ecx, ecx
mov cl, byte [ebx + 4]
mov dl, byte [ebx + 3]
shl ecx, 8
add dx, cx
xor ecx, ecx
mov word [edi + 0x3efc], dx
xor edx, edx
mov dl, byte [ebx + 8]
mov al, byte [ebx + 7]
shl edx, 8
mov cl, byte [ebx + 9]
add eax, edx
xor edx, edx
mov dl, byte [ebx + 0xa]
shl ecx, 0x10
shl edx, 0x18
add eax, ecx
add eax, edx
xor ecx, ecx
mov dword [edi + 0x3f00], eax
xor eax, eax
mov cl, byte [ebx + 0xc]
mov al, byte [ebx + 0xb]
shl ecx, 8
xor edx, edx
add eax, ecx
mov dl, byte [ebx + 0xd]
xor ecx, ecx
mov cl, byte [ebx + 0xe]
shl edx, 0x10
shl ecx, 0x18
add eax, edx
add eax, ecx
xor edx, edx
mov dword [edi + 0x3f04], eax
xor ecx, ecx
mov al, byte [ebx + 0xf]
mov byte [edi + 0x3f08], al
xor eax, eax
mov dl, byte [ebx + 0x11]
mov al, byte [ebx + 0x10]
shl edx, 8
mov cl, byte [ebx + 0x12]
add eax, edx
xor edx, edx
mov dl, byte [ebx + 0x13]
shl ecx, 0x10
shl edx, 0x18
add eax, ecx
add eax, edx
xor ecx, ecx
mov dword [edi + 0x3f0c], eax
xor eax, eax
mov cl, byte [ebx + 0x15]
mov al, byte [ebx + 0x14]
shl ecx, 8
xor edx, edx
add eax, ecx
mov dl, byte [ebx + 0x16]
xor ecx, ecx
mov cl, byte [ebx + 0x17]
shl edx, 0x10
shl ecx, 0x18
add eax, edx
add eax, ecx
xor ecx, ecx
mov dword [edi + 0x3f10], eax
xor edx, edx
mov al, byte [ebx + 0x18]
mov byte [edi + 0x3f14], al
mov al, byte [ebx + 0x19]
mov byte [edi + 0x3f15], al
xor eax, eax
mov cl, byte [ebx + 0x1d]
mov dl, byte [ebx + 0x1c]
shl ecx, 8
mov al, byte [ebx + 0x1e]
add edx, ecx
xor ecx, ecx
mov cl, byte [ebx + 0x1f]
shl eax, 0x10
shl ecx, 0x18
add edx, eax
add edx, ecx
mov dword [edi + 0x3f18], edx
test byte [edi + 0x3efd], 1
je 0x78ceb5
xor eax, eax
xor edx, edx
mov al, byte [ebx + 0x21]
mov dl, byte [ebx + 0x20]
shl eax, 8
xor ecx, ecx
add edx, eax
mov cl, byte [ebx + 0x22]
xor eax, eax
mov al, byte [ebx + 0x23]
shl ecx, 0x10
shl eax, 0x18
add edx, ecx
add edx, eax
xor ecx, ecx
mov dword [edi + 0x3f1c], edx
xor edx, edx
mov cl, byte [ebx + 0x25]
mov dl, byte [ebx + 0x24]
shl ecx, 8
xor eax, eax
add edx, ecx
mov al, byte [ebx + 0x26]
xor ecx, ecx
mov cl, byte [ebx + 0x27]
shl eax, 0x10
shl ecx, 0x18
add edx, eax
add edx, ecx
mov dword [edi + 0x3f20], edx
jmp 0x78cec3
xor edx, edx
mov dword [edi + 0x3f20], edx
mov dword [edi + 0x3f1c], edx
mov eax, dword [edi + 0x3f1c]
xor edx, edx
mov edx, eax
xor eax, eax
push edx
push eax
mov eax, dword [edi + 0x3f00]
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
mov dword [edi + 0x4be8], eax
mov dword [edi + 0x4bec], edx
mov eax, dword [edi + 0x3f20]
xor edx, edx
mov edx, eax
xor eax, eax
push edx
push eax
mov eax, dword [edi + 0x3f04]
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
mov dword [edi + 0x4bf0], eax
mov dword [edi + 0x4bf4], edx
movzx ecx, word [edi + 0x3f16]
push ecx
mov eax, edi
xor edx, edx
call fcn.0078d342
add eax, ebx
push eax
lea ecx, [edi + 0x3f24]
push ecx
call fcn.0079dec8
add esp, 0xc
test byte [edi + 0x3efd], 2
je 0x78cf91
lea eax, [ebp - 0xecb8]
call fcn.00771918
lea edx, [edi + 0x3f24]
push edx
call fcn.0079e0e8
pop ecx
inc eax
movzx ecx, word [edi + 0x3f16]
sub ecx, eax
lea edx, [edi + 0x4324]
push ecx
lea ecx, [edi + 0x3f24]
add ecx, eax
push edx
lea edx, [edi + 0x3f24]
push 0x400
lea eax, [ebp - 0xecb8]
call fcn.00771b8c
jmp 0x78cf9a
mov word [edi + 0x4324], 0
test byte [edi + 0x3efd], 4
je 0x78cfc9
push 8
mov eax, edi
xor edx, edx
call fcn.0078d342
add eax, ebx
movzx ecx, word [edi + 0x3f16]
add eax, ecx
push eax
lea eax, [edi + 0x4b30]
push eax
call fcn.0079dec8
add esp, 0xc
movzx esi, word [edi + 0x3efe]
add esi, 0xfffffffe
mov byte [ebp - 0x2d], 0
test esi, esi
jg 0x78cfe1
mov byte [ebp - 0x2d], 1
jmp 0x78d01c
test byte [edi + 0x3efc], 8
je 0x78d001
mov eax, edi
mov dl, 1
call fcn.0078d342
mov esi, eax
movzx eax, word [edi + 0x3f16]
add esi, eax
add esi, 0xfffffffe
lea edx, [ebx + 2]
mov ecx, esi
or eax, 0xffffffff
call fcn.0076f610
not ax
and ax, 0xffff
mov word [edi + 0x661a], ax
cmp byte [ebp - 0x2d], 0
jne 0x78d0fb
lea ecx, [ebp - 0xd]
mov edx, edi
mov eax, dword [ebp - 4]
call fcn.0078d2d4
test al, al
je 0x78d0fb
movzx eax, word [edi + 0x3efe]
cdq
add eax, dword [ebp - 0x24]
mov bl, 1
adc edx, dword [ebp - 0x20]
push edx
push eax
lea eax, [ebp - 0x7264]
xor edx, edx
call fcn.00766c44
movzx ecx, word [edi + 0x3f16]
mov byte [edi + ecx + 0x3f24], 0
call fcn.0076f1e4
test bl, bl
je 0x78d0fb
cmp word [edi + 0x4324], 0
jne 0x78d08d
lea eax, [edi + 0x3f24]
mov dl, 1
call fcn.007657a4
movzx ecx, word [edi + 0x3efc]
and ecx, 0xffffefff
or dword [ebp - 0xc], ecx
mov eax, edi
mov dl, 1
call fcn.0078d342
add ax, word [edi + 0x3f16]
mov word [edi + 0x3efe], ax
lea eax, [edi + 0x3f24]
call fcn.00764b38
push eax
mov eax, 0xdd8
call fcn.00771dbc
push eax
call fcn.0078e1dc
add esp, 8
inc dword [ebp - 8]
mov eax, edi
xor ecx, ecx
mov edx, 0x74
call fcn.0076a8f8
mov eax, dword [edi + 0x3f00]
xor edx, edx
push edx
push eax
mov edx, edi
lea eax, [ebp - 0x7264]
call fcn.00767038
add dword [ebp - 0x24], 1
adc dword [ebp - 0x20], 0
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
sub eax, 0x20
sbb edx, 0
cmp edx, dword [ebp - 0x20]
jne 0x78d11b
cmp eax, dword [ebp - 0x24]
ja 0x78d11d
jmp 0x78d189
jle 0x78d189
mov eax, dword [ebp - 0xeca0]
add eax, 0xfffff000
cdq
push edx
push eax
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
call fcn.007a0cbc
cmp edx, 0
jne 0x78ccb0
cmp eax, 0
jne 0x78ccb0
push dword [ebp - 0x28]
push dword [ebp - 0x2c]
lea eax, [ebp - 0x7264]
xor edx, edx
call fcn.00766c44
lea eax, [ebp - 0x7264]
mov ecx, dword [ebp - 0xeca0]
mov edx, dword [ebp - 0xeca4]
call fcn.00766ad8
mov eax, dword [ebp - 0xeca0]
add eax, 0xfffff000
cdq
add dword [ebp - 0x2c], eax
adc dword [ebp - 0x28], edx
jmp 0x78ccb0
test byte [ebp - 0xc], 3
je 0x78d197
or word [edi + 0x3ee4], 1
cmp dword [ebp - 8], 0
jle 0x78d1da
cmp byte [ebp - 0x19], 0
jne 0x78d1da
mov ecx, dword [ebp - 4]
cmp byte [ecx + 0x20e8], 0
jne 0x78d1da
mov eax, 0xdda
call fcn.00771dbc
push eax
call fcn.0078e218
pop ecx
mov eax, 0xbba
call fcn.00771dbc
call fcn.0078e4cc
dec eax
jne 0x78d1da
or word [edi + 0x3ee4], 8
cmp dword [ebp - 8], 0
jne 0x78d1f3
mov eax, 0xddc
call fcn.00771dbc
push eax
call fcn.0078e1dc
pop ecx
jmp 0x78d223
push 0
push 0
mov eax, edi
xor edx, edx
call fcn.00766c44
mov eax, edi
xor ecx, ecx
mov edx, 0x72
call fcn.0076a8f8
mov eax, edi
xor ecx, ecx
mov edx, 0x73
call fcn.0076a8f8
mov eax, edi
call fcn.00766800
mov al, 1
push eax
lea eax, [ebp - 0xeca4]
mov edx, 2
call fcn.00764658
lea eax, [edi + 0x5850]
mov edx, 2
call fcn.00765cc0
lea eax, [edi + 0x4b24]
mov edx, 2
call fcn.00765cc0
lea eax, [edi + 0x13bc]
mov edx, 2
call fcn.00790c54
lea eax, [edi + 0xe6c]
mov edx, 2
call fcn.00765cc0
mov eax, edi
xor edx, edx
call fcn.0076650c
lea eax, [ebp - 0x1a14]
mov edx, 2
call fcn.00765cc0
lea eax, [ebp - 0x2740]
mov edx, 2
call fcn.00765cc0
lea eax, [ebp - 0x5ea8]
mov edx, 2
call fcn.00790c54
lea eax, [ebp - 0x63f8]
mov edx, 2
call fcn.00765cc0
lea eax, [ebp - 0x7264]
xor edx, edx
call fcn.0076650c
pop eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret