Function at 0x1007c250
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x94
push ebx
mov ebx, edx
mov edx, ecx
push esi
push edi
mov dword [esp + 0x30], edx
mov esi, dword [ebx + 0x14]
test esi, esi
je 0x1007c276
mov edi, dword [esi + 0x84]
jmp 0x1007c278
xor edi, edi
mov eax, dword [edi + 0xc]
sub eax, dword [edi + 8]
sar eax, 2
test ax, ax
je 0x1007c566
test esi, esi
je 0x1007c296
mov ecx, dword [esi + 0x84]
jmp 0x1007c298
xor ecx, ecx
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
mov ecx, dword [esi + 0x84]
mov edi, dword [edx]
sar eax, 2
dec eax
mov dword [esp + 0x28], edi
movzx eax, ax
mov dword [esp + 0x3c], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0xc]
mov edx, dword [eax + 0x10]
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
sar eax, 2
mov dword [esp + 0x20], edx
test ax, ax
je 0x1007c2f8
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
sar eax, 2
test eax, eax
je 0x1007c2e8
mov eax, dword [ecx + 8]
mov eax, dword [eax]
jmp 0x1007c2ea
xor eax, eax
mov eax, dword [eax]
cmp edx, dword [eax + 0xc]
jae 0x1007c2f8
mov esi, 0xffff
jmp 0x1007c31e
push 1
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
push edx
call fcn.10099ab0
test al, al
je 0x1007c566
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x20], edx
cmp edx, dword [ebx + 4]
jae 0x1007c566
cmp dword [esp + 0x2c], 0x8000
jb 0x1007c566
cmp byte [edx + edi], 0x55
mov dword [esp + 0x18], 0
mov byte [esp + 0x11], 0
mov byte [esp + 0x13], 0
mov byte [esp + 0x12], 0
mov byte [esp + 0x10], 0
jne 0x1007c566
movzx eax, byte [edx + edi + 1]
movzx ecx, byte [edx + edi + 2]
shl eax, 8
add ecx, eax
movzx eax, byte [edx + edi + 3]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx + edi + 4]
shl ecx, 8
add ecx, eax
cmp ecx, 0x8bec83ec
jne 0x1007c566
movzx ecx, byte [edx + edi + 6]
mov eax, 0x100
imul cx, ax
mov dword [esp + 0x34], eax
movzx eax, byte [edx + edi + 7]
add cx, ax
movzx eax, cx
mov ecx, 0xf85
cmp ax, cx
jne 0x1007c566
lea ecx, [edi + 8]
add ecx, edx
call fcn.1001ca30
mov dword [esp + 0x24], eax
test eax, eax
js 0x1007c566
lea eax, [esp + 0x38]
mov ecx, ebx
push eax
lea eax, [esp + 0x18]
push eax
push esi
call fcn.10095250
test al, al
je 0x1007c566
mov ecx, dword [ebx + 0x14]
test ecx, ecx
je 0x1007c3f4
mov ecx, dword [ecx + 0x84]
jmp 0x1007c3f6
xor ecx, ecx
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
sar eax, 2
cmp si, ax
jae 0x1007c566
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
movzx esi, si
sar eax, 2
cmp esi, eax
jae 0x1007c420
mov eax, dword [ecx + 8]
mov esi, dword [eax + esi*4]
jmp 0x1007c422
xor esi, esi
cmp byte [esi + 0x24], 0
mov eax, dword [esi]
mov edi, dword [eax + 0xc]
jne 0x1007c434
mov ecx, esi
call fcn.10097cc0
mov eax, dword [esi + 0x20]
add eax, edi
cmp edi, eax
ja 0x1007c566
sub edi, dword [esp + 0x14]
mov ecx, ebx
mov eax, dword [esp + 0x24]
add edi, dword [esp + 0x20]
add eax, 0xc
mov esi, dword [esp + 0x3c]
add eax, edi
mov dword [esp + 0x14], eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x28]
push eax
push esi
call fcn.10095250
test al, al
je 0x1007c566
mov ecx, dword [ebx + 0x14]
test ecx, ecx
je 0x1007c483
mov ecx, dword [ecx + 0x84]
jmp 0x1007c485
xor ecx, ecx
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
sar eax, 2
cmp si, ax
jae 0x1007c566
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
movzx esi, si
sar eax, 2
cmp esi, eax
jae 0x1007c4af
mov eax, dword [ecx + 8]
mov esi, dword [eax + esi*4]
jmp 0x1007c4b1
xor esi, esi
cmp byte [esi + 0x24], 0
mov eax, dword [esi]
mov edi, dword [eax + 0xc]
jne 0x1007c4c3
mov ecx, esi
call fcn.10097cc0
mov eax, dword [esi + 0x20]
add eax, edi
cmp edi, eax
ja 0x1007c566
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
sub eax, edi
mov esi, dword [esp + 0x28]
add ebx, eax
add esi, ebx
mov ecx, esi
call fcn.1001ca50
cmp eax, 0xe8e5ffff
jne 0x1007c566
cmp byte [esi + 4], 0xff
jne 0x1007c566
mov edi, dword [esp + 0x30]
lea eax, [ebx + 5]
mov ecx, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
mov edx, dword [edi]
mov dword [ecx], eax
mov eax, 4
mov dword [esi], ebx
mov ecx, dword [edx + ebx + 1]
not ecx
sub eax, ecx
add dword [esi], eax
mov eax, dword [esi]
test cl, cl
js 0x1007c566
mov ebx, dword [esp + 0x28]
movzx ecx, byte [eax + ebx + 1]
movzx eax, byte [eax + ebx]
imul ax, word [esp + 0x34]
add cx, ax
movzx eax, cx
mov ecx, 0x5fb8
cmp ax, cx
jne 0x1007c566
push dword [esp + 0x20]
lea ecx, [esp + 0x44]
push dword [edi + 4]
push edx
call fcn.1001d150
push dword [esi]
lea ecx, [esp + 0x44]
call fcn.1001d110
mov esi, dword [esi]
lea eax, [esi + 0x20]
cmp esi, eax
jb 0x1007c574
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x28]
lea edx, [esp + 0x1f]
lea ecx, [esp + 0x40]
call fcn.100ae1f0
mov edi, eax
cmp esi, dword [esp + 0x2c]
jae 0x1007c566
test edi, edi
je 0x1007c566
lea ecx, [esi + ebx]
mov bl, byte [ecx]
cmp bl, 0xb8
jne 0x1007c606
cmp dword [esp + 0x18], 0
jne 0x1007c606
mov eax, dword [esp + 0x30]
mov bh, 1
mov ecx, dword [ebp + 0xc]
mov byte [esp + 0x11], bh
mov dword [esp + 0x18], 1
mov eax, dword [eax]
mov al, byte [eax + esi + 1]
mov byte [ecx], al
mov dl, byte [esp + 0x13]
mov bl, byte [esp + 0x12]
mov dh, byte [esp + 0x10]
mov eax, dword [ebp + 0x10]
add esi, edi
mov eax, dword [eax]
add eax, 0x20
cmp esi, eax
jb 0x1007c570
test dh, dh
je 0x1007c566
test bl, bl
je 0x1007c566
test dl, dl
je 0x1007c566
test bh, bh
je 0x1007c566
mov eax, dword [ebp + 8]
cmp dword [eax], 0
je 0x1007c566
cmp byte [ecx], 0
je 0x1007c566
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
cmp bl, 0xb9
jne 0x1007c61a
mov ecx, dword [ebp + 0xc]
mov dl, 1
mov bh, byte [esp + 0x11]
mov byte [esp + 0x13], dl
jmp 0x1007c5bf
call fcn.1001ca50
mov ecx, dword [ebp + 0xc]
mov bh, byte [esp + 0x11]
cmp eax, 0x30074748
jne 0x1007c639
mov dl, byte [esp + 0x13]
mov bl, 1
mov byte [esp + 0x12], bl
jmp 0x1007c5c3
cmp bl, 0xe0
jne 0x1007c5bb
mov dl, byte [esp + 0x13]
mov dh, 1
mov bl, byte [esp + 0x12]
mov byte [esp + 0x10], dh
jmp 0x1007c5c7