Function at 0x5e5795
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [ebp + 0xc]
add eax, edx
mov dword [ebp - 4], edx
push ebx
mov ebx, ecx
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp + 0x10]
push esi
push edi
mov eax, dword [ebx]
xor esi, esi
mov dword [ebp - 0x18], eax
xor edi, edi
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebx + 4]
mov dword [ebp - 0x30], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0x18]
mov dword [ebp - 8], ebx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x2c], ecx
cmp dword [ebx + 0x20], esi
jne 0x5e586b
and dword [ebp + 0xc], esi
xor ecx, ecx
movzx esi, byte [edx + 1]
movzx eax, byte [edx]
add edx, 2
shl esi, 8
or esi, eax
mov dword [ebp - 4], edx
shl esi, 0x10
mov eax, esi
add esi, esi
push 0xf
pop edi
test eax, eax
jns 0x5e5856
movzx ecx, byte [edx + 1]
movzx eax, byte [edx]
add edx, 2
shl ecx, 8
or ecx, eax
mov dword [ebp - 4], edx
add ecx, ecx
movzx edx, byte [edx + 1]
or esi, ecx
mov eax, esi
shl edx, 8
shr eax, 0x10
xor ecx, ecx
mov dword [ebp + 0xc], eax
inc ecx
mov eax, dword [ebp - 4]
shl esi, 0x10
movzx eax, byte [eax]
or edx, eax
shl edx, cl
mov ecx, dword [ebp + 0xc]
or esi, edx
mov edx, dword [ebp - 4]
mov eax, esi
add edx, 2
shr eax, 0x10
mov dword [ebp - 4], edx
shl esi, 0x10
jmp 0x5e5859
mov eax, dword [ebp + 0xc]
shl ecx, 0x10
or ecx, eax
mov dword [ebx + 0x20], 1
mov dword [ebx + 0x34], ecx
mov ecx, dword [ebp + 0x10]
test ecx, ecx
jle 0x5e63d4
cmp dword [ebx + 0x2c], 0
mov eax, edi
push 3
pop ecx
jne 0x5e5c0a
cmp word [ebx + 0x24], cx
jne 0x5e589c
xor edi, edi
lea edx, [edx + 1]
xor esi, esi
test byte [ebx + 0x28], 1
cmove edx, dword [ebp - 4]
mov dword [ebp - 4], edx
jmp 0x5e58a5
mov dword [ebp - 4], edx
mov edi, eax
cmp eax, ecx
jge 0x5e58ee
mov ebx, dword [ebp - 4]
push 0x10
pop ecx
push 2
pop eax
sub eax, edi
sub ecx, edi
shr eax, 4
inc eax
mov dword [ebp - 0x34], eax
shl eax, 4
add edi, eax
mov dword [ebp + 0xc], edi
mov edi, dword [ebp - 0x34]
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx]
add ebx, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or esi, edx
sub edi, 1
jne 0x5e58c4
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 8]
mov edx, dword [ebp - 4]
push 3
pop ecx
mov eax, esi
sub edi, ecx
shr eax, 0x1d
shl esi, 3
mov word [ebx + 0x24], ax
cmp edi, 0x10
jge 0x5e5947
mov ebx, dword [ebp - 4]
push 0x10
pop ecx
push 0xf
pop eax
sub eax, edi
sub ecx, edi
shr eax, 4
inc eax
mov dword [ebp - 0x34], eax
shl eax, 4
add edi, eax
mov dword [ebp + 0xc], edi
mov edi, dword [ebp - 0x34]
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx]
add ebx, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or esi, edx
sub edi, 1
jne 0x5e5920
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 8]
mov edx, dword [ebp - 4]
mov ecx, esi
sub edi, 0x10
shr ecx, 0x10
shl esi, 0x10
mov dword [ebp - 0x28], ecx
cmp edi, 8
jge 0x5e59a3
mov ebx, dword [ebp - 4]
push 0x10
pop ecx
push 7
pop eax
sub eax, edi
sub ecx, edi
shr eax, 4
inc eax
mov dword [ebp - 0x34], eax
shl eax, 4
add edi, eax
mov dword [ebp + 0xc], edi
mov edi, dword [ebp - 0x34]
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx]
add ebx, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or esi, edx
sub edi, 1
jne 0x5e5979
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 8]
mov edx, dword [ebp - 4]
mov eax, esi
shl ecx, 8
shr eax, 0x18
sub edi, 8
or ecx, eax
shl esi, 8
movzx eax, word [ebx + 0x24]
mov dword [ebx + 0x28], ecx
mov dword [ebx + 0x2c], ecx
sub eax, 1
je 0x5e5b38
sub eax, 1
je 0x5e5aa5
sub eax, 1
jne 0x5e63da
mov dword [ebx + 0x3c], 1
cmp edi, 0x10
jge 0x5e5a2a
mov ebx, dword [ebp - 4]
push 0x10
pop ecx
push 0xf
pop eax
sub eax, edi
sub ecx, edi
shr eax, 4
inc eax
mov dword [ebp - 0x34], eax
shl eax, 4
add edi, eax
mov dword [ebp + 0xc], edi
mov edi, dword [ebp - 0x34]
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx]
add ebx, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or esi, edx
sub edi, 1
jne 0x5e5a03
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 8]
mov edx, dword [ebp - 4]
lea ecx, [edx - 2]
cmp edi, 0x10
cmovle ecx, edx
movzx edx, byte [ecx + 3]
movzx eax, byte [ecx + 2]
shl edx, 8
or edx, eax
movzx eax, byte [ecx + 1]
shl edx, 8
or edx, eax
movzx eax, byte [ecx]
shl edx, 8
or edx, eax
mov dword [ebp - 0x10], edx
lea edx, [ecx + 4]
movzx ecx, byte [edx + 3]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 6]
mov dword [ebp - 0x1c], ecx
movzx ecx, byte [edx + 7]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 5]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 4]
shl ecx, 8
or ecx, eax
add edx, 8
mov dword [ebp - 0x24], ecx
mov dword [ebp - 4], edx
jmp 0x5e5c0a
lea edx, [ebx + 0x54b6]
xor ecx, ecx
mov ebx, dword [ebp - 4]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x20], edx
cmp edi, 3
jge 0x5e5afe
push 0x10
pop ecx
push 2
pop eax
sub eax, edi
sub ecx, edi
shr eax, 4
inc eax
mov dword [ebp - 0x28], eax
shl eax, 4
add edi, eax
mov dword [ebp + 0xc], edi
mov edi, dword [ebp - 0x28]
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx]
add ebx, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or esi, edx
sub edi, 1
jne 0x5e5ad7
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x20]
mov dword [ebp - 4], ebx
mov eax, esi
sub edi, 3
shr eax, 0x1d
shl esi, 3
mov byte [edx + ecx], al
inc ecx
mov dword [ebp - 0x34], ecx
cmp ecx, 8
jb 0x5e5ab6
mov ebx, dword [ebp - 8]
lea eax, [ebx + 0x5396]
push eax
push edx
push 7
pop edx
push 8
pop ecx
call fcn.005e5269
pop ecx
pop ecx
test eax, eax
jne 0x5e63da
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x48]
mov dword [ebp - 0x44], edi
push eax
mov dword [ebp - 0x48], esi
mov edi, 0x100
mov dword [ebp - 0x40], edx
lea esi, [ebx + 0x2ba4]
push edi
push 0
mov edx, esi
mov ecx, ebx
call fcn.005e5449
add esp, 0xc
test eax, eax
jne 0x5e63da
lea eax, [ebp - 0x48]
mov edx, esi
push eax
movzx eax, word [ebx + 0x1c]
mov ecx, ebx
push eax
push edi
call fcn.005e5449
add esp, 0xc
test eax, eax
jne 0x5e63da
lea eax, [ebx + 0x164]
mov ecx, 0x290
push eax
push esi
push 0xc
pop edx
call fcn.005e5269
pop ecx
pop ecx
test eax, eax
jne 0x5e63da
cmp byte [ebx + 0x2c8c], al
je 0x5e5bb3
mov dword [ebx + 0x3c], 1
lea ecx, [ebp - 0x48]
push ecx
push 0xf9
lea edx, [ebx + 0x525c]
mov ecx, ebx
push 0
call fcn.005e5449
add esp, 0xc
test eax, eax
jne 0x5e63da
mov eax, dword [ebp - 0x40]
mov ecx, 0xfa
mov esi, dword [ebp - 0x48]
mov edi, dword [ebp - 0x44]
mov dword [ebp - 4], eax
lea eax, [ebx + 0x2e74]
push eax
lea eax, [ebx + 0x525c]
push eax
push 0xc
pop edx
call fcn.005e5269
pop ecx
pop ecx
test eax, eax
jne 0x5e63da
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x38]
cmp edx, eax
jbe 0x5e5c25
add eax, 2
cmp edx, eax
ja 0x5e63da
cmp edi, 0x10
jl 0x5e63da
mov eax, dword [ebx + 0x2c]
test eax, eax
jle 0x5e63c7
mov ecx, eax
cmp dword [ebp - 0x2c], 0
jle 0x5e63d1
mov edx, dword [ebp - 0x2c]
cmp eax, edx
cmovle edx, eax
mov eax, edx
mov dword [ebp - 0x14], edx
sub dword [ebp - 0x2c], eax
sub ecx, eax
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0xc]
dec eax
and edx, eax
mov dword [ebx + 0x2c], ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0xc], edx
lea eax, [ecx + edx]
mov edx, dword [ebp - 4]
mov dword [ebp - 0x34], eax
cmp eax, dword [ebp - 0x30]
ja 0x5e63e2
movzx eax, word [ebx + 0x24]
sub eax, 1
je 0x5e610b
sub eax, 1
je 0x5e5cbe
sub eax, 1
jne 0x5e63da
lea eax, [ecx + edx]
mov dword [ebp + 0xc], eax
cmp eax, dword [ebp - 0x38]
ja 0x5e63da
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x18]
push ecx
push edx
push eax
call fcn.006f6760
mov edx, dword [ebp + 0xc]
add esp, 0xc
mov eax, dword [ebp - 0x34]
mov dword [ebp - 4], edx
mov dword [ebp - 0xc], eax
jmp 0x5e63ba
test ecx, ecx
jle 0x5e63ba
cmp edi, 0x10
jge 0x5e5d0e
mov ebx, dword [ebp - 4]
push 0x10
pop ecx
push 0xf
pop eax
sub eax, edi
sub ecx, edi
shr eax, 4
inc eax
mov dword [ebp - 0x34], eax
shl eax, 4
add edi, eax
mov dword [ebp + 0xc], edi
mov edi, dword [ebp - 0x34]
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx]
add ebx, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or esi, edx
sub edi, 1
jne 0x5e5cea
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 8]
mov eax, esi
shr eax, 0x14
movzx eax, word [ebx + eax*2 + 0x164]
cmp eax, 0x290
jb 0x5e5d4c
mov edx, 0x100000
shr edx, 1
je 0x5e63da
mov ecx, edx
and ecx, esi
neg ecx
sbb ecx, ecx
add eax, eax
neg ecx
or ecx, eax
movzx eax, word [ebx + ecx*2 + 0x164]
cmp eax, 0x290
jae 0x5e5d27
movzx ecx, byte [eax + ebx + 0x2ba4]
shl esi, cl
sub edi, ecx
mov dword [ebp - 0x20], esi
mov dword [ebp + 0xc], edi
cmp eax, 0x100
jae 0x5e5d7e
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x18]
mov byte [ecx + edx], al
inc ecx
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0x14]
dec ecx
mov dword [ebp - 0x14], ecx
jmp 0x5e60fe
add eax, 0xffffff00
mov ecx, eax
mov dword [ebp - 0x3c], eax
and ecx, 7
mov dword [ebp - 0x28], ecx
cmp ecx, 7
jne 0x5e5e37
cmp edi, 0x10
jge 0x5e5ddf
mov ebx, dword [ebp - 4]
push 0x10
pop ecx
push 0xf
pop eax
sub eax, edi
sub ecx, edi
shr eax, 4
inc eax
mov dword [ebp - 0x34], eax
shl eax, 4
add edi, eax
mov dword [ebp + 0xc], edi
mov edi, dword [ebp - 0x34]
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx]
add ebx, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or esi, edx
sub edi, 1
jne 0x5e5dbb
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 8]
mov eax, esi
shr eax, 0x14
movzx eax, word [ebx + eax*2 + 0x2e74]
cmp eax, 0xfa
jb 0x5e5e1d
mov edx, 0x100000
shr edx, 1
je 0x5e63da
mov ecx, edx
and ecx, esi
neg ecx
sbb ecx, ecx
add eax, eax
neg ecx
or ecx, eax
movzx eax, word [ebx + ecx*2 + 0x2e74]
cmp eax, 0xfa
jae 0x5e5df8
movzx ecx, byte [eax + ebx + 0x525c]
shl esi, cl
sub edi, ecx
mov ecx, dword [ebp - 0x28]
add ecx, eax
mov dword [ebp - 0x20], esi
mov eax, dword [ebp - 0x3c]
mov dword [ebp + 0xc], edi
add ecx, 2
sar eax, 3
mov dword [ebp - 0x28], ecx
cmp eax, 2
jbe 0x5e6075
movzx edx, byte [eax + 0xdfb718]
mov eax, dword [eax*4 + 0xdfb750]
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x34], eax
cmp edx, 3
jbe 0x5e5f64
sub edx, 3
mov dword [ebp - 0x24], edx
cmp edi, edx
jge 0x5e5eb6
mov ebx, dword [ebp - 4]
mov eax, edx
sub eax, edi
push 0x10
pop ecx
sub ecx, edi
dec eax
shr eax, 4
inc eax
mov dword [ebp - 0x3c], eax
shl eax, 4
add edi, eax
mov dword [ebp + 0xc], edi
mov edi, dword [ebp - 0x3c]
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx]
add ebx, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or esi, edx
sub edi, 1
jne 0x5e5e8f
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp - 0x24]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 8]
push 0x20
pop ecx
sub ecx, edx
mov eax, esi
shr eax, cl
sub edi, edx
mov ecx, edx
shl esi, cl
mov ecx, dword [ebp - 0x34]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x34], eax
cmp edi, 0x10
jge 0x5e5f16
mov ebx, dword [ebp - 4]
push 0x10
pop ecx
push 0xf
pop eax
sub eax, edi
sub ecx, edi
shr eax, 4
inc eax
mov dword [ebp - 0x3c], eax
shl eax, 4
add edi, eax
mov dword [ebp + 0xc], edi
mov edi, dword [ebp - 0x3c]
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx]
add ebx, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or esi, edx
sub edi, 1
jne 0x5e5ef2
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 8]
mov eax, esi
shr eax, 0x19
movzx eax, word [ebx + eax*2 + 0x5396]
cmp eax, 8
jb 0x5e5f50
mov edx, 0x2000000
shr edx, 1
je 0x5e63da
mov ecx, edx
and ecx, esi
neg ecx
sbb ecx, ecx
add eax, eax
neg ecx
or ecx, eax
movzx eax, word [ebx + ecx*2 + 0x5396]
cmp eax, 8
jae 0x5e5f2d
movzx ecx, byte [eax + ebx + 0x54b6]
shl esi, cl
sub edi, ecx
mov ecx, dword [ebp - 0x34]
jmp 0x5e6057
jne 0x5e5ffa
cmp edi, 0x10
jge 0x5e5fb2
mov ebx, dword [ebp - 4]
push 0x10
pop ecx
push 0xf
pop eax
sub eax, edi
sub ecx, edi
shr eax, 4
inc eax
mov dword [ebp - 0x3c], eax
shl eax, 4
add edi, eax
mov dword [ebp + 0xc], edi
mov edi, dword [ebp - 0x3c]
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx]
add ebx, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or esi, edx
sub edi, 1
jne 0x5e5f8e
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 8]
mov eax, esi
shr eax, 0x19
movzx eax, word [ebx + eax*2 + 0x5396]
cmp eax, 8
jb 0x5e5fec
mov edx, 0x2000000
shr edx, 1
je 0x5e63da
mov ecx, edx
and ecx, esi
neg ecx
sbb ecx, ecx
add eax, eax
neg ecx
or ecx, eax
movzx eax, word [ebx + ecx*2 + 0x5396]
cmp eax, 8
jae 0x5e5fc9
movzx ecx, byte [eax + ebx + 0x54b6]
shl esi, cl
sub edi, ecx
jmp 0x5e6054
test edx, edx
je 0x5e6064
cmp edi, edx
jge 0x5e6045
mov ebx, dword [ebp - 4]
mov eax, edx
sub eax, edi
push 0x10
pop ecx
sub ecx, edi
dec eax
shr eax, 4
inc eax
mov dword [ebp - 0x3c], eax
shl eax, 4
add edi, eax
mov dword [ebp + 0xc], edi
mov edi, dword [ebp - 0x3c]
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx]
add ebx, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or esi, edx
sub edi, 1
jne 0x5e6021
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp - 0x24]
mov dword [ebp - 4], ebx
push 0x20
pop ecx
sub ecx, edx
mov eax, esi
shr eax, cl
mov ecx, edx
shl esi, cl
sub edi, edx
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffffe
mov dword [ebp - 0x20], esi
mov dword [ebp + 0xc], edi
add eax, ecx
jmp 0x5e6067
xor eax, eax
inc eax
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ecx
jmp 0x5e6091
test eax, eax
jne 0x5e607e
mov eax, dword [ebp - 0x10]
jmp 0x5e6094
mov ecx, dword [ebp - 0x10]
cmp eax, 1
jne 0x5e608b
mov eax, dword [ebp - 0x1c]
jmp 0x5e6070
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x18]
add edx, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x30]
mov ecx, edx
sub ecx, eax
mov eax, dword [ebp - 0x28]
add dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], ebx
ja 0x5e63da
sub dword [ebp - 0x14], eax
mov ebx, dword [ebp - 8]
cmp ecx, dword [ebp - 0x18]
jae 0x5e60e4
mov edi, dword [ebp - 0x18]
mov ebx, eax
mov esi, dword [ebp - 0x30]
mov eax, ebx
dec ebx
test eax, eax
jle 0x5e60d5
mov al, byte [ecx + esi]
mov byte [edx], al
inc edx
inc ecx
cmp ecx, edi
jb 0x5e60c3
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp - 8]
mov eax, dword [ebp - 0x28]
test eax, eax
jle 0x5e60fb
mov ebx, dword [ebp - 0x28]
sub ecx, edx
mov al, byte [ecx + edx]
dec ebx
mov byte [edx], al
inc edx
test ebx, ebx
jg 0x5e60ed
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
test ecx, ecx
jg 0x5e5cc6
jmp 0x5e63b7
test ecx, ecx
jle 0x5e63ba
cmp edi, 0x10
jge 0x5e615b
mov ebx, dword [ebp - 4]
push 0x10
pop ecx
push 0xf
pop eax
sub eax, edi
sub ecx, edi
shr eax, 4
inc eax
mov dword [ebp - 0x3c], eax
shl eax, 4
add edi, eax
mov dword [ebp + 0xc], edi
mov edi, dword [ebp - 0x3c]
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx]
add ebx, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or esi, edx
sub edi, 1
jne 0x5e6137
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 8]
mov eax, esi
shr eax, 0x14
movzx eax, word [ebx + eax*2 + 0x164]
cmp eax, 0x290
jb 0x5e6199
mov edx, 0x100000
shr edx, 1
je 0x5e63da
mov ecx, edx
and ecx, esi
neg ecx
sbb ecx, ecx
add eax, eax
neg ecx
or ecx, eax
movzx eax, word [ebx + ecx*2 + 0x164]
cmp eax, 0x290
jae 0x5e6174
movzx ecx, byte [eax + ebx + 0x2ba4]
shl esi, cl
sub edi, ecx
mov dword [ebp - 0x20], esi
mov dword [ebp + 0xc], edi
cmp eax, 0x100
jae 0x5e61cb
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x18]
mov byte [ecx + edx], al
inc ecx
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0x14]
dec ecx
mov dword [ebp - 0x14], ecx
jmp 0x5e63af
add eax, 0xffffff00
mov edx, eax
mov dword [ebp - 0x34], eax
and edx, 7
mov dword [ebp - 0x28], edx
cmp edx, 7
jne 0x5e6288
cmp edi, 0x10
jge 0x5e622f
mov ebx, dword [ebp - 4]
push 0x10
pop ecx
push 0xf
pop eax
sub eax, edi
sub ecx, edi
shr eax, 4
inc eax
mov dword [ebp - 0x3c], eax
shl eax, 4
add edi, eax
mov dword [ebp + 0xc], edi
mov edi, dword [ebp - 0x3c]
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx]
add ebx, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or esi, edx
sub edi, 1
jne 0x5e6208
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp - 0x28]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 8]
mov eax, esi
shr eax, 0x14
movzx eax, word [ebx + eax*2 + 0x2e74]
cmp eax, 0xfa
jb 0x5e6271
mov ecx, 0x100000
shr ecx, 1
mov dword [ebp + 0xc], ecx
je 0x5e63da
and ecx, esi
neg ecx
sbb ecx, ecx
add eax, eax
neg ecx
or ecx, eax
movzx eax, word [ebx + ecx*2 + 0x2e74]
mov ecx, dword [ebp + 0xc]
cmp eax, 0xfa
jae 0x5e6248
movzx ecx, byte [eax + ebx + 0x525c]
shl esi, cl
sub edi, ecx
add edx, eax
mov dword [ebp - 0x20], esi
mov eax, dword [ebp - 0x34]
mov dword [ebp + 0xc], edi
sar eax, 3
add edx, 2
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x34], eax
cmp eax, 2
jbe 0x5e632e
cmp eax, 3
je 0x5e631d
movzx edx, byte [eax + 0xdfb718]
mov dword [ebp - 0x24], edx
cmp edi, edx
jge 0x5e62f6
mov ebx, dword [ebp - 4]
mov eax, edx
sub eax, edi
push 0x10
pop ecx
sub ecx, edi
dec eax
shr eax, 4
inc eax
mov dword [ebp - 0x3c], eax
shl eax, 4
add edi, eax
mov dword [ebp + 0xc], edi
mov edi, dword [ebp - 0x3c]
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx]
add ebx, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or esi, edx
sub edi, 1
jne 0x5e62cf
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x24]
mov dword [ebp - 4], ebx
mov eax, dword [eax*4 + 0xdfb750]
push 0x20
pop ecx
sub ecx, edx
mov edx, esi
shr edx, cl
mov ecx, dword [ebp - 0x24]
add edx, 0xfffffffe
shl esi, cl
sub edi, ecx
add eax, edx
mov dword [ebp - 0x20], esi
mov edx, dword [ebp - 0x28]
mov dword [ebp + 0xc], edi
jmp 0x5e6320
xor eax, eax
inc eax
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], ecx
jmp 0x5e634a
test eax, eax
jne 0x5e6337
mov eax, dword [ebp - 0x10]
jmp 0x5e634d
mov ecx, dword [ebp - 0x10]
cmp eax, 1
jne 0x5e6344
mov eax, dword [ebp - 0x1c]
jmp 0x5e6329
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0xc]
add ecx, dword [ebp - 0x18]
mov ebx, dword [ebp - 8]
mov dword [ebp - 0x34], ecx
sub ecx, eax
mov eax, dword [ebp - 0xc]
add eax, edx
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x30]
ja 0x5e63da
sub dword [ebp - 0x14], edx
cmp ecx, dword [ebp - 0x18]
jae 0x5e6397
mov ebx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x30]
mov eax, edx
dec edx
test eax, eax
jle 0x5e638b
mov al, byte [ecx + esi]
mov byte [ebx], al
inc ebx
inc ecx
cmp ecx, edi
jb 0x5e6379
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x34], ebx
mov ebx, dword [ebp - 8]
test edx, edx
jle 0x5e63ac
mov ebx, dword [ebp - 0x34]
mov al, byte [ecx]
dec edx
mov byte [ebx], al
inc ebx
inc ecx
test edx, edx
jg 0x5e639e
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
test ecx, ecx
jg 0x5e6113
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x2c]
mov ecx, eax
test eax, eax
jg 0x5e5c32
cmp dword [ebp - 0x2c], 0
jg 0x5e5873
mov ecx, dword [ebp + 0x10]
cmp dword [ebp - 0x2c], 0
je 0x5e63ea
push 2
pop eax
jmp 0x5e64d6
xor eax, eax
inc eax
jmp 0x5e64d6
mov edi, dword [ebp - 0xc]
mov eax, edi
mov esi, dword [ebp + 8]
test edi, edi
push ecx
cmove eax, dword [ebp - 0x30]
sub eax, ecx
add eax, dword [ebp - 0x18]
push eax
push esi
call fcn.006f6760
mov ecx, dword [ebp - 0x1c]
add esp, 0xc
mov eax, dword [ebp - 0x10]
mov dword [ebx + 0x14], ecx
mov ecx, dword [ebx + 0x30]
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 0x24]
mov dword [ebx + 0x18], eax
mov dword [ebx + 0xc], edi
lea eax, [ecx + 1]
mov dword [ebx + 0x30], eax
cmp ecx, 0x8000
jae 0x5e64d4
mov ecx, dword [ebx + 0x34]
mov dword [ebp + 0xc], ecx
test ecx, ecx
je 0x5e64d4
mov eax, dword [ebp + 0x10]
cmp eax, 6
jle 0x5e64d1
cmp dword [ebx + 0x3c], 0
je 0x5e64d1
mov edi, dword [ebx + 0x38]
lea edx, [eax - 0xa]
add edx, esi
add eax, edi
mov dword [ebp + 0x10], edx
mov dword [ebx + 0x38], eax
jmp 0x5e64cb
mov al, byte [esi]
inc esi
cmp al, 0xe8
je 0x5e6470
xor eax, eax
inc eax
jmp 0x5e64c9
movzx edx, byte [esi + 3]
movzx eax, byte [esi + 2]
shl edx, 8
or edx, eax
movzx eax, byte [esi + 1]
shl edx, 8
or edx, eax
movzx eax, byte [esi]
shl edx, 8
or edx, eax
mov eax, edi
neg eax
cmp edx, eax
jl 0x5e64c0
cmp edx, ecx
jge 0x5e64c0
add ecx, edx
mov eax, edx
sub eax, edi
test edx, edx
cmovns ecx, eax
mov eax, ecx
mov byte [esi], cl
sar eax, 8
mov byte [esi + 1], al
mov eax, ecx
sar eax, 0x10
sar ecx, 0x18
mov byte [esi + 3], cl
mov ecx, dword [ebp + 0xc]
mov byte [esi + 2], al
mov edx, dword [ebp + 0x10]
add esi, 4
push 5
pop eax
add edi, eax
cmp esi, edx
jb 0x5e6464
jmp 0x5e64d4
add dword [ebx + 0x38], eax
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret