Function at 0x5e53c0
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
mov edx, dword [ebp + 8]
mov eax, ecx
push ebx
mov ebx, dword [ebp + 0x10]
lea ecx, [esp + 0x20]
push esi
push edi
push dword [ebp + 0xc]
cmp word [ebx + 2], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
je 0x5e5757
call fcn.005e5110
mov ecx, eax
add esp, 4
cmp ecx, 0xffffff88
ja 0x5e574e
movzx esi, word [ebx]
or edi, 0xffffffff
mov eax, dword [esp + 0x2c]
mov ecx, eax
mov ebx, dword [esp + 0x28]
and ecx, 0x1f
shl ebx, cl
add eax, esi
mov ecx, edi
shr ebx, 1
sub ecx, esi
mov dword [esp + 0x2c], eax
and ecx, 0x1f
shr ebx, cl
lea ecx, [esp + 0x28]
mov dword [esp + 0x14], ebx
call fcn.005e1730
mov eax, dword [esp + 0x2c]
sub edi, esi
mov edx, dword [esp + 0x28]
mov ecx, eax
and ecx, 0x1f
and edi, 0x1f
shl edx, cl
add eax, esi
shr edx, 1
mov ecx, edi
shr edx, cl
lea ecx, [esp + 0x28]
mov dword [esp + 0x18], edx
mov dword [esp + 0x2c], eax
call fcn.005e1730
lea ecx, [esp + 0x28]
call fcn.005e1730
mov esi, dword [esp + 0xc]
test eax, eax
jne 0x5e55aa
jmp 0x5e5480
mov eax, dword [esp + 0x10]
add eax, 0xfc
cmp esi, eax
jae 0x5e55aa
mov eax, dword [ebp + 0x10]
mov edi, dword [esp + 0x28]
mov edx, edi
mov eax, dword [eax + ebx*4 + 4]
mov esi, eax
mov ebx, dword [esp + 0x2c]
mov ecx, ebx
and ecx, 0x1f
shr esi, 0x18
shl edx, cl
add ebx, esi
mov ecx, esi
mov esi, dword [esp + 0xc]
neg ecx
and ecx, 0x1f
shr edx, cl
movzx ecx, ax
add ecx, edx
shr eax, 0x10
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x14], ecx
mov ecx, ebx
mov byte [esi], al
and ecx, 0x1f
mov eax, dword [esp + 0x18]
shl edi, cl
mov eax, dword [edx + eax*4 + 4]
mov edx, eax
shr edx, 0x18
mov ecx, edx
add ebx, edx
neg ecx
mov dword [esp + 0x2c], ebx
and ecx, 0x1f
shr edi, cl
movzx ecx, ax
add ecx, edi
shr eax, 0x10
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x28]
mov byte [esi + 1], al
call fcn.005e1730
test eax, eax
jg 0x5e55a3
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x10]
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov edx, edi
mov eax, dword [ecx + eax*4 + 4]
mov esi, eax
mov ecx, ebx
shr esi, 0x18
and ecx, 0x1f
add ebx, esi
shl edx, cl
mov ecx, esi
mov esi, dword [esp + 0xc]
neg ecx
and ecx, 0x1f
shr edx, cl
movzx ecx, ax
add ecx, edx
shr eax, 0x10
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 0x10]
mov byte [esi + 2], al
mov eax, dword [esp + 0x18]
mov eax, dword [ecx + eax*4 + 4]
mov edx, eax
mov ecx, ebx
shr edx, 0x18
and ecx, 0x1f
add ebx, edx
shl edi, cl
mov ecx, edx
neg ecx
mov dword [esp + 0x2c], ebx
and ecx, 0x1f
shr edi, cl
movzx ecx, ax
add ecx, edi
shr eax, 0x10
mov byte [esi + 3], al
add esi, 4
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x28]
mov dword [esp + 0xc], esi
call fcn.005e1730
mov ebx, dword [esp + 0x14]
test eax, eax
je 0x5e5480
jmp 0x5e55aa
add esi, 2
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x10]
add eax, 0xfd
cmp esi, eax
ja 0x5e5749
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x1c], edx
jmp 0x5e55d0
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + eax*4 + 4]
mov ecx, ebx
and ecx, 0x1f
mov esi, eax
shl edx, cl
shr esi, 0x18
mov ecx, esi
add ebx, esi
neg ecx
and ecx, 0x1f
shr edx, cl
movzx ecx, ax
add ecx, edx
shr eax, 0x10
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
mov byte [ecx], al
inc ecx
mov dword [esp + 0xc], ecx
cmp ebx, 0x20
ja 0x5e5668
mov esi, dword [esp + 0x34]
lea eax, [esi + 4]
mov dword [esp + 0x24], eax
cmp edi, eax
jb 0x5e562f
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov edx, dword [edi]
mov dword [esp + 0x1c], edx
jmp 0x5e5687
cmp edi, esi
je 0x5e5683
mov edx, ebx
mov dword [esp + 0x20], 0
shr edx, 3
mov eax, edi
sub eax, edx
cmp eax, esi
jae 0x5e5654
mov edx, edi
mov dword [esp + 0x20], 1
sub edx, esi
imul eax, edx, 0xfffffff8
sub edi, edx
mov edx, dword [edi]
add ebx, eax
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x20], 3
jne 0x5e5687
mov eax, dword [esp + 0x18]
mov edx, dword [ebp + 0x10]
mov al, byte [edx + eax*4 + 6]
mov byte [ecx], al
inc ecx
sub ecx, dword [esp + 0x10]
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add eax, 0xfd
cmp ecx, eax
ja 0x5e5749
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + eax*4 + 4]
mov ecx, ebx
and ecx, 0x1f
mov esi, eax
shl edx, cl
shr esi, 0x18
mov ecx, esi
add ebx, esi
neg ecx
and ecx, 0x1f
shr edx, cl
movzx ecx, ax
add ecx, edx
shr eax, 0x10
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
mov byte [ecx], al
inc ecx
mov dword [esp + 0xc], ecx
cmp ebx, 0x20
ja 0x5e572b
cmp edi, dword [esp + 0x24]
jb 0x5e56ee
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov edx, dword [edi]
mov dword [esp + 0x1c], edx
jmp 0x5e5738
mov esi, dword [esp + 0x34]
cmp edi, esi
je 0x5e5734
mov edx, ebx
mov dword [esp + 0x20], 0
shr edx, 3
mov eax, edi
sub eax, edx
cmp eax, esi
jae 0x5e5717
mov edx, edi
mov dword [esp + 0x20], 1
sub edx, esi
imul eax, edx, 0xfffffff8
sub edi, edx
mov edx, dword [edi]
add ebx, eax
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x20], 3
jne 0x5e5738
mov eax, dword [esp + 0x14]
jmp 0x5e566c
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add eax, 0xfd
cmp ecx, eax
jbe 0x5e55d0
mov ecx, 0xffffffba
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.005e5110
mov ecx, eax
add esp, 4
cmp ecx, 0xffffff88
ja 0x5e574e
movzx esi, word [ebx]
or edi, 0xffffffff
mov eax, dword [esp + 0x2c]
mov ecx, eax
mov ebx, dword [esp + 0x28]
and ecx, 0x1f
shl ebx, cl
add eax, esi
mov ecx, edi
shr ebx, 1
sub ecx, esi
mov dword [esp + 0x2c], eax
and ecx, 0x1f
shr ebx, cl
lea ecx, [esp + 0x28]
mov dword [esp + 0x18], ebx
call fcn.005e1730
mov eax, dword [esp + 0x2c]
mov ecx, eax
mov edx, dword [esp + 0x28]
and ecx, 0x1f
shl edx, cl
add eax, esi
mov ecx, edi
shr edx, 1
sub ecx, esi
mov dword [esp + 0x2c], eax
and ecx, 0x1f
shr edx, cl
lea ecx, [esp + 0x28]
mov dword [esp + 0x14], edx
call fcn.005e1730
lea ecx, [esp + 0x28]
call fcn.005e1730
mov esi, dword [esp + 0xc]
test eax, eax
jne 0x5e5916
jmp 0x5e57e0
mov eax, dword [esp + 0x10]
add eax, 0xfc
cmp esi, eax
jae 0x5e5916
mov eax, dword [ebp + 0x10]
mov edi, dword [esp + 0x28]
mov edx, edi
mov eax, dword [eax + ebx*4 + 4]
mov esi, eax
mov ebx, dword [esp + 0x2c]
mov ecx, ebx
and ecx, 0x1f
shr esi, 0x18
shl edx, cl
add ebx, esi
or ecx, 0xffffffff
shr edx, 1
sub ecx, esi
mov esi, dword [esp + 0xc]
and ecx, 0x1f
shr edx, cl
movzx ecx, ax
add ecx, edx
shr eax, 0x10
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp + 0x10]
mov byte [esi], al
mov eax, dword [esp + 0x14]
mov eax, dword [ecx + eax*4 + 4]
mov ecx, ebx
and ecx, 0x1f
mov edx, eax
shl edi, cl
or ecx, 0xffffffff
shr edx, 0x18
sub ecx, edx
shr edi, 1
and ecx, 0x1f
add ebx, edx
shr edi, cl
movzx ecx, ax
add ecx, edi
shr eax, 0x10
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], ebx
mov byte [esi + 1], al
call fcn.005e1730
test eax, eax
jg 0x5e590f
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 0x10]
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov edx, edi
mov eax, dword [ecx + eax*4 + 4]
mov esi, eax
mov ecx, ebx
shr esi, 0x18
and ecx, 0x1f
add ebx, esi
shl edx, cl
or ecx, 0xffffffff
sub ecx, esi
shr edx, 1
mov esi, dword [esp + 0xc]
and ecx, 0x1f
shr edx, cl
movzx ecx, ax
add ecx, edx
shr eax, 0x10
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp + 0x10]
mov byte [esi + 2], al
mov eax, dword [esp + 0x14]
mov eax, dword [ecx + eax*4 + 4]
mov ecx, ebx
and ecx, 0x1f
mov edx, eax
shl edi, cl
or ecx, 0xffffffff
shr edx, 0x18
sub ecx, edx
shr edi, 1
and ecx, 0x1f
add ebx, edx
shr edi, cl
movzx ecx, ax
add ecx, edi
shr eax, 0x10
mov byte [esi + 3], al
add esi, 4
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0xc], esi
call fcn.005e1730
mov ebx, dword [esp + 0x18]
test eax, eax
je 0x5e57e0
jmp 0x5e5916
add esi, 2
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x10]
add eax, 0xfd
cmp esi, eax
ja 0x5e5749
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x1c], edx
jmp 0x5e5940
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + eax*4 + 4]
mov ecx, ebx
and ecx, 0x1f
mov esi, eax
shl edx, cl
or ecx, 0xffffffff
shr esi, 0x18
sub ecx, esi
shr edx, 1
and ecx, 0x1f
add ebx, esi
shr edx, cl
movzx ecx, ax
add ecx, edx
shr eax, 0x10
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
mov byte [ecx], al
inc ecx
mov dword [esp + 0xc], ecx
cmp ebx, 0x20
ja 0x5e59db
mov esi, dword [esp + 0x34]
lea eax, [esi + 4]
mov dword [esp + 0x24], eax
cmp edi, eax
jb 0x5e59a2
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov edx, dword [edi]
mov dword [esp + 0x1c], edx
jmp 0x5e59fa
cmp edi, esi
je 0x5e59f6
mov edx, ebx
mov dword [esp + 0x20], 0
shr edx, 3
mov eax, edi
sub eax, edx
cmp eax, esi
jae 0x5e59c7
mov edx, edi
mov dword [esp + 0x20], 1
sub edx, esi
imul eax, edx, 0xfffffff8
sub edi, edx
mov edx, dword [edi]
add ebx, eax
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x20], 3
jne 0x5e59fa
mov eax, dword [esp + 0x14]
mov edx, dword [ebp + 0x10]
mov al, byte [edx + eax*4 + 6]
mov byte [ecx], al
inc ecx
sub ecx, dword [esp + 0x10]
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add eax, 0xfd
cmp ecx, eax
ja 0x5e5749
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + eax*4 + 4]
mov ecx, ebx
and ecx, 0x1f
mov esi, eax
shl edx, cl
or ecx, 0xffffffff
shr esi, 0x18
sub ecx, esi
shr edx, 1
and ecx, 0x1f
add ebx, esi
shr edx, cl
movzx ecx, ax
add ecx, edx
shr eax, 0x10
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
mov byte [ecx], al
inc ecx
mov dword [esp + 0xc], ecx
cmp ebx, 0x20
ja 0x5e5aa1
cmp edi, dword [esp + 0x24]
jb 0x5e5a64
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov edx, dword [edi]
mov dword [esp + 0x1c], edx
jmp 0x5e5aae
mov esi, dword [esp + 0x34]
cmp edi, esi
je 0x5e5aaa
mov edx, ebx
mov dword [esp + 0x20], 0
shr edx, 3
mov eax, edi
sub eax, edx
cmp eax, esi
jae 0x5e5a8d
mov edx, edi
mov dword [esp + 0x20], 1
sub edx, esi
imul eax, edx, 0xfffffff8
sub edi, edx
mov edx, dword [edi]
add ebx, eax
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x20], 3
jne 0x5e5aae
mov eax, dword [esp + 0x18]
jmp 0x5e59df
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add eax, 0xfd
cmp ecx, eax
jbe 0x5e5940
pop edi
mov ecx, 0xffffffba
pop esi
mov eax, ecx
pop ebx
mov esp, ebp
pop ebp
ret