Function at 0x596ef0
Capabilities:
Enumerate pe sections

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x597174
sub esp, 0x28
mov ecx, dword [esp + 0x34]
cmp ecx, 8
jl 0x597156
mov edx, dword [esp + 0x30]
movzx ebx, byte [edx]
shl ebx, 8
movzx ebp, byte [edx + 1]
or ebp, ebx
mov ebx, dword [esp + 0x2c]
mov word [ebx], bp
movzx ebp, byte [edx + 2]
shl ebp, 8
movzx esi, byte [edx + 3]
or esi, ebp
mov word [ebx + 2], si
movzx ebp, byte [edx + 4]
shl ebp, 8
movzx esi, byte [edx + 5]
or esi, ebp
add ecx, 0xfffffffa
cmp ecx, esi
jl 0x59714d
mov ebp, dword [esp + 0x38]
add ebp, 0xfffffffa
cmp esi, ebp
ja 0x59716d
mov dword [ebx + 8], esi
mov dword [ebx + 0xc], ebp
lea eax, [edx + 6]
mov edi, edx
mov edx, dword [0xb92b90]
test edx, edx
jne 0x59713a
mov dword [ebx + 4], eax
cmp esi, ecx
ja 0x597166
sub ecx, esi
sub ebp, esi
mov eax, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, esi
lea edx, [edi + ebp + 6]
cmp ecx, 2
jl 0x597131
mov dword [esp + 0x34], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], edx
movzx eax, byte [edi + ebp + 6]
movzx ecx, byte [edi + ebp + 7]
lea edx, [0x7948e0]
mov dword [esp], edx
shl eax, 8
or eax, ecx
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.00438a20
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x2c]
mov dword [ebx + 0x14], ecx
mov dword [ebx + 0x18], eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffffe
mov ebp, eax
neg eax
sar eax, 0x1f
and eax, 2
mov esi, dword [esp + 0x30]
add eax, esi
mov esi, dword [0xb92b90]
test esi, esi
jne 0x59711e
mov dword [ebx + 0x10], edx
mov edx, dword [esp + 0x34]
add edx, 0xfffffffe
xor esi, esi
jmp 0x59703a
mov eax, dword [esp + 0x18]
lea esi, [eax + 1]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x38]
mov ecx, edi
mov ebx, eax
mov eax, ebp
mov ebp, dword [esp + 0x38]
cmp esi, ecx
jge 0x597111
cmp edx, 4
jl 0x597108
mov dword [esp + 0x18], esi
mov edi, ecx
movzx ecx, byte [eax]
shl ecx, 0x18
movzx esi, byte [eax + 1]
shl esi, 0x10
or esi, ecx
movzx ecx, byte [eax + 2]
shl ecx, 8
or ecx, esi
movzx esi, byte [eax + 3]
or esi, ecx
lea ecx, [ebp - 4]
mov ebp, ecx
neg ecx
sar ecx, 0x1f
and ecx, 4
add eax, ecx
test esi, esi
jl 0x5970ff
lea ecx, [edx - 4]
cmp ecx, esi
jl 0x5970f6
mov dword [esp + 0x34], ecx
mov edx, dword [ebx + 0x10]
mov ebx, dword [ebx + 0x14]
mov ecx, dword [esp + 0x18]
cmp ecx, ebx
jae 0x59715f
mov dword [esp + 0x24], edx
lea ebx, [ecx + ecx*2]
mov dword [edx + ebx*4 + 4], esi
mov dword [edx + ebx*4 + 8], ebp
mov ecx, dword [0xb92b90]
lea edx, [edx + ebx*4]
mov dword [esp + 0x20], edx
sub ebp, esi
mov dword [esp + 0x38], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, esi
add ebp, eax
mov edx, dword [esp + 0x34]
sub edx, esi
test ecx, ecx
jne 0x5970e4
mov ecx, dword [esp + 0x24]
mov dword [ecx + ebx*4], eax
jmp 0x597021
mov ecx, edi
mov edi, dword [esp + 0x20]
call fcn.0044c990
mov edi, ecx
jmp 0x597021
mov byte [esp + 0x3c], 0
add esp, 0x28
ret
mov byte [esp + 0x3c], 0
add esp, 0x28
ret
mov byte [esp + 0x3c], 0
add esp, 0x28
ret
test edx, edx
sete al
mov byte [esp + 0x3c], al
add esp, 0x28
ret
lea edi, [ebx + 0x10]
mov esi, eax
mov eax, edx
call fcn.0044c990
mov eax, esi
jmp 0x597016
mov byte [esp + 0x3c], 0
add esp, 0x28
ret
lea edx, [ebx + 4]
mov edi, edx
call fcn.0044c990
mov edi, dword [esp + 0x30]
jmp 0x596f81
mov byte [esp + 0x3c], 0
add esp, 0x28
ret
mov byte [esp + 0x3c], 0
add esp, 0x28
ret
call fcn.004264e0
ud2
call fcn.004265e0
ud2
call fcn.004265e0
ud2
call fcn.0044b230
jmp fcn.00596ef0