Function at 0x5d0470
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
push edi
push esi
mov esi, ecx
push ebx
sub esp, 0x5c
mov eax, dword [ecx]
mov dword [esp + 0x3c], ecx
call dword [eax + 0x20]
cmp eax, 0xd
je 0x5d050c
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x20]
cmp eax, 0xe
je 0x5d050c
mov eax, dword [esp + 0x3c]
movzx eax, byte [eax + 5]
test al, 0xf0
je 0x5d0605
sar al, 4
movsx eax, al
mov esi, eax
mov eax, dword [esp + 0x3c]
movzx eax, byte [eax + 6]
shl eax, 4
sar al, 4
movsx eax, al
imul eax, esi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x4c]
test eax, eax
je 0x5d05f9
mov eax, dword [eax + 4]
test eax, eax
je 0x5d05eb
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
sub eax, ebx
sar eax, 3
test eax, eax
jle 0x5d05eb
mov edx, dword [ebx]
mov ecx, 1
cmp ecx, eax
je 0x5d05f0
imul edx, dword [ebx + ecx*8]
add ecx, 1
jmp 0x5d04fb
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x1c], 0
mov eax, dword [eax + 0x50]
mov esi, dword [eax + 4]
cmp esi, dword [eax + 8]
mov dword [esp + 0x40], esi
je 0x5d04c7
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov esi, eax
mov dword [esp + 0x30], eax
mov eax, dword [eax]
mov ecx, esi
call dword [eax + 0x20]
cmp eax, 0xd
je 0x5d0630
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x20]
cmp eax, 0xe
je 0x5d0630
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + 5]
test al, 0xf0
je 0x5d061e
sar al, 4
movsx eax, al
mov esi, eax
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + 6]
shl eax, 4
sar al, 4
movsx eax, al
imul eax, esi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x4c]
test eax, eax
je 0x5d05c5
mov eax, dword [eax + 4]
test eax, eax
je 0x5d0617
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
sub eax, ebx
sar eax, 3
test eax, eax
jle 0x5d0617
mov edx, dword [ebx]
mov ecx, 1
jmp 0x5d05b8
imul edx, dword [ebx + ecx*8]
add ecx, 1
cmp ecx, eax
jne 0x5d05b1
imul edx, dword [esp + 0x20]
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x3c]
add dword [esp + 0x40], 0x14
mov esi, dword [esp + 0x40]
mov eax, dword [eax + 0x50]
cmp dword [eax + 8], esi
jne 0x5d0527
jmp 0x5d04c7
mov edx, 1
imul edx, dword [esp + 0x1c]
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x1c]
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
shl eax, 4
sar al, 4
movsx eax, al
mov dword [esp + 0x1c], eax
jmp 0x5d04c7
mov edx, 1
jmp 0x5d05bc
shl eax, 4
sar al, 4
movsx eax, al
mov dword [esp + 0x20], eax
jmp 0x5d0583
mov eax, dword [esp + 0x30]
mov dword [esp + 0x20], 0
mov eax, dword [eax + 0x50]
mov esi, dword [eax + 4]
cmp esi, dword [eax + 8]
mov dword [esp + 0x44], esi
je 0x5d0583
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
mov esi, eax
mov dword [esp + 0x34], eax
mov eax, dword [eax]
mov ecx, esi
call dword [eax + 0x20]
cmp eax, 0xd
je 0x5d071a
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x20]
cmp eax, 0xe
je 0x5d071a
mov eax, dword [esp + 0x34]
movzx eax, byte [eax + 5]
test al, 0xf0
je 0x5d0c55
sar al, 4
movsx eax, al
mov esi, eax
mov eax, dword [esp + 0x34]
movzx eax, byte [eax + 6]
shl eax, 4
sar al, 4
movsx eax, al
imul eax, esi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x4c]
test eax, eax
je 0x5d06f4
mov eax, dword [eax + 4]
test eax, eax
je 0x5d0c4b
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
sub eax, ebx
sar eax, 3
test eax, eax
jle 0x5d0c4b
mov edx, dword [ebx]
mov ecx, 1
jmp 0x5d06e7
imul edx, dword [ebx + ecx*8]
add ecx, 1
cmp ecx, eax
jne 0x5d06e0
imul edx, dword [esp + 0x24]
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x24]
add dword [esp + 0x20], eax
mov eax, dword [esp + 0x30]
add dword [esp + 0x44], 0x14
mov esi, dword [esp + 0x44]
mov eax, dword [eax + 0x50]
cmp esi, dword [eax + 8]
jne 0x5d064f
jmp 0x5d0583
mov eax, dword [esp + 0x34]
mov dword [esp + 0x24], 0
mov eax, dword [eax + 0x50]
mov esi, dword [eax + 4]
cmp esi, dword [eax + 8]
mov dword [esp + 0x48], esi
je 0x5d06ab
mov eax, dword [esp + 0x48]
mov eax, dword [eax]
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [eax]
mov ecx, esi
call dword [eax + 0x20]
cmp eax, 0xd
je 0x5d0801
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x20]
cmp eax, 0xe
je 0x5d0801
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + 5]
test al, 0xf0
je 0x5d0c26
sar al, 4
movsx eax, al
mov esi, eax
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + 6]
shl eax, 4
sar al, 4
movsx eax, al
imul eax, esi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x4c]
test eax, eax
je 0x5d07db
mov eax, dword [eax + 4]
test eax, eax
je 0x5d0c38
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
sub eax, ebx
sar eax, 3
test eax, eax
jle 0x5d0c38
mov edx, dword [ebx]
mov ecx, 1
jmp 0x5d07ce
imul edx, dword [ebx + ecx*8]
add ecx, 1
cmp ecx, eax
jne 0x5d07c7
imul edx, dword [esp + 0x2c]
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x2c]
add dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
add dword [esp + 0x48], 0x14
mov esi, dword [esp + 0x48]
mov eax, dword [eax + 0x50]
cmp esi, dword [eax + 8]
jne 0x5d0739
jmp 0x5d06ab
mov eax, dword [esp + 0x38]
mov dword [esp + 0x2c], 0
mov eax, dword [eax + 0x50]
mov esi, dword [eax + 4]
cmp dword [eax + 8], esi
mov dword [esp + 0x4c], esi
je 0x5d0795
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov esi, eax
mov dword [esp + 0x28], eax
mov eax, dword [eax]
mov ecx, esi
call dword [eax + 0x20]
cmp eax, 0xd
je 0x5d08e8
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x20]
cmp eax, 0xe
je 0x5d08e8
mov eax, dword [esp + 0x28]
movzx eax, byte [eax + 5]
test al, 0xf0
je 0x5d0c01
sar al, 4
movsx eax, al
mov esi, eax
mov eax, dword [esp + 0x28]
movzx eax, byte [eax + 6]
shl eax, 4
sar al, 4
movsx eax, al
imul eax, esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x4c]
test eax, eax
je 0x5d08c2
mov eax, dword [eax + 4]
test eax, eax
je 0x5d0c13
mov ebx, dword [eax + 4]
mov ecx, dword [eax + 8]
sub ecx, ebx
sar ecx, 3
test ecx, ecx
jle 0x5d0c13
mov edx, dword [ebx]
mov eax, 1
jmp 0x5d08b5
imul edx, dword [ebx + eax*8]
add eax, 1
cmp eax, ecx
jne 0x5d08ae
imul edx, dword [esp + 0x14]
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x14]
add dword [esp + 0x2c], eax
mov eax, dword [esp + 0x38]
add dword [esp + 0x4c], 0x14
mov esi, dword [esp + 0x4c]
mov eax, dword [eax + 0x50]
cmp esi, dword [eax + 8]
jne 0x5d0820
jmp 0x5d0795
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], 0
mov eax, dword [eax + 0x50]
mov esi, dword [eax + 4]
cmp esi, dword [eax + 8]
mov dword [esp + 0x18], esi
je 0x5d087c
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov esi, eax
mov dword [esp + 0x10], eax
mov eax, dword [eax]
mov ecx, esi
call dword [eax + 0x20]
cmp eax, 0xd
je 0x5d09cf
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x20]
cmp eax, 0xe
je 0x5d09cf
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + 5]
test al, 0xf0
je 0x5d0bdc
sar al, 4
movsx eax, al
mov esi, eax
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + 6]
shl eax, 4
sar al, 4
movsx eax, al
imul eax, esi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x4c]
test eax, eax
je 0x5d09a9
mov eax, dword [eax + 4]
test eax, eax
je 0x5d0bee
mov ebx, dword [eax + 4]
mov ecx, dword [eax + 8]
sub ecx, ebx
sar ecx, 3
test ecx, ecx
jle 0x5d0bee
mov edx, dword [ebx]
mov eax, 1
jmp 0x5d099c
imul edx, dword [ebx + eax*8]
add eax, 1
cmp eax, ecx
jne 0x5d0995
imul edx, dword [esp + 0xc]
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0xc]
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
add dword [esp + 0x18], 0x14
mov esi, dword [esp + 0x18]
mov eax, dword [eax + 0x50]
cmp esi, dword [eax + 8]
jne 0x5d0907
jmp 0x5d087c
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], 0
mov eax, dword [eax + 0x50]
mov esi, dword [eax + 4]
cmp esi, dword [eax + 8]
mov dword [esp + 8], esi
je 0x5d0963
nop
mov eax, dword [esp + 8]
mov eax, dword [eax]
mov esi, eax
mov dword [esp + 4], eax
mov eax, dword [eax]
mov ecx, esi
call dword [eax + 0x20]
cmp eax, 0xd
je 0x5d0ab7
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x20]
cmp eax, 0xe
je 0x5d0ab7
mov eax, dword [esp + 4]
movzx eax, byte [eax + 5]
test al, 0xf0
je 0x5d0bba
sar al, 4
movsx eax, al
mov esi, eax
mov eax, dword [esp + 4]
movzx eax, byte [eax + 6]
shl eax, 4
sar al, 4
movsx eax, al
imul eax, esi
mov dword [esp], eax
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x4c]
test eax, eax
je 0x5d0a92
mov eax, dword [eax + 4]
test eax, eax
je 0x5d0bcb
mov ebx, dword [eax + 4]
mov ecx, dword [eax + 8]
sub ecx, ebx
sar ecx, 3
test ecx, ecx
jle 0x5d0bcb
mov edx, dword [ebx]
mov eax, 1
jmp 0x5d0a87
imul edx, dword [ebx + eax*8]
add eax, 1
cmp eax, ecx
jne 0x5d0a80
imul edx, dword [esp]
mov dword [esp], edx
mov eax, dword [esp]
add dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
add dword [esp + 8], 0x14
mov esi, dword [esp + 8]
mov eax, dword [eax + 0x50]
cmp esi, dword [eax + 8]
jne 0x5d09f0
jmp 0x5d0963
mov eax, dword [esp + 4]
mov dword [esp], 0
mov eax, dword [eax + 0x50]
mov esi, dword [eax + 4]
cmp esi, dword [eax + 8]
je 0x5d0a4b
mov edi, dword [esi]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x20]
cmp eax, 0xd
je 0x5d0b76
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x20]
cmp eax, 0xe
je 0x5d0b76
movzx eax, byte [edi + 5]
test al, 0xf0
je 0x5d0ba0
sar al, 4
movsx ebp, al
movzx eax, byte [edi + 6]
shl eax, 4
sar al, 4
movsx eax, al
imul ebp, eax
mov eax, dword [edi + 0x4c]
test eax, eax
je 0x5d0b4e
mov eax, dword [eax + 4]
test eax, eax
je 0x5d0bb0
mov ebx, dword [eax + 4]
mov ecx, dword [eax + 8]
sub ecx, ebx
sar ecx, 3
test ecx, ecx
jle 0x5d0bb0
mov edx, dword [ebx]
mov eax, 1
jmp 0x5d0b47
imul edx, dword [ebx + eax*8]
add eax, 1
cmp eax, ecx
jne 0x5d0b40
imul ebp, edx
mov eax, dword [esp + 4]
add esi, 0x14
add dword [esp], ebp
mov eax, dword [eax + 0x50]
cmp esi, dword [eax + 8]
je 0x5d0a4b
mov edi, dword [esi]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x20]
cmp eax, 0xd
jne 0x5d0ae3
mov eax, dword [edi + 0x50]
xor ebp, ebp
mov ebx, dword [eax + 4]
cmp ebx, dword [eax + 8]
je 0x5d0b15
mov ecx, dword [ebx]
add ebx, 0x14
call fcn.005d0470
add ebp, eax
mov eax, dword [edi + 0x50]
cmp ebx, dword [eax + 8]
jne 0x5d0b83
jmp 0x5d0b15
shl eax, 4
sar al, 4
movsx ebp, al
jmp 0x5d0b15
mov edx, 1
imul ebp, edx
jmp 0x5d0b4e
shl eax, 4
sar al, 4
movsx eax, al
mov dword [esp], eax
jmp 0x5d0a4b
mov edx, 1
imul edx, dword [esp]
mov dword [esp], edx
jmp 0x5d0a92
shl eax, 4
sar al, 4
movsx eax, al
mov dword [esp + 0xc], eax
jmp 0x5d0963
mov edx, 1
imul edx, dword [esp + 0xc]
mov dword [esp + 0xc], edx
jmp 0x5d09a9
shl eax, 4
sar al, 4
movsx eax, al
mov dword [esp + 0x14], eax
jmp 0x5d087c
mov edx, 1
imul edx, dword [esp + 0x14]
mov dword [esp + 0x14], edx
jmp 0x5d08c2
shl eax, 4
sar al, 4
movsx eax, al
mov dword [esp + 0x2c], eax
jmp 0x5d0795
mov edx, 1
imul edx, dword [esp + 0x2c]
mov dword [esp + 0x2c], edx
jmp 0x5d07db
mov edx, 1
jmp 0x5d06eb
shl eax, 4
sar al, 4
movsx eax, al
mov dword [esp + 0x24], eax
jmp 0x5d06ab