Function at 0x4bbd20
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, edx
mov dword [ebp - 4], ecx
mov edx, dword [ebp + 0x10]
add eax, esi
mov dword [ebp - 0x38], eax
xor ebx, ebx
mov eax, dword [ecx]
mov dword [ebp - 0x18], eax
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x10], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x28], eax
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x14], eax
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0x1c], eax
mov eax, dword [ecx + 0x18]
mov ecx, edx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 4]
push edi
xor edi, edi
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x2c], ecx
mov dword [ebp + 0xc], ebx
cmp dword [eax + 0x20], ebx
jne 0x4bbe27
movzx edi, byte [esi + 1]
xor edx, edx
movzx eax, byte [esi]
xor ecx, ecx
shl edi, 8
add esi, 2
or edi, eax
mov dword [ebp - 0xc], esi
shl edi, 0x10
mov eax, edi
mov dword [ebp + 0xc], 0xf
add edi, edi
cmp eax, 0x80000000
jb 0x4bbe10
mov ecx, 1
mov ebx, ecx
lea esp, [esp]
movzx edx, byte [esi + 1]
movzx eax, byte [esi]
add esi, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or edi, edx
sub ebx, 1
jne 0x4bbdb0
mov eax, edi
mov ecx, 1
shr eax, 0x10
mov ebx, ecx
mov dword [ebp - 0x34], eax
shl edi, 0x10
lea ecx, [ecx]
movzx edx, byte [esi + 1]
movzx eax, byte [esi]
add esi, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or edi, edx
sub ebx, 1
jne 0x4bbde0
mov ecx, dword [ebp - 0x34]
mov edx, edi
shr edx, 0x10
mov dword [ebp - 0xc], esi
shl edi, 0x10
mov dword [ebp + 0xc], 0xf
mov eax, dword [ebp - 4]
shl ecx, 0x10
or ecx, edx
mov dword [eax + 0x34], ecx
mov ecx, dword [ebp - 0x2c]
mov edx, ecx
mov dword [eax + 0x20], 1
test edx, edx
jle 0x4bc9f0
nop
cmp dword [eax + 0x2c], 0
jne 0x4bc1cf
cmp word [eax + 0x24], 3
jne 0x4bbe51
test byte [eax + 0x28], 1
je 0x4bbe48
inc esi
xor ebx, ebx
xor edi, edi
mov dword [ebp + 0xc], ebx
jmp 0x4bbe59
mov ebx, dword [ebp + 0xc]
cmp ebx, 3
jge 0x4bbe9e
mov edx, dword [ebp + 0xc]
mov ecx, 0x10
sub ecx, ebx
mov ebx, 2
sub ebx, edx
shr ebx, 4
inc ebx
mov eax, ebx
shl eax, 4
add edx, eax
mov dword [ebp + 0xc], edx
jmp 0x4bbe80
movzx edx, byte [esi + 1]
movzx eax, byte [esi]
add esi, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or edi, edx
sub ebx, 1
jne 0x4bbe80
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp - 4]
mov eax, edi
sub ebx, 3
shr eax, 0x1d
shl edi, 3
mov dword [ebp + 0xc], ebx
mov word [ecx + 0x24], ax
cmp ebx, 0x10
jge 0x4bbefe
mov edx, dword [ebp + 0xc]
mov ecx, 0x10
sub ecx, ebx
mov ebx, 0xf
sub ebx, edx
shr ebx, 4
inc ebx
mov eax, ebx
shl eax, 4
add edx, eax
mov dword [ebp + 0xc], edx
jmp 0x4bbee0
movzx edx, byte [esi + 1]
movzx eax, byte [esi]
add esi, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or edi, edx
sub ebx, 1
jne 0x4bbee0
mov ebx, dword [ebp + 0xc]
mov ecx, edi
sub ebx, 0x10
shr ecx, 0x10
shl edi, 0x10
mov dword [ebp - 0x34], ecx
mov dword [ebp + 0xc], ebx
cmp ebx, 8
jge 0x4bbf54
mov edx, dword [ebp + 0xc]
mov ecx, 0x10
sub ecx, ebx
mov ebx, 7
sub ebx, edx
shr ebx, 4
inc ebx
mov eax, ebx
shl eax, 4
add edx, eax
mov dword [ebp + 0xc], edx
movzx edx, byte [esi + 1]
movzx eax, byte [esi]
add esi, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or edi, edx
sub ebx, 1
jne 0x4bbf33
mov ecx, dword [ebp - 0x34]
mov ebx, dword [ebp + 0xc]
mov edx, dword [ebp - 4]
mov eax, edi
shr eax, 0x18
sub ebx, 8
shl ecx, 8
or ecx, eax
shl edi, 8
movzx eax, word [edx + 0x24]
mov dword [ebp + 0xc], ebx
mov dword [edx + 0x28], ecx
mov dword [edx + 0x2c], ecx
sub eax, 1
je 0x4bc0f0
sub eax, 1
je 0x4bc056
sub eax, 1
jne 0x4bca8e
mov dword [edx + 0x3c], 1
cmp ebx, 0x10
jge 0x4bbfe1
mov edx, dword [ebp + 0xc]
mov ecx, 0x10
sub ecx, ebx
mov ebx, 0xf
sub ebx, edx
shr ebx, 4
inc ebx
mov eax, ebx
shl eax, 4
add edx, eax
mov dword [ebp + 0xc], edx
lea ebx, [ebx]
movzx edx, byte [esi + 1]
movzx eax, byte [esi]
add esi, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or edi, edx
sub ebx, 1
jne 0x4bbfc0
mov ebx, dword [ebp + 0xc]
cmp ebx, 0x10
jle 0x4bbfe6
sub esi, 2
movzx ecx, byte [esi + 3]
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 6]
mov dword [ebp - 0x14], ecx
movzx ecx, byte [esi + 7]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 5]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 4]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 0xa]
mov dword [ebp - 0x1c], ecx
movzx ecx, byte [esi + 0xb]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 9]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 8]
shl ecx, 8
or ecx, eax
add esi, 0xc
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0xc], esi
jmp 0x4bc1cc
xor ecx, ecx
add edx, 0x54b6
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], edx
cmp ebx, 3
jge 0x4bc0b4
mov edx, dword [ebp + 0xc]
mov ecx, 0x10
sub ecx, ebx
mov ebx, 2
sub ebx, edx
shr ebx, 4
inc ebx
mov eax, ebx
shl eax, 4
add edx, eax
mov dword [ebp + 0xc], edx
jmp 0x4bc090
movzx edx, byte [esi + 1]
movzx eax, byte [esi]
add esi, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or edi, edx
sub ebx, 1
jne 0x4bc090
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x30]
mov ebx, dword [ebp + 0xc]
mov eax, edi
sub ebx, 3
shr eax, 0x1d
mov byte [edx + ecx], al
inc ecx
shl edi, 3
mov dword [ebp + 0xc], ebx
mov dword [ebp - 0x34], ecx
cmp ecx, 8
jb 0x4bc064
mov eax, dword [ebp - 4]
add eax, 0x5396
push eax
push edx
mov edx, 7
lea ecx, [edx + 1]
call fcn.004bb790
add esp, 8
test eax, eax
jne 0x4bca8e
mov dword [ebp - 0x44], edi
lea eax, [ebp - 0x44]
mov edi, dword [ebp - 4]
mov ecx, edi
push eax
mov dword [ebp - 0x3c], esi
push 0x100
lea esi, [edi + 0x2ba4]
mov dword [ebp - 0x40], ebx
push 0
mov edx, esi
call fcn.004bb970
add esp, 0xc
test eax, eax
jne 0x4bca8e
lea eax, [ebp - 0x44]
mov edx, esi
push eax
movzx eax, word [edi + 0x1c]
mov ecx, edi
push eax
push 0x100
call fcn.004bb970
add esp, 0xc
test eax, eax
jne 0x4bca8e
lea eax, [edi + 0x164]
mov edx, 0xc
push eax
push esi
mov ecx, 0x290
call fcn.004bb790
add esp, 8
test eax, eax
jne 0x4bca8e
cmp byte [edi + 0x2c8c], al
je 0x4bc174
mov dword [edi + 0x3c], 1
lea eax, [ebp - 0x44]
mov ecx, edi
push eax
lea ebx, [edi + 0x525c]
push 0xf9
push 0
mov edx, ebx
call fcn.004bb970
add esp, 0xc
test eax, eax
jne 0x4bca8e
mov eax, dword [ebp - 0x40]
mov edx, 0xc
mov esi, dword [ebp - 0x3c]
mov ecx, 0xfa
mov edi, dword [ebp - 0x44]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 4]
add eax, 0x2e74
mov dword [ebp - 0xc], esi
push eax
push ebx
call fcn.004bb790
add esp, 8
test eax, eax
jne 0x4bca8e
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x38]
cmp esi, ecx
jbe 0x4bc285
lea eax, [ecx + 2]
cmp esi, eax
ja 0x4bca8e
mov edx, dword [ebp + 0xc]
cmp edx, 0x10
jl 0x4bca8e
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x2c]
mov dword [ebp - 8], ebx
test ebx, ebx
jle 0x4bc9e2
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
jle 0x4bc9ed
cmp ebx, ecx
jle 0x4bc216
mov ebx, ecx
mov dword [ebp - 8], ebx
sub dword [eax + 0x2c], ebx
sub ecx, ebx
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], ecx
dec eax
mov ecx, dword [ebp - 0x10]
and ecx, eax
mov dword [ebp - 0x10], ecx
lea eax, [ebx + ecx]
mov dword [ebp - 0x34], eax
cmp eax, dword [ebp - 0x28]
ja 0x4bca9a
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0x24]
sub eax, 1
je 0x4bc701
sub eax, 1
je 0x4bc28d
sub eax, 1
jne 0x4bca8e
add ebx, esi
cmp ebx, dword [ebp - 0x38]
ja 0x4bca8e
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 0x18]
add eax, ecx
push esi
push eax
call fcn.004e0070
mov eax, dword [ebp - 0x34]
mov esi, ebx
add esp, 0xc
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x10], eax
jmp 0x4bc9ce
mov edx, dword [ebp + 0xc]
jmp 0x4bc1f4
test ebx, ebx
jle 0x4bc9ce
cmp edx, 0x10
jge 0x4bc2d7
mov ebx, 0xf
mov ecx, 0x10
sub ebx, edx
sub ecx, edx
shr ebx, 4
inc ebx
mov eax, ebx
shl eax, 4
add edx, eax
mov dword [ebp + 0xc], edx
movzx edx, byte [esi + 1]
movzx eax, byte [esi]
add esi, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or edi, edx
sub ebx, 1
jne 0x4bc2b6
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0xc], esi
mov ecx, dword [ebp - 4]
mov eax, edi
shr eax, 0x14
movzx eax, word [ecx + eax*2 + 0x164]
cmp eax, 0x290
jb 0x4bc321
mov edx, 0x100000
shr edx, 1
je 0x4bca8e
mov ecx, edx
and ecx, edi
neg ecx
sbb ecx, ecx
add eax, eax
neg ecx
or ecx, eax
mov eax, dword [ebp - 4]
movzx eax, word [eax + ecx*2 + 0x164]
cmp eax, 0x290
jae 0x4bc2f3
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 4]
movzx ecx, byte [eax + ecx + 0x2ba4]
shl edi, cl
sub edx, ecx
mov dword [ebp - 0x20], edi
mov dword [ebp + 0xc], edx
cmp eax, 0x100
jge 0x4bc352
mov ebx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
inc dword [ebp - 0x10]
mov byte [ebx + ecx], al
mov ebx, dword [ebp - 8]
dec ebx
mov dword [ebp - 8], ebx
jmp 0x4bc6f4
lea ebx, [eax - 0x100]
mov ecx, ebx
mov dword [ebp - 0x30], ebx
and ecx, 7
mov dword [ebp - 0x34], ecx
cmp ecx, 7
jne 0x4bc415
cmp edx, 0x10
jge 0x4bc3b4
mov ebx, 0xf
mov ecx, 0x10
sub ebx, edx
sub ecx, edx
shr ebx, 4
inc ebx
mov eax, ebx
shl eax, 4
add edx, eax
mov dword [ebp + 0xc], edx
lea ecx, [ecx]
movzx edx, byte [esi + 1]
movzx eax, byte [esi]
add esi, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or edi, edx
sub ebx, 1
jne 0x4bc390
mov ebx, dword [ebp - 0x30]
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0xc], esi
mov ecx, dword [ebp - 4]
mov eax, edi
shr eax, 0x14
movzx eax, word [ecx + eax*2 + 0x2e74]
cmp eax, 0xfa
jb 0x4bc3fe
mov edx, 0x100000
shr edx, 1
je 0x4bca8e
mov ecx, edx
and ecx, edi
neg ecx
sbb ecx, ecx
add eax, eax
neg ecx
or ecx, eax
mov eax, dword [ebp - 4]
movzx eax, word [eax + ecx*2 + 0x2e74]
cmp eax, 0xfa
jae 0x4bc3d0
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 4]
movzx ecx, byte [eax + ecx + 0x525c]
shl edi, cl
sub edx, ecx
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x20], edi
add ecx, eax
mov dword [ebp + 0xc], edx
add ecx, 2
sar ebx, 3
mov dword [ebp - 0x34], ecx
cmp ebx, 2
jbe 0x4bc66c
movzx edx, byte [ebx + 0x4eeecc]
mov ebx, dword [ebx*4 + 0x4eef00]
sub ebx, 2
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x24], ebx
cmp edx, 3
jbe 0x4bc53b
mov eax, dword [ebp + 0xc]
sub edx, 3
mov dword [ebp - 0x30], edx
cmp eax, edx
jge 0x4bc494
mov ebx, edx
mov ecx, 0x10
sub ebx, eax
sub ecx, eax
dec ebx
shr ebx, 4
inc ebx
mov eax, ebx
shl eax, 4
add dword [ebp + 0xc], eax
lea esp, [esp]
movzx edx, byte [esi + 1]
movzx eax, byte [esi]
add esi, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or edi, edx
sub ebx, 1
jne 0x4bc470
mov edx, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0xc], esi
sub dword [ebp + 0xc], edx
mov ecx, 0x20
sub ecx, edx
mov eax, edi
shr eax, cl
mov ecx, edx
mov edx, dword [ebp + 0xc]
shl edi, cl
lea ebx, [ebx + eax*8]
mov dword [ebp - 0x24], ebx
cmp edx, 0x10
jge 0x4bc4f1
mov ebx, 0xf
mov ecx, 0x10
sub ebx, edx
sub ecx, edx
shr ebx, 4
inc ebx
mov eax, ebx
shl eax, 4
add edx, eax
mov dword [ebp + 0xc], edx
movzx edx, byte [esi + 1]
movzx eax, byte [esi]
add esi, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or edi, edx
sub ebx, 1
jne 0x4bc4d0
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0xc], esi
mov ecx, dword [ebp - 4]
mov eax, edi
shr eax, 0x19
movzx eax, word [ecx + eax*2 + 0x5396]
cmp eax, 8
jb 0x4bc5c9
mov edx, 0x2000000
nop
shr edx, 1
je 0x4bca8e
mov ecx, edx
and ecx, edi
neg ecx
sbb ecx, ecx
add eax, eax
neg ecx
or ecx, eax
mov eax, dword [ebp - 4]
movzx eax, word [eax + ecx*2 + 0x5396]
cmp eax, 8
jae 0x4bc510
jmp 0x4bc5c6
jne 0x4bc5ec
mov edx, dword [ebp + 0xc]
cmp edx, 0x10
jge 0x4bc586
mov ebx, 0xf
mov ecx, 0x10
sub ebx, edx
sub ecx, edx
shr ebx, 4
inc ebx
mov eax, ebx
shl eax, 4
add edx, eax
mov dword [ebp + 0xc], edx
movzx edx, byte [esi + 1]
movzx eax, byte [esi]
add esi, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or edi, edx
sub ebx, 1
jne 0x4bc565
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0xc], esi
mov ecx, dword [ebp - 4]
mov eax, edi
shr eax, 0x19
movzx eax, word [ecx + eax*2 + 0x5396]
cmp eax, 8
jb 0x4bc5c9
mov edx, 0x2000000
shr edx, 1
je 0x4bca8e
mov ecx, edx
and ecx, edi
neg ecx
sbb ecx, ecx
add eax, eax
neg ecx
or ecx, eax
mov eax, dword [ebp - 4]
movzx eax, word [eax + ecx*2 + 0x5396]
cmp eax, 8
jae 0x4bc5a0
mov ecx, dword [ebp - 4]
movzx ecx, byte [eax + ecx + 0x54b6]
sub dword [ebp + 0xc], ecx
shl edi, cl
add ebx, eax
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], ecx
jmp 0x4bc68b
test edx, edx
je 0x4bc659
mov eax, dword [ebp + 0xc]
cmp eax, edx
jge 0x4bc634
mov ebx, edx
mov ecx, 0x10
sub ebx, eax
sub ecx, eax
dec ebx
shr ebx, 4
inc ebx
mov eax, ebx
shl eax, 4
add dword [ebp + 0xc], eax
nop
movzx edx, byte [esi + 1]
movzx eax, byte [esi]
add esi, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or edi, edx
sub ebx, 1
jne 0x4bc610
mov edx, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0xc], esi
sub dword [ebp + 0xc], edx
mov ecx, 0x20
sub ecx, edx
mov eax, edi
shr eax, cl
mov ecx, edx
shl edi, cl
add ebx, eax
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], ecx
jmp 0x4bc68b
mov ecx, dword [ebp - 0x1c]
mov ebx, 1
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x1c], ecx
jmp 0x4bc68b
test ebx, ebx
jne 0x4bc675
mov ebx, dword [ebp - 0x14]
jmp 0x4bc68e
mov eax, dword [ebp - 0x14]
cmp ebx, 1
jne 0x4bc685
mov ebx, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
jmp 0x4bc68b
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x14], ebx
mov ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
mov edx, ecx
sub edx, ebx
mov ebx, dword [ebp - 0x34]
add eax, ebx
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x28]
ja 0x4bca8e
sub dword [ebp - 8], ebx
cmp edx, dword [ebp - 0x18]
jae 0x4bc6d8
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x28]
lea ebx, [ebx]
mov eax, ebx
dec ebx
test eax, eax
jle 0x4bc6d2
mov al, byte [edx + edi]
inc edx
mov byte [ecx], al
inc ecx
cmp edx, esi
jb 0x4bc6c0
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x20]
test ebx, ebx
jle 0x4bc6ee
sub edx, ecx
mov edi, edi
mov al, byte [edx + ecx]
lea ecx, [ecx + 1]
dec ebx
mov byte [ecx - 1], al
test ebx, ebx
jg 0x4bc6e0
mov ebx, dword [ebp - 8]
mov edx, dword [ebp + 0xc]
test ebx, ebx
jg 0x4bc295
jmp 0x4bc9ce
test ebx, ebx
jle 0x4bc9ce
lea esp, [esp]
cmp edx, 0x10
jge 0x4bc752
mov ebx, 0xf
mov ecx, 0x10
sub ebx, edx
sub ecx, edx
shr ebx, 4
inc ebx
mov eax, ebx
shl eax, 4
add edx, eax
mov dword [ebp + 0xc], edx
movzx edx, byte [esi + 1]
movzx eax, byte [esi]
add esi, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or edi, edx
sub ebx, 1
jne 0x4bc731
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0xc], esi
mov ecx, dword [ebp - 4]
mov eax, edi
shr eax, 0x14
movzx eax, word [ecx + eax*2 + 0x164]
cmp eax, 0x290
jb 0x4bc79e
mov edx, 0x100000
mov edi, edi
shr edx, 1
je 0x4bca8e
mov ecx, edx
and ecx, edi
neg ecx
sbb ecx, ecx
add eax, eax
neg ecx
or ecx, eax
mov eax, dword [ebp - 4]
movzx eax, word [eax + ecx*2 + 0x164]
cmp eax, 0x290
jae 0x4bc770
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 4]
movzx ecx, byte [eax + ecx + 0x2ba4]
shl edi, cl
sub edx, ecx
mov dword [ebp - 0x20], edi
mov dword [ebp + 0xc], edx
cmp eax, 0x100
jge 0x4bc7cf
mov ebx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
inc dword [ebp - 0x10]
mov byte [ebx + ecx], al
mov ebx, dword [ebp - 8]
dec ebx
mov dword [ebp - 8], ebx
jmp 0x4bc9c6
add eax, 0xffffff00
mov ebx, eax
mov dword [ebp - 0x30], eax
and ebx, 7
mov dword [ebp - 0x34], ebx
cmp ebx, 7
jne 0x4bc895
cmp edx, 0x10
jge 0x4bc834
mov eax, 0xf
mov ecx, 0x10
sub eax, edx
sub ecx, edx
shr eax, 4
inc eax
mov dword [ebp - 0x20], eax
mov ebx, eax
shl eax, 4
add edx, eax
mov dword [ebp + 0xc], edx
lea esp, [esp]
movzx edx, byte [esi + 1]
movzx eax, byte [esi]
add esi, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or edi, edx
sub ebx, 1
jne 0x4bc810
mov ebx, dword [ebp - 0x34]
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0xc], esi
mov ecx, dword [ebp - 4]
mov eax, edi
shr eax, 0x14
movzx eax, word [ecx + eax*2 + 0x2e74]
cmp eax, 0xfa
jb 0x4bc87e
mov edx, 0x100000
shr edx, 1
je 0x4bca8e
mov ecx, edx
and ecx, edi
neg ecx
sbb ecx, ecx
add eax, eax
neg ecx
or ecx, eax
mov eax, dword [ebp - 4]
movzx eax, word [eax + ecx*2 + 0x2e74]
cmp eax, 0xfa
jae 0x4bc850
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 4]
movzx ecx, byte [eax + ecx + 0x525c]
shl edi, cl
sub edx, ecx
add ebx, eax
mov dword [ebp - 0x20], edi
mov eax, dword [ebp - 0x30]
mov dword [ebp + 0xc], edx
sar eax, 3
add ebx, 2
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], eax
cmp eax, 2
jbe 0x4bc949
cmp eax, 3
je 0x4bc936
movzx eax, byte [eax + 0x4eeecc]
mov dword [ebp - 0x20], eax
cmp edx, eax
jge 0x4bc904
sub eax, edx
mov ecx, 0x10
dec eax
sub ecx, edx
shr eax, 4
inc eax
mov dword [ebp - 0x24], eax
mov ebx, eax
shl eax, 4
add edx, eax
mov dword [ebp + 0xc], edx
lea esp, [esp]
movzx edx, byte [esi + 1]
movzx eax, byte [esi]
add esi, 2
shl edx, 8
or edx, eax
shl edx, cl
sub ecx, 0x10
or edi, edx
sub ebx, 1
jne 0x4bc8e0
mov ebx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0xc], esi
sub dword [ebp + 0xc], eax
mov ecx, 0x20
sub ecx, eax
mov edx, edi
shr edx, cl
mov ecx, eax
mov eax, dword [ebp - 0x30]
shl edi, cl
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x24], ecx
mov eax, dword [eax*4 + 0x4eef00]
mov ecx, dword [ebp - 0x14]
add eax, 0xfffffffe
mov dword [ebp - 0x20], edi
add eax, edx
mov dword [ebp - 0x1c], ecx
jmp 0x4bc968
mov ecx, dword [ebp - 0x1c]
mov eax, 1
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x1c], ecx
jmp 0x4bc968
test eax, eax
jne 0x4bc952
mov eax, dword [ebp - 0x14]
jmp 0x4bc96b
mov ecx, dword [ebp - 0x14]
cmp eax, 1
jne 0x4bc962
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], ecx
jmp 0x4bc968
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x18]
mov ecx, edx
sub ecx, eax
mov eax, dword [ebp - 0x10]
add eax, ebx
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x28]
ja 0x4bca8e
sub dword [ebp - 8], ebx
cmp ecx, dword [ebp - 0x18]
jae 0x4bc9ac
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x28]
mov eax, ebx
dec ebx
test eax, eax
jle 0x4bc9a6
mov al, byte [ecx + edi]
inc ecx
mov byte [edx], al
inc edx
cmp ecx, esi
jb 0x4bc994
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 0x20]
test ebx, ebx
jle 0x4bc9c0
mov al, byte [ecx]
lea edx, [edx + 1]
dec ebx
mov byte [edx - 1], al
lea ecx, [ecx + 1]
test ebx, ebx
jg 0x4bc9b0
mov ebx, dword [ebp - 8]
mov edx, dword [ebp + 0xc]
test ebx, ebx
jg 0x4bc710
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 0xc]
mov ebx, dword [eax + 0x2c]
mov dword [ebp - 8], ebx
test ebx, ebx
jg 0x4bc202
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
jg 0x4bbe30
mov edx, dword [ebp + 0x10]
test ecx, ecx
jne 0x4bca8e
mov ebx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x28]
test ebx, ebx
je 0x4bca04
mov eax, ebx
mov esi, dword [ebp + 8]
sub eax, edx
add eax, dword [ebp - 0x18]
push edx
push eax
push esi
call fcn.004e0070
mov edx, dword [ebp - 4]
add esp, 0xc
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
mov dword [edx + 0x14], ecx
mov ecx, dword [edx + 0x30]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 0x24]
mov dword [edx + 0x18], eax
mov dword [edx + 0xc], ebx
lea eax, [ecx + 1]
mov dword [edx + 0x30], eax
cmp ecx, 0x8000
jae 0x4bcb0c
mov edi, dword [edx + 0x34]
test edi, edi
je 0x4bcb0c
mov eax, dword [ebp + 0x10]
cmp eax, 6
jle 0x4bcb09
cmp dword [edx + 0x3c], 0
je 0x4bcb09
mov ecx, dword [ebp - 4]
lea ebx, [eax - 0xa]
mov edx, dword [edx + 0x38]
add ebx, esi
add eax, edx
mov dword [ecx + 0x38], eax
cmp esi, ebx
jae 0x4bcb0c
lea ecx, [ecx]
mov al, byte [esi]
inc esi
cmp al, 0xe8
je 0x4bcaa6
mov eax, 1
jmp 0x4bcafa
pop edi
pop esi
mov eax, 2
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
movzx ecx, byte [esi + 3]
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi + 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [esi]
shl ecx, 8
or ecx, eax
mov eax, edx
neg eax
cmp ecx, eax
jl 0x4bcaf2
cmp ecx, edi
jge 0x4bcaf2
test ecx, ecx
js 0x4bcad8
sub ecx, edx
jmp 0x4bcada
add ecx, edi
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 + 2], al
mov byte [esi + 3], cl
add esi, 4
mov eax, 5
add edx, eax
cmp esi, ebx
jb 0x4bca80
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
add dword [edx + 0x38], eax
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret