Function at 0x4b639d
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 0x4b6473
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 0x4b645e
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 0x4b6461
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 0x4b6fdc
cmp dword [ebx + 0x2c], 0
mov eax, edi
push 3
pop ecx
jne 0x4b6812
cmp word [ebx + 0x24], cx
jne 0x4b64a4
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 0x4b64ad
mov dword [ebp - 4], edx
mov edi, eax
cmp eax, ecx
jge 0x4b64f6
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 0x4b64cc
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 0x4b654f
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 0x4b6528
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 0x4b65ab
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 0x4b6581
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 0x4b6740
sub eax, 1
je 0x4b66ad
sub eax, 1
jne 0x4b6fe2
mov dword [ebx + 0x3c], 1
cmp edi, 0x10
jge 0x4b6632
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 0x4b660b
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 0x4b6812
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 0x4b6706
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 0x4b66df
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 0x4b66be
mov ebx, dword [ebp - 8]
lea eax, [ebx + 0x5396]
push eax
push edx
push 7
pop edx
push 8
pop ecx
call fcn.004b5e71
pop ecx
pop ecx
test eax, eax
jne 0x4b6fe2
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.004b6051
add esp, 0xc
test eax, eax
jne 0x4b6fe2
lea eax, [ebp - 0x48]
mov edx, esi
push eax
movzx eax, word [ebx + 0x1c]
mov ecx, ebx
push eax
push edi
call fcn.004b6051
add esp, 0xc
test eax, eax
jne 0x4b6fe2
lea eax, [ebx + 0x164]
mov ecx, 0x290
push eax
push esi
push 0xc
pop edx
call fcn.004b5e71
pop ecx
pop ecx
test eax, eax
jne 0x4b6fe2
cmp byte [ebx + 0x2c8c], al
je 0x4b67bb
mov dword [ebx + 0x3c], 1
lea ecx, [ebp - 0x48]
push ecx
push 0xf9
lea edx, [ebx + 0x525c]
mov ecx, ebx
push 0
call fcn.004b6051
add esp, 0xc
test eax, eax
jne 0x4b6fe2
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.004b5e71
pop ecx
pop ecx
test eax, eax
jne 0x4b6fe2
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x38]
cmp edx, eax
jbe 0x4b682d
add eax, 2
cmp edx, eax
ja 0x4b6fe2
cmp edi, 0x10
jl 0x4b6fe2
mov eax, dword [ebx + 0x2c]
test eax, eax
jle 0x4b6fcf
mov ecx, eax
cmp dword [ebp - 0x2c], 0
jle 0x4b6fd9
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 0x4b6fea
movzx eax, word [ebx + 0x24]
sub eax, 1
je 0x4b6d13
sub eax, 1
je 0x4b68c6
sub eax, 1
jne 0x4b6fe2
lea eax, [ecx + edx]
mov dword [ebp + 0xc], eax
cmp eax, dword [ebp - 0x38]
ja 0x4b6fe2
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x18]
push ecx
push edx
push eax
call fcn.004b8db0
mov edx, dword [ebp + 0xc]
add esp, 0xc
mov eax, dword [ebp - 0x34]
mov dword [ebp - 4], edx
mov dword [ebp - 0xc], eax
jmp 0x4b6fc2
test ecx, ecx
jle 0x4b6fc2
cmp edi, 0x10
jge 0x4b6916
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 0x4b68f2
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 0x4b6954
mov edx, 0x100000
shr edx, 1
je 0x4b6fe2
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 0x4b692f
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 0x4b6986
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 0x4b6d06
add eax, 0xffffff00
mov ecx, eax
mov dword [ebp - 0x3c], eax
and ecx, 7
mov dword [ebp - 0x28], ecx
cmp ecx, 7
jne 0x4b6a3f
cmp edi, 0x10
jge 0x4b69e7
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 0x4b69c3
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 0x4b6a25
mov edx, 0x100000
shr edx, 1
je 0x4b6fe2
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 0x4b6a00
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 0x4b6c7d
movzx edx, byte [eax + 0x4f2fd0]
mov eax, dword [eax*4 + 0x4f3008]
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x34], eax
cmp edx, 3
jbe 0x4b6b6c
sub edx, 3
mov dword [ebp - 0x24], edx
cmp edi, edx
jge 0x4b6abe
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 0x4b6a97
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 0x4b6b1e
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 0x4b6afa
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 0x4b6b58
mov edx, 0x2000000
shr edx, 1
je 0x4b6fe2
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 0x4b6b35
movzx ecx, byte [eax + ebx + 0x54b6]
shl esi, cl
sub edi, ecx
mov ecx, dword [ebp - 0x34]
jmp 0x4b6c5f
jne 0x4b6c02
cmp edi, 0x10
jge 0x4b6bba
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 0x4b6b96
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 0x4b6bf4
mov edx, 0x2000000
shr edx, 1
je 0x4b6fe2
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 0x4b6bd1
movzx ecx, byte [eax + ebx + 0x54b6]
shl esi, cl
sub edi, ecx
jmp 0x4b6c5c
test edx, edx
je 0x4b6c6c
cmp edi, edx
jge 0x4b6c4d
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 0x4b6c29
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 0x4b6c6f
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 0x4b6c99
test eax, eax
jne 0x4b6c86
mov eax, dword [ebp - 0x10]
jmp 0x4b6c9c
mov ecx, dword [ebp - 0x10]
cmp eax, 1
jne 0x4b6c93
mov eax, dword [ebp - 0x1c]
jmp 0x4b6c78
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 0x4b6fe2
sub dword [ebp - 0x14], eax
mov ebx, dword [ebp - 8]
cmp ecx, dword [ebp - 0x18]
jae 0x4b6cec
mov edi, dword [ebp - 0x18]
mov ebx, eax
mov esi, dword [ebp - 0x30]
mov eax, ebx
dec ebx
test eax, eax
jle 0x4b6cdd
mov al, byte [ecx + esi]
mov byte [edx], al
inc edx
inc ecx
cmp ecx, edi
jb 0x4b6ccb
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 0x4b6d03
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 0x4b6cf5
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
test ecx, ecx
jg 0x4b68ce
jmp 0x4b6fbf
test ecx, ecx
jle 0x4b6fc2
cmp edi, 0x10
jge 0x4b6d63
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 0x4b6d3f
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 0x4b6da1
mov edx, 0x100000
shr edx, 1
je 0x4b6fe2
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 0x4b6d7c
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 0x4b6dd3
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 0x4b6fb7
add eax, 0xffffff00
mov edx, eax
mov dword [ebp - 0x34], eax
and edx, 7
mov dword [ebp - 0x28], edx
cmp edx, 7
jne 0x4b6e90
cmp edi, 0x10
jge 0x4b6e37
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 0x4b6e10
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 0x4b6e79
mov ecx, 0x100000
shr ecx, 1
mov dword [ebp + 0xc], ecx
je 0x4b6fe2
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 0x4b6e50
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 0x4b6f36
cmp eax, 3
je 0x4b6f25
movzx edx, byte [eax + 0x4f2fd0]
mov dword [ebp - 0x24], edx
cmp edi, edx
jge 0x4b6efe
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 0x4b6ed7
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 + 0x4f3008]
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 0x4b6f28
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 0x4b6f52
test eax, eax
jne 0x4b6f3f
mov eax, dword [ebp - 0x10]
jmp 0x4b6f55
mov ecx, dword [ebp - 0x10]
cmp eax, 1
jne 0x4b6f4c
mov eax, dword [ebp - 0x1c]
jmp 0x4b6f31
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 0x4b6fe2
sub dword [ebp - 0x14], edx
cmp ecx, dword [ebp - 0x18]
jae 0x4b6f9f
mov ebx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x30]
mov eax, edx
dec edx
test eax, eax
jle 0x4b6f93
mov al, byte [ecx + esi]
mov byte [ebx], al
inc ebx
inc ecx
cmp ecx, edi
jb 0x4b6f81
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x34], ebx
mov ebx, dword [ebp - 8]
test edx, edx
jle 0x4b6fb4
mov ebx, dword [ebp - 0x34]
mov al, byte [ecx]
dec edx
mov byte [ebx], al
inc ebx
inc ecx
test edx, edx
jg 0x4b6fa6
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
test ecx, ecx
jg 0x4b6d1b
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x2c]
mov ecx, eax
test eax, eax
jg 0x4b683a
cmp dword [ebp - 0x2c], 0
jg 0x4b647b
mov ecx, dword [ebp + 0x10]
cmp dword [ebp - 0x2c], 0
je 0x4b6ff2
push 2
pop eax
jmp 0x4b70de
xor eax, eax
inc eax
jmp 0x4b70de
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.004b8db0
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 0x4b70dc
mov ecx, dword [ebx + 0x34]
mov dword [ebp + 0xc], ecx
test ecx, ecx
je 0x4b70dc
mov eax, dword [ebp + 0x10]
cmp eax, 6
jle 0x4b70d9
cmp dword [ebx + 0x3c], 0
je 0x4b70d9
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 0x4b70d3
mov al, byte [esi]
inc esi
cmp al, 0xe8
je 0x4b7078
xor eax, eax
inc eax
jmp 0x4b70d1
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 0x4b70c8
cmp edx, ecx
jge 0x4b70c8
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 0x4b706c
jmp 0x4b70dc
add dword [ebx + 0x38], eax
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret