Function at 0x4ae910
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
push dword [ebp + 0x10]
mov eax, dword [ebx + 0x10]
lea ecx, [ebx + 0x14]
push dword [ebp + 0xc]
mov esi, dword [ebx]
mov edx, dword [ebx + 0x20014]
mov dword [ebp - 0x10], ecx
dec ecx
add eax, ecx
mov dword [ebp - 4], edx
push esi
mov dword [ebp - 0x14], eax
call fcn.005a20f0
mov edx, dword [esi + 4]
add esp, 0xc
mov edi, dword [esi + 0x10]
mov ecx, edx
sub ecx, dword [esi]
mov dword [esi + 0x20], 0
cmp ecx, edi
jae 0x4ae963
movzx eax, byte [edx]
shl eax, 0x18
mov dword [esi + 0x20], eax
lea eax, [ecx + 1]
cmp eax, edi
jae 0x4ae974
movzx eax, byte [edx + 1]
shl eax, 0x10
or dword [esi + 0x20], eax
lea eax, [ecx + 2]
cmp eax, edi
jae 0x4ae985
movzx eax, byte [edx + 2]
shl eax, 8
or dword [esi + 0x20], eax
lea eax, [ecx + 3]
cmp eax, edi
jae 0x4ae993
movzx eax, byte [edx + 3]
or dword [esi + 0x20], eax
lea eax, [ecx + 4]
mov dword [esi + 0x1c], 0
cmp eax, edi
jae 0x4ae9ab
movzx eax, byte [edx + 4]
shl eax, 0x18
mov dword [esi + 0x1c], eax
lea eax, [ecx + 5]
cmp eax, edi
jae 0x4ae9bc
movzx eax, byte [edx + 5]
shl eax, 0x10
or dword [esi + 0x1c], eax
lea eax, [ecx + 6]
cmp eax, edi
jae 0x4ae9cd
movzx eax, byte [edx + 6]
shl eax, 8
or dword [esi + 0x1c], eax
lea eax, [ecx + 7]
cmp eax, edi
jae 0x4ae9db
movzx eax, byte [edx + 7]
or dword [esi + 0x1c], eax
mov ebx, dword [ebp + 0x1c]
mov edi, dword [ebp + 8]
test bl, 0x40
je 0x4ae9f5
lea eax, [edi + 0x14]
mov dword [edi + 0xc], 0
mov dword [edi + 8], eax
jmp 0x4ae9f8
mov eax, dword [ebp - 0x10]
test bl, bl
jns 0x4aea14
push dword [edi + 0x10]
mov dword [edi + 0xc], 0
push 0
push eax
mov dword [edi + 8], eax
call fcn.00580b90
add esp, 0xc
mov edi, dword [edi + 8]
mov dword [ebp + 0x1c], edi
test bl, 0x20
jne 0x4aea3b
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x10]
pop edi
pop esi
mov dword [eax], ecx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0xc]
pop ebx
mov dword [eax], ecx
mov eax, 1
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
cmp eax, 8
jb 0x4aeb4c
lea ebx, [ebx]
mov edx, dword [esi + 0x20]
cmp edi, dword [ebp - 0x14]
ja 0x4b003d
test edx, edx
js 0x4aeb70
shr edx, 0x18
and dl, 0x7f
mov byte [edi], dl
inc edi
add dword [esi + 0x18], 8
shl dword [esi + 0x20], 8
add dword [esi + 8], 8
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x20]
mov dword [ebp + 0x1c], edi
mov dword [esi + 0x14], 0xff
cmp ecx, 0x20
jae 0x4aeaa6
mov ecx, dword [esi + 0x1c]
mov eax, ecx
shr eax, 0x18
or eax, edx
shl ecx, 8
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
jmp 0x4aeb3d
movzx eax, byte [esi + 0x1f]
add dword [esi + 4], 4
lea ebx, [ecx - 0x20]
mov ecx, dword [esi + 4]
or eax, edx
mov edi, dword [esi + 0x10]
mov dword [esi + 0x20], eax
mov eax, ecx
sub eax, dword [esi]
add eax, 4
mov dword [esi + 0x1c], 0
mov dword [esi + 0x18], ebx
cmp eax, edi
jae 0x4aeadb
movzx eax, byte [ecx + 4]
shl eax, 0x18
mov dword [esi + 0x1c], eax
mov edx, ecx
sub edx, dword [esi]
lea eax, [edx + 5]
cmp eax, edi
jae 0x4aeaf0
movzx eax, byte [ecx + 5]
shl eax, 0x10
or dword [esi + 0x1c], eax
lea eax, [edx + 6]
cmp eax, edi
jae 0x4aeb01
movzx eax, byte [ecx + 6]
shl eax, 8
or dword [esi + 0x1c], eax
lea eax, [edx + 7]
cmp eax, edi
jae 0x4aeb0f
movzx eax, byte [ecx + 7]
or dword [esi + 0x1c], eax
test ebx, ebx
je 0x4aeb3a
mov edi, dword [esi + 0x1c]
mov ecx, ebx
mov edx, 1
mov eax, edi
shl edx, cl
mov ecx, 0x20
sub ecx, ebx
dec edx
shr eax, cl
mov ecx, ebx
and eax, edx
mov dword [esi + 0x14], edx
or dword [esi + 0x20], eax
shl edi, cl
mov dword [esi + 0x1c], edi
mov edi, dword [ebp + 0x1c]
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
cmp eax, 8
jae 0x4aea50
mov ebx, dword [ebp + 8]
mov edx, edi
mov ecx, dword [ebp + 0x18]
mov eax, 1
sub edx, dword [ebx + 8]
mov dword [ecx], edx
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebx + 8]
mov dword [ecx], edx
mov dword [ebx + 8], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, edx
and eax, 0xc0000000
cmp eax, 0x80000000
jne 0x4aebce
shr edx, 0x17
and dl, 0x7f
sub dl, 0x80
mov byte [edi], dl
inc edi
add dword [esi + 0x18], 9
shl dword [esi + 0x20], 9
add dword [esi + 8], 9
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x20]
mov dword [ebp + 0x1c], edi
mov dword [esi + 0x14], 0x1ff
cmp ecx, 0x20
jae 0x4aebc3
mov ecx, dword [esi + 0x1c]
mov eax, ecx
shr eax, 0x17
or eax, edx
shl ecx, 9
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
jmp 0x4aeb3d
mov eax, dword [esi + 0x1c]
shr eax, 0x17
jmp 0x4aeaaa
mov ebx, dword [ebp - 4]
mov eax, edx
test ebx, ebx
je 0x4aef12
and eax, 0xf8000000
cmp eax, 0xf8000000
jne 0x4aeca3
add dword [esi + 0x18], 0xb
mov ebx, edx
add dword [esi + 8], 0xb
mov ecx, dword [esi + 0x18]
shr ebx, 0x15
and ebx, 0x3f
shl edx, 0xb
mov dword [ebp - 8], ebx
mov dword [esi + 0x20], edx
mov dword [esi + 0x14], 0x7ff
cmp ecx, 0x20
jae 0x4aec2b
mov ecx, dword [esi + 0x1c]
mov eax, ecx
shr eax, 0x15
or eax, edx
shl ecx, 0xb
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
jmp 0x4af19d
mov eax, dword [esi + 0x1c]
add ecx, 0xffffffe0
add dword [esi + 4], 4
mov ebx, dword [esi]
mov edi, dword [esi + 0x10]
shr eax, 0x15
or eax, edx
mov dword [ebp - 0xc], ecx
mov dword [esi + 0x20], eax
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 4]
mov eax, ecx
sub eax, ebx
mov dword [esi + 0x1c], 0
add eax, 4
cmp eax, edi
jae 0x4aec67
movzx eax, byte [ecx + 4]
shl eax, 0x18
mov dword [esi + 0x1c], eax
mov edx, ecx
sub edx, ebx
lea eax, [edx + 5]
cmp eax, edi
jae 0x4aec7c
movzx eax, byte [ecx + 5]
shl eax, 0x10
or dword [esi + 0x1c], eax
lea eax, [edx + 6]
cmp eax, edi
jae 0x4aec8d
movzx eax, byte [ecx + 6]
shl eax, 8
or dword [esi + 0x1c], eax
lea eax, [edx + 7]
cmp eax, edi
jae 0x4aec9b
movzx eax, byte [ecx + 7]
or dword [esi + 0x1c], eax
mov ebx, dword [ebp - 0xc]
jmp 0x4af16f
cmp eax, 0xf0000000
jne 0x4aed6c
add dword [esi + 0x18], 0xd
mov ebx, edx
add dword [esi + 8], 0xd
mov ecx, dword [esi + 0x18]
shr ebx, 0x13
and ebx, 0xff
shl edx, 0xd
add ebx, 0x40
mov dword [esi + 0x20], edx
mov dword [ebp - 8], ebx
mov dword [esi + 0x14], 0x1fff
cmp ecx, 0x20
jae 0x4aecf4
mov ecx, dword [esi + 0x1c]
mov eax, ecx
shr eax, 0x13
or eax, edx
shl ecx, 0xd
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
jmp 0x4af19d
mov eax, dword [esi + 0x1c]
add ecx, 0xffffffe0
add dword [esi + 4], 4
mov ebx, dword [esi]
mov edi, dword [esi + 0x10]
shr eax, 0x13
or eax, edx
mov dword [ebp - 0xc], ecx
mov dword [esi + 0x20], eax
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 4]
mov eax, ecx
sub eax, ebx
mov dword [esi + 0x1c], 0
add eax, 4
cmp eax, edi
jae 0x4aed30
movzx eax, byte [ecx + 4]
shl eax, 0x18
mov dword [esi + 0x1c], eax
mov edx, ecx
sub edx, ebx
lea eax, [edx + 5]
cmp eax, edi
jae 0x4aed45
movzx eax, byte [ecx + 5]
shl eax, 0x10
or dword [esi + 0x1c], eax
lea eax, [edx + 6]
cmp eax, edi
jae 0x4aed56
movzx eax, byte [ecx + 6]
shl eax, 8
or dword [esi + 0x1c], eax
lea eax, [edx + 7]
cmp eax, edi
jae 0x4aed64
movzx eax, byte [ecx + 7]
or dword [esi + 0x1c], eax
mov ebx, dword [ebp - 0xc]
jmp 0x4af16f
mov eax, edx
and eax, 0xf0000000
cmp eax, 0xe0000000
jne 0x4aee3f
add dword [esi + 0x18], 0xf
mov ebx, edx
add dword [esi + 8], 0xf
mov ecx, dword [esi + 0x18]
shr ebx, 0x11
and ebx, 0x7ff
shl edx, 0xf
add ebx, 0x140
mov dword [esi + 0x20], edx
mov dword [ebp - 8], ebx
mov dword [esi + 0x14], 0x7fff
cmp ecx, 0x20
jae 0x4aedc7
mov ecx, dword [esi + 0x1c]
mov eax, ecx
shr eax, 0x11
or eax, edx
shl ecx, 0xf
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
jmp 0x4af19d
mov eax, dword [esi + 0x1c]
add ecx, 0xffffffe0
add dword [esi + 4], 4
mov ebx, dword [esi]
mov edi, dword [esi + 0x10]
shr eax, 0x11
or eax, edx
mov dword [ebp - 0xc], ecx
mov dword [esi + 0x20], eax
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 4]
mov eax, ecx
sub eax, ebx
mov dword [esi + 0x1c], 0
add eax, 4
cmp eax, edi
jae 0x4aee03
movzx eax, byte [ecx + 4]
shl eax, 0x18
mov dword [esi + 0x1c], eax
mov edx, ecx
sub edx, ebx
lea eax, [edx + 5]
cmp eax, edi
jae 0x4aee18
movzx eax, byte [ecx + 5]
shl eax, 0x10
or dword [esi + 0x1c], eax
lea eax, [edx + 6]
cmp eax, edi
jae 0x4aee29
movzx eax, byte [ecx + 6]
shl eax, 8
or dword [esi + 0x1c], eax
lea eax, [edx + 7]
cmp eax, edi
jae 0x4aee37
movzx eax, byte [ecx + 7]
or dword [esi + 0x1c], eax
mov ebx, dword [ebp - 0xc]
jmp 0x4af16f
mov eax, edx
and eax, 0xe0000000
cmp eax, 0xc0000000
jne 0x4affc3
add dword [esi + 0x18], 0x13
mov ebx, edx
add dword [esi + 8], 0x13
mov ecx, dword [esi + 0x18]
shr ebx, 0xd
and ebx, 0xffff
shl edx, 0x13
add ebx, 0x940
mov dword [esi + 0x20], edx
mov dword [ebp - 8], ebx
mov dword [esi + 0x14], 0x7ffff
cmp ecx, 0x20
jae 0x4aee9a
mov ecx, dword [esi + 0x1c]
mov eax, ecx
shr eax, 0xd
or eax, edx
shl ecx, 0x13
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
jmp 0x4af19d
mov eax, dword [esi + 0x1c]
add ecx, 0xffffffe0
add dword [esi + 4], 4
mov ebx, dword [esi]
mov edi, dword [esi + 0x10]
shr eax, 0xd
or eax, edx
mov dword [ebp - 0xc], ecx
mov dword [esi + 0x20], eax
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 4]
mov eax, ecx
sub eax, ebx
mov dword [esi + 0x1c], 0
add eax, 4
cmp eax, edi
jae 0x4aeed6
movzx eax, byte [ecx + 4]
shl eax, 0x18
mov dword [esi + 0x1c], eax
mov edx, ecx
sub edx, ebx
lea eax, [edx + 5]
cmp eax, edi
jae 0x4aeeeb
movzx eax, byte [ecx + 5]
shl eax, 0x10
or dword [esi + 0x1c], eax
lea eax, [edx + 6]
cmp eax, edi
jae 0x4aeefc
movzx eax, byte [ecx + 6]
shl eax, 8
or dword [esi + 0x1c], eax
lea eax, [edx + 7]
cmp eax, edi
jae 0x4aef0a
movzx eax, byte [ecx + 7]
or dword [esi + 0x1c], eax
mov ebx, dword [ebp - 0xc]
jmp 0x4af16f
and eax, 0xf0000000
cmp eax, 0xf0000000
jne 0x4aefda
add dword [esi + 0x18], 0xa
mov eax, edx
add dword [esi + 8], 0xa
mov ecx, dword [esi + 0x18]
shr eax, 0x16
and eax, 0x3f
shl edx, 0xa
mov dword [ebp - 8], eax
mov dword [esi + 0x20], edx
mov dword [esi + 0x14], 0x3ff
cmp ecx, 0x20
jae 0x4aef62
mov ecx, dword [esi + 0x1c]
mov eax, ecx
shr eax, 0x16
or eax, edx
shl ecx, 0xa
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
jmp 0x4af1a0
mov eax, dword [esi + 0x1c]
add ecx, 0xffffffe0
add dword [esi + 4], 4
mov ebx, dword [esi]
mov edi, dword [esi + 0x10]
shr eax, 0x16
or eax, edx
mov dword [ebp - 0xc], ecx
mov dword [esi + 0x20], eax
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 4]
mov eax, ecx
sub eax, ebx
mov dword [esi + 0x1c], 0
add eax, 4
cmp eax, edi
jae 0x4aef9e
movzx eax, byte [ecx + 4]
shl eax, 0x18
mov dword [esi + 0x1c], eax
mov edx, ecx
sub edx, ebx
lea eax, [edx + 5]
cmp eax, edi
jae 0x4aefb3
movzx eax, byte [ecx + 5]
shl eax, 0x10
or dword [esi + 0x1c], eax
lea eax, [edx + 6]
cmp eax, edi
jae 0x4aefc4
movzx eax, byte [ecx + 6]
shl eax, 8
or dword [esi + 0x1c], eax
lea eax, [edx + 7]
cmp eax, edi
jae 0x4aefd2
movzx eax, byte [ecx + 7]
or dword [esi + 0x1c], eax
mov ebx, dword [ebp - 0xc]
jmp 0x4af16f
cmp eax, 0xe0000000
jne 0x4af0a3
add dword [esi + 0x18], 0xc
mov ebx, edx
add dword [esi + 8], 0xc
mov ecx, dword [esi + 0x18]
shr ebx, 0x14
and ebx, 0xff
shl edx, 0xc
add ebx, 0x40
mov dword [esi + 0x20], edx
mov dword [ebp - 8], ebx
mov dword [esi + 0x14], 0xfff
cmp ecx, 0x20
jae 0x4af02b
mov ecx, dword [esi + 0x1c]
mov eax, ecx
shr eax, 0x14
or eax, edx
shl ecx, 0xc
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
jmp 0x4af19d
mov eax, dword [esi + 0x1c]
add ecx, 0xffffffe0
add dword [esi + 4], 4
mov ebx, dword [esi]
mov edi, dword [esi + 0x10]
shr eax, 0x14
or eax, edx
mov dword [ebp - 0xc], ecx
mov dword [esi + 0x20], eax
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 4]
mov eax, ecx
sub eax, ebx
mov dword [esi + 0x1c], 0
add eax, 4
cmp eax, edi
jae 0x4af067
movzx eax, byte [ecx + 4]
shl eax, 0x18
mov dword [esi + 0x1c], eax
mov edx, ecx
sub edx, ebx
lea eax, [edx + 5]
cmp eax, edi
jae 0x4af07c
movzx eax, byte [ecx + 5]
shl eax, 0x10
or dword [esi + 0x1c], eax
lea eax, [edx + 6]
cmp eax, edi
jae 0x4af08d
movzx eax, byte [ecx + 6]
shl eax, 8
or dword [esi + 0x1c], eax
lea eax, [edx + 7]
cmp eax, edi
jae 0x4af09b
movzx eax, byte [ecx + 7]
or dword [esi + 0x1c], eax
mov ebx, dword [ebp - 0xc]
jmp 0x4af16f
mov eax, edx
and eax, 0xe0000000
cmp eax, 0xc0000000
jne 0x4b0031
add dword [esi + 0x18], 0x10
mov ebx, edx
add dword [esi + 8], 0x10
mov ecx, dword [esi + 0x18]
shr ebx, 0x10
and ebx, 0x1fff
shl edx, 0x10
add ebx, 0x140
mov dword [esi + 0x20], edx
mov dword [ebp - 8], ebx
mov dword [esi + 0x14], 0xffff
cmp ecx, 0x20
jae 0x4af0fe
mov ecx, dword [esi + 0x1c]
mov eax, ecx
shr eax, 0x10
or eax, edx
shl ecx, 0x10
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
jmp 0x4af19d
movzx eax, word [esi + 0x1e]
add ecx, 0xffffffe0
add dword [esi + 4], 4
or eax, edx
mov ebx, dword [esi]
mov edi, dword [esi + 0x10]
mov dword [esi + 0x20], eax
mov dword [ebp - 0xc], ecx
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 4]
mov eax, ecx
sub eax, ebx
mov dword [esi + 0x1c], 0
add eax, 4
cmp eax, edi
jae 0x4af138
movzx eax, byte [ecx + 4]
shl eax, 0x18
mov dword [esi + 0x1c], eax
mov edx, ecx
sub edx, ebx
lea eax, [edx + 5]
cmp eax, edi
jae 0x4af14d
movzx eax, byte [ecx + 5]
shl eax, 0x10
or dword [esi + 0x1c], eax
lea eax, [edx + 6]
cmp eax, edi
jae 0x4af15e
movzx eax, byte [ecx + 6]
shl eax, 8
or dword [esi + 0x1c], eax
lea eax, [edx + 7]
cmp eax, edi
jae 0x4af16c
movzx eax, byte [ecx + 7]
or dword [esi + 0x1c], eax
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x4af19a
mov edi, dword [esi + 0x1c]
mov ecx, ebx
mov edx, 1
mov eax, edi
shl edx, cl
mov ecx, 0x20
sub ecx, ebx
dec edx
shr eax, cl
mov ecx, ebx
and eax, edx
mov dword [esi + 0x14], edx
or dword [esi + 0x20], eax
shl edi, cl
mov dword [esi + 0x1c], edi
mov edi, dword [ebp + 0x1c]
mov ebx, dword [ebp - 4]
mov edx, dword [esi + 0x20]
test edx, edx
js 0x4af279
inc dword [esi + 0x18]
add edx, edx
inc dword [esi + 8]
mov ebx, 3
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x20], edx
mov dword [esi + 0x14], 1
cmp ecx, 0x20
jae 0x4af1e2
mov ecx, dword [esi + 0x1c]
mov eax, ecx
shr eax, 0x1f
or eax, edx
mov dword [esi + 0x20], eax
lea eax, [ecx + ecx]
mov dword [esi + 0x1c], eax
jmp 0x4aff83
mov eax, dword [esi + 0x1c]
add dword [esi + 4], 4
mov edi, dword [esi + 0x10]
shr eax, 0x1f
or eax, edx
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], eax
lea eax, [ecx - 0x20]
mov ecx, dword [esi + 4]
mov dword [ebp - 0xc], eax
mov dword [esi + 0x18], eax
mov eax, ecx
sub eax, dword [esi]
add eax, 4
cmp eax, edi
jae 0x4af21c
movzx eax, byte [ecx + 4]
shl eax, 0x18
mov dword [esi + 0x1c], eax
mov edx, ecx
sub edx, dword [esi]
lea eax, [edx + 5]
cmp eax, edi
jae 0x4af231
movzx eax, byte [ecx + 5]
shl eax, 0x10
or dword [esi + 0x1c], eax
lea eax, [edx + 6]
cmp eax, edi
jae 0x4af242
movzx eax, byte [ecx + 6]
shl eax, 8
or dword [esi + 0x1c], eax
lea eax, [edx + 7]
cmp eax, edi
jae 0x4af250
movzx eax, byte [ecx + 7]
or dword [esi + 0x1c], eax
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x4aff80
mov edi, dword [esi + 0x1c]
mov edx, 1
shl edx, cl
mov eax, edi
mov ecx, 0x20
sub ecx, dword [ebp - 0xc]
shr eax, cl
mov ecx, dword [ebp - 0xc]
jmp 0x4aff72
mov eax, edx
and eax, 0xc0000000
cmp eax, 0x80000000
jne 0x4af362
add dword [esi + 0x18], 4
mov ebx, edx
add dword [esi + 8], 4
mov ecx, dword [esi + 0x18]
shr ebx, 0x1c
and ebx, 3
shl edx, 4
add ebx, 4
mov dword [esi + 0x20], edx
mov dword [esi + 0x14], 0xf
cmp ecx, 0x20
jae 0x4af2cb
mov ecx, dword [esi + 0x1c]
mov eax, ecx
shr eax, 0x1c
or eax, edx
shl ecx, 4
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
jmp 0x4aff83
mov eax, dword [esi + 0x1c]
add dword [esi + 4], 4
mov edi, dword [esi + 0x10]
shr eax, 0x1c
or eax, edx
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], eax
lea eax, [ecx - 0x20]
mov ecx, dword [esi + 4]
mov dword [ebp - 0xc], eax
mov dword [esi + 0x18], eax
mov eax, ecx
sub eax, dword [esi]
add eax, 4
cmp eax, edi
jae 0x4af305
movzx eax, byte [ecx + 4]
shl eax, 0x18
mov dword [esi + 0x1c], eax
mov edx, ecx
sub edx, dword [esi]
lea eax, [edx + 5]
cmp eax, edi
jae 0x4af31a
movzx eax, byte [ecx + 5]
shl eax, 0x10
or dword [esi + 0x1c], eax
lea eax, [edx + 6]
cmp eax, edi
jae 0x4af32b
movzx eax, byte [ecx + 6]
shl eax, 8
or dword [esi + 0x1c], eax
lea eax, [edx + 7]
cmp eax, edi
jae 0x4af339
movzx eax, byte [ecx + 7]
or dword [esi + 0x1c], eax
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x4aff80
mov edi, dword [esi + 0x1c]
mov edx, 1
shl edx, cl
mov eax, edi
mov ecx, 0x20
sub ecx, dword [ebp - 0xc]
shr eax, cl
mov ecx, dword [ebp - 0xc]
jmp 0x4aff72
mov eax, edx
and eax, 0xe0000000
cmp eax, 0xc0000000
jne 0x4af44b
add dword [esi + 0x18], 6
mov ebx, edx
add dword [esi + 8], 6
mov ecx, dword [esi + 0x18]
shr ebx, 0x1a
and ebx, 7
shl edx, 6
add ebx, 8
mov dword [esi + 0x20], edx
mov dword [esi + 0x14], 0x3f
cmp ecx, 0x20
jae 0x4af3b4
mov ecx, dword [esi + 0x1c]
mov eax, ecx
shr eax, 0x1a
or eax, edx
shl ecx, 6
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
jmp 0x4aff83
mov eax, dword [esi + 0x1c]
add dword [esi + 4], 4
mov edi, dword [esi + 0x10]
shr eax, 0x1a
or eax, edx
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], eax
lea eax, [ecx - 0x20]
mov ecx, dword [esi + 4]
mov dword [ebp - 0xc], eax
mov dword [esi + 0x18], eax
mov eax, ecx
sub eax, dword [esi]
add eax, 4
cmp eax, edi
jae 0x4af3ee
movzx eax, byte [ecx + 4]
shl eax, 0x18
mov dword [esi + 0x1c], eax
mov edx, ecx
sub edx, dword [esi]
lea eax, [edx + 5]
cmp eax, edi
jae 0x4af403
movzx eax, byte [ecx + 5]
shl eax, 0x10
or dword [esi + 0x1c], eax
lea eax, [edx + 6]
cmp eax, edi
jae 0x4af414
movzx eax, byte [ecx + 6]
shl eax, 8
or dword [esi + 0x1c], eax
lea eax, [edx + 7]
cmp eax, edi
jae 0x4af422
movzx eax, byte [ecx + 7]
or dword [esi + 0x1c], eax
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x4aff80
mov edi, dword [esi + 0x1c]
mov edx, 1
shl edx, cl
mov eax, edi
mov ecx, 0x20
sub ecx, dword [ebp - 0xc]
shr eax, cl
mov ecx, dword [ebp - 0xc]
jmp 0x4aff72
mov eax, edx
and eax, 0xf0000000
cmp eax, 0xe0000000
jne 0x4af532
add dword [esi + 0x18], 8
mov ebx, edx
add dword [esi + 8], 8
mov ecx, dword [esi + 0x18]
shr ebx, 0x18
and ebx, 0xf
shl edx, 8
add ebx, 0x10
mov dword [esi + 0x20], edx
mov dword [esi + 0x14], 0xff
cmp ecx, 0x20
jae 0x4af49d
mov ecx, dword [esi + 0x1c]
mov eax, ecx
shr eax, 0x18
or eax, edx
shl ecx, 8
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
jmp 0x4aff83
movzx eax, byte [esi + 0x1f]
add dword [esi + 4], 4
or eax, edx
mov edi, dword [esi + 0x10]
mov dword [esi + 0x20], eax
lea eax, [ecx - 0x20]
mov ecx, dword [esi + 4]
mov dword [ebp - 0xc], eax
mov dword [esi + 0x18], eax
mov eax, ecx
sub eax, dword [esi]
add eax, 4
mov dword [esi + 0x1c], 0
cmp eax, edi
jae 0x4af4d5
movzx eax, byte [ecx + 4]
shl eax, 0x18
mov dword [esi + 0x1c], eax
mov edx, ecx
sub edx, dword [esi]
lea eax, [edx + 5]
cmp eax, edi
jae 0x4af4ea
movzx eax, byte [ecx + 5]
shl eax, 0x10
or dword [esi + 0x1c], eax
lea eax, [edx + 6]
cmp eax, edi
jae 0x4af4fb
movzx eax, byte [ecx + 6]
shl eax, 8
or dword [esi + 0x1c], eax
lea eax, [edx + 7]
cmp eax, edi
jae 0x4af509
movzx eax, byte [ecx + 7]
or dword [esi + 0x1c], eax
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x4aff80
mov edi, dword [esi + 0x1c]
mov edx, 1
shl edx, cl
mov eax, edi
mov ecx, 0x20
sub ecx, dword [ebp - 0xc]
shr eax, cl
mov ecx, dword [ebp - 0xc]
jmp 0x4aff72
mov eax, edx
and eax, 0xf8000000
cmp eax, 0xf0000000
jne 0x4af61b
add dword [esi + 0x18], 0xa
mov ebx, edx
add dword [esi + 8], 0xa
mov ecx, dword [esi + 0x18]
shr ebx, 0x16
and ebx, 0x1f
shl edx, 0xa
add ebx, 0x20
mov dword [esi + 0x20], edx
mov dword [esi + 0x14], 0x3ff
cmp ecx, 0x20
jae 0x4af584
mov ecx, dword [esi + 0x1c]
mov eax, ecx
shr eax, 0x16
or eax, edx
shl ecx, 0xa
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
jmp 0x4aff83
mov eax, dword [esi + 0x1c]
add dword [esi + 4], 4
mov edi, dword [esi + 0x10]
shr eax, 0x16
or eax, edx
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], eax
lea eax, [ecx - 0x20]
mov ecx, dword [esi + 4]
mov dword [ebp - 0xc], eax
mov dword [esi + 0x18], eax
mov eax, ecx
sub eax, dword [esi]
add eax, 4
cmp eax, edi
jae 0x4af5be
movzx eax, byte [ecx + 4]
shl eax, 0x18
mov dword [esi + 0x1c], eax
mov edx, ecx
sub edx, dword [esi]
lea eax, [edx + 5]
cmp eax, edi
jae 0x4af5d3
movzx eax, byte [ecx + 5]
shl eax, 0x10
or dword [esi + 0x1c], eax
lea eax, [edx + 6]
cmp eax, edi
jae 0x4af5e4
movzx eax, byte [ecx + 6]
shl eax, 8
or dword [esi + 0x1c], eax
lea eax, [edx + 7]
cmp eax, edi
jae 0x4af5f2
movzx eax, byte [ecx + 7]
or dword [esi + 0x1c], eax
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x4aff80
mov edi, dword [esi + 0x1c]
mov edx, 1
shl edx, cl
mov eax, edi
mov ecx, 0x20
sub ecx, dword [ebp - 0xc]
shr eax, cl
mov ecx, dword [ebp - 0xc]
jmp 0x4aff72
mov eax, edx
and eax, 0xfc000000
cmp eax, 0xf8000000
jne 0x4af704
add dword [esi + 0x18], 0xc
mov ebx, edx
add dword [esi + 8], 0xc
mov ecx, dword [esi + 0x18]
shr ebx, 0x14
and ebx, 0x3f
shl edx, 0xc
add ebx, 0x40
mov dword [esi + 0x20], edx
mov dword [esi + 0x14], 0xfff
cmp ecx, 0x20
jae 0x4af66d
mov ecx, dword [esi + 0x1c]
mov eax, ecx
shr eax, 0x14
or eax, edx
shl ecx, 0xc
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
jmp 0x4aff83
mov eax, dword [esi + 0x1c]
add dword [esi + 4], 4
mov edi, dword [esi + 0x10]
shr eax, 0x14
or eax, edx
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], eax
lea eax, [ecx - 0x20]
mov ecx, dword [esi + 4]
mov dword [ebp - 0xc], eax
mov dword [esi + 0x18], eax
mov eax, ecx
sub eax, dword [esi]
add eax, 4
cmp eax, edi
jae 0x4af6a7
movzx eax, byte [ecx + 4]
shl eax, 0x18
mov dword [esi + 0x1c], eax
mov edx, ecx
sub edx, dword [esi]
lea eax, [edx + 5]
cmp eax, edi
jae 0x4af6bc
movzx eax, byte [ecx + 5]
shl eax, 0x10
or dword [esi + 0x1c], eax
lea eax, [edx + 6]
cmp eax, edi
jae 0x4af6cd
movzx eax, byte [ecx + 6]
shl eax, 8
or dword [esi + 0x1c], eax
lea eax, [edx + 7]
cmp eax, edi
jae 0x4af6db
movzx eax, byte [ecx + 7]
or dword [esi + 0x1c], eax
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x4aff80
mov edi, dword [esi + 0x1c]
mov edx, 1
shl edx, cl
mov eax, edi
mov ecx, 0x20
sub ecx, dword [ebp - 0xc]
shr eax, cl
mov ecx, dword [ebp - 0xc]
jmp 0x4aff72
mov eax, edx
and eax, 0xfe000000
cmp eax, 0xfc000000
jne 0x4af7ed
add dword [esi + 0x18], 0xe
mov ebx, edx
add dword [esi + 8], 0xe
mov ecx, dword [esi + 0x18]
shr ebx, 0x12
and ebx, 0x7f
shl edx, 0xe
sub ebx, 0xffffff80
mov dword [esi + 0x20], edx
mov dword [esi + 0x14], 0x3fff
cmp ecx, 0x20
jae 0x4af756
mov ecx, dword [esi + 0x1c]
mov eax, ecx
shr eax, 0x12
or eax, edx
shl ecx, 0xe
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
jmp 0x4aff83
mov eax, dword [esi + 0x1c]
add dword [esi + 4], 4
mov edi, dword [esi + 0x10]
shr eax, 0x12
or eax, edx
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], eax
lea eax, [ecx - 0x20]
mov ecx, dword [esi + 4]
mov dword [ebp - 0xc], eax
mov dword [esi + 0x18], eax
mov eax, ecx
sub eax, dword [esi]
add eax, 4
cmp eax, edi
jae 0x4af790
movzx eax, byte [ecx + 4]
shl eax, 0x18
mov dword [esi + 0x1c], eax
mov edx, ecx
sub edx, dword [esi]
lea eax, [edx + 5]
cmp eax, edi
jae 0x4af7a5
movzx eax, byte [ecx + 5]
shl eax, 0x10
or dword [esi + 0x1c], eax
lea eax, [edx + 6]
cmp eax, edi
jae 0x4af7b6
movzx eax, byte [ecx + 6]
shl eax, 8
or dword [esi + 0x1c], eax
lea eax, [edx + 7]
cmp eax, edi
jae 0x4af7c4
movzx eax, byte [ecx + 7]
or dword [esi + 0x1c], eax
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x4aff80
mov edi, dword [esi + 0x1c]
mov edx, 1
shl edx, cl
mov eax, edi
mov ecx, 0x20
sub ecx, dword [ebp - 0xc]
shr eax, cl
mov ecx, dword [ebp - 0xc]
jmp 0x4aff72
mov eax, edx
and eax, 0xff000000
cmp eax, 0xfe000000
jne 0x4af8da
add dword [esi + 0x18], 0x10
mov ebx, edx
add dword [esi + 8], 0x10
mov ecx, dword [esi + 0x18]
shr ebx, 0x10
and ebx, 0xff
shl edx, 0x10
add ebx, 0x100
mov dword [esi + 0x20], edx
mov dword [esi + 0x14], 0xffff
cmp ecx, 0x20
jae 0x4af845
mov ecx, dword [esi + 0x1c]
mov eax, ecx
shr eax, 0x10
or eax, edx
shl ecx, 0x10
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
jmp 0x4aff83
movzx eax, word [esi + 0x1e]
add dword [esi + 4], 4
or eax, edx
mov edi, dword [esi + 0x10]
mov dword [esi + 0x20], eax
lea eax, [ecx - 0x20]
mov ecx, dword [esi + 4]
mov dword [ebp - 0xc], eax
mov dword [esi + 0x18], eax
mov eax, ecx
sub eax, dword [esi]
add eax, 4
mov dword [esi + 0x1c], 0
cmp eax, edi
jae 0x4af87d
movzx eax, byte [ecx + 4]
shl eax, 0x18
mov dword [esi + 0x1c], eax
mov edx, ecx
sub edx, dword [esi]
lea eax, [edx + 5]
cmp eax, edi
jae 0x4af892
movzx eax, byte [ecx + 5]
shl eax, 0x10
or dword [esi + 0x1c], eax
lea eax, [edx + 6]
cmp eax, edi
jae 0x4af8a3
movzx eax, byte [ecx + 6]
shl eax, 8
or dword [esi + 0x1c], eax
lea eax, [edx + 7]
cmp eax, edi
jae 0x4af8b1
movzx eax, byte [ecx + 7]
or dword [esi + 0x1c], eax
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x4aff80
mov edi, dword [esi + 0x1c]
mov edx, 1
shl edx, cl
mov eax, edi
mov ecx, 0x20
sub ecx, dword [ebp - 0xc]
shr eax, cl
mov ecx, dword [ebp - 0xc]
jmp 0x4aff72
mov eax, edx
and eax, 0xff800000
cmp eax, 0xff000000
jne 0x4af9c9
add dword [esi + 0x18], 0x12
mov ebx, edx
add dword [esi + 8], 0x12
mov ecx, dword [esi + 0x18]
shr ebx, 0xe
and ebx, 0x1ff
shl edx, 0x12
add ebx, 0x200
mov dword [esi + 0x20], edx
mov dword [esi + 0x14], 0x3ffff
cmp ecx, 0x20
jae 0x4af932
mov ecx, dword [esi + 0x1c]
mov eax, ecx
shr eax, 0xe
or eax, edx
shl ecx, 0x12
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
jmp 0x4aff83
mov eax, dword [esi + 0x1c]
add dword [esi + 4], 4
mov edi, dword [esi + 0x10]
shr eax, 0xe
or eax, edx
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], eax
lea eax, [ecx - 0x20]
mov ecx, dword [esi + 4]
mov dword [ebp - 0xc], eax
mov dword [esi + 0x18], eax
mov eax, ecx
sub eax, dword [esi]
add eax, 4
cmp eax, edi
jae 0x4af96c
movzx eax, byte [ecx + 4]
shl eax, 0x18
mov dword [esi + 0x1c], eax
mov edx, ecx
sub edx, dword [esi]
lea eax, [edx + 5]
cmp eax, edi
jae 0x4af981
movzx eax, byte [ecx + 5]
shl eax, 0x10
or dword [esi + 0x1c], eax
lea eax, [edx + 6]
cmp eax, edi
jae 0x4af992
movzx eax, byte [ecx + 6]
shl eax, 8
or dword [esi + 0x1c], eax
lea eax, [edx + 7]
cmp eax, edi
jae 0x4af9a0
movzx eax, byte [ecx + 7]
or dword [esi + 0x1c], eax
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x4aff80
mov edi, dword [esi + 0x1c]
mov edx, 1
shl edx, cl
mov eax, edi
mov ecx, 0x20
sub ecx, dword [ebp - 0xc]
shr eax, cl
mov ecx, dword [ebp - 0xc]
jmp 0x4aff72
mov eax, edx
and eax, 0xffc00000
cmp eax, 0xff800000
jne 0x4afab8
add dword [esi + 0x18], 0x14
mov ebx, edx
add dword [esi + 8], 0x14
mov ecx, dword [esi + 0x18]
shr ebx, 0xc
and ebx, 0x3ff
shl edx, 0x14
add ebx, 0x400
mov dword [esi + 0x20], edx
mov dword [esi + 0x14], 0xfffff
cmp ecx, 0x20
jae 0x4afa21
mov ecx, dword [esi + 0x1c]
mov eax, ecx
shr eax, 0xc
or eax, edx
shl ecx, 0x14
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
jmp 0x4aff83
mov eax, dword [esi + 0x1c]
add dword [esi + 4], 4
mov edi, dword [esi + 0x10]
shr eax, 0xc
or eax, edx
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], eax
lea eax, [ecx - 0x20]
mov ecx, dword [esi + 4]
mov dword [ebp - 0xc], eax
mov dword [esi + 0x18], eax
mov eax, ecx
sub eax, dword [esi]
add eax, 4
cmp eax, edi
jae 0x4afa5b
movzx eax, byte [ecx + 4]
shl eax, 0x18
mov dword [esi + 0x1c], eax
mov edx, ecx
sub edx, dword [esi]
lea eax, [edx + 5]
cmp eax, edi
jae 0x4afa70
movzx eax, byte [ecx + 5]
shl eax, 0x10
or dword [esi + 0x1c], eax
lea eax, [edx + 6]
cmp eax, edi
jae 0x4afa81
movzx eax, byte [ecx + 6]
shl eax, 8
or dword [esi + 0x1c], eax
lea eax, [edx + 7]
cmp eax, edi
jae 0x4afa8f
movzx eax, byte [ecx + 7]
or dword [esi + 0x1c], eax
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x4aff80
mov edi, dword [esi + 0x1c]
mov edx, 1
shl edx, cl
mov eax, edi
mov ecx, 0x20
sub ecx, dword [ebp - 0xc]
shr eax, cl
mov ecx, dword [ebp - 0xc]
jmp 0x4aff72
mov eax, edx
and eax, 0xffe00000
cmp eax, 0xffc00000
jne 0x4afba7
add dword [esi + 0x18], 0x16
mov ebx, edx
add dword [esi + 8], 0x16
mov ecx, dword [esi + 0x18]
shr ebx, 0xa
and ebx, 0x7ff
shl edx, 0x16
add ebx, 0x800
mov dword [esi + 0x20], edx
mov dword [esi + 0x14], 0x3fffff
cmp ecx, 0x20
jae 0x4afb10
mov ecx, dword [esi + 0x1c]
mov eax, ecx
shr eax, 0xa
or eax, edx
shl ecx, 0x16
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
jmp 0x4aff83
mov eax, dword [esi + 0x1c]
add dword [esi + 4], 4
mov edi, dword [esi + 0x10]
shr eax, 0xa
or eax, edx
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], eax
lea eax, [ecx - 0x20]
mov ecx, dword [esi + 4]
mov dword [ebp - 0xc], eax
mov dword [esi + 0x18], eax
mov eax, ecx
sub eax, dword [esi]
add eax, 4
cmp eax, edi
jae 0x4afb4a
movzx eax, byte [ecx + 4]
shl eax, 0x18
mov dword [esi + 0x1c], eax
mov edx, ecx
sub edx, dword [esi]
lea eax, [edx + 5]
cmp eax, edi
jae 0x4afb5f
movzx eax, byte [ecx + 5]
shl eax, 0x10
or dword [esi + 0x1c], eax
lea eax, [edx + 6]
cmp eax, edi
jae 0x4afb70
movzx eax, byte [ecx + 6]
shl eax, 8
or dword [esi + 0x1c], eax
lea eax, [edx + 7]
cmp eax, edi
jae 0x4afb7e
movzx eax, byte [ecx + 7]
or dword [esi + 0x1c], eax
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x4aff80
mov edi, dword [esi + 0x1c]
mov edx, 1
shl edx, cl
mov eax, edi
mov ecx, 0x20
sub ecx, dword [ebp - 0xc]
shr eax, cl
mov ecx, dword [ebp - 0xc]
jmp 0x4aff72
mov eax, edx
and eax, 0xfff00000
cmp eax, 0xffe00000
jne 0x4afc96
add dword [esi + 0x18], 0x18
mov ebx, edx
add dword [esi + 8], 0x18
mov ecx, dword [esi + 0x18]
shr ebx, 8
and ebx, 0xfff
shl edx, 0x18
add ebx, 0x1000
mov dword [esi + 0x20], edx
mov dword [esi + 0x14], 0xffffff
cmp ecx, 0x20
jae 0x4afbff
mov ecx, dword [esi + 0x1c]
mov eax, ecx
shr eax, 8
or eax, edx
shl ecx, 0x18
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
jmp 0x4aff83
mov eax, dword [esi + 0x1c]
add dword [esi + 4], 4
mov edi, dword [esi + 0x10]
shr eax, 8
or eax, edx
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], eax
lea eax, [ecx - 0x20]
mov ecx, dword [esi + 4]
mov dword [ebp - 0xc], eax
mov dword [esi + 0x18], eax
mov eax, ecx
sub eax, dword [esi]
add eax, 4
cmp eax, edi
jae 0x4afc39
movzx eax, byte [ecx + 4]
shl eax, 0x18
mov dword [esi + 0x1c], eax
mov edx, ecx
sub edx, dword [esi]
lea eax, [edx + 5]
cmp eax, edi
jae 0x4afc4e
movzx eax, byte [ecx + 5]
shl eax, 0x10
or dword [esi + 0x1c], eax
lea eax, [edx + 6]
cmp eax, edi
jae 0x4afc5f
movzx eax, byte [ecx + 6]
shl eax, 8
or dword [esi + 0x1c], eax
lea eax, [edx + 7]
cmp eax, edi
jae 0x4afc6d
movzx eax, byte [ecx + 7]
or dword [esi + 0x1c], eax
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x4aff80
mov edi, dword [esi + 0x1c]
mov edx, 1
shl edx, cl
mov eax, edi
mov ecx, 0x20
sub ecx, dword [ebp - 0xc]
shr eax, cl
mov ecx, dword [ebp - 0xc]
jmp 0x4aff72
mov eax, edx
and eax, 0xfff80000
cmp eax, 0xfff00000
jne 0x4afd8d
test ebx, ebx
je 0x4afd8d
add dword [esi + 0x18], 0x1a
mov ebx, edx
add dword [esi + 8], 0x1a
mov ecx, dword [esi + 0x18]
shr ebx, 6
and ebx, 0x1fff
shl edx, 0x1a
add ebx, 0x2000
mov dword [esi + 0x20], edx
mov dword [esi + 0x14], 0x3ffffff
cmp ecx, 0x20
jae 0x4afcf6
mov ecx, dword [esi + 0x1c]
mov eax, ecx
shr eax, 6
or eax, edx
shl ecx, 0x1a
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
jmp 0x4aff83
mov eax, dword [esi + 0x1c]
add dword [esi + 4], 4
mov edi, dword [esi + 0x10]
shr eax, 6
or eax, edx
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], eax
lea eax, [ecx - 0x20]
mov ecx, dword [esi + 4]
mov dword [ebp - 0xc], eax
mov dword [esi + 0x18], eax
mov eax, ecx
sub eax, dword [esi]
add eax, 4
cmp eax, edi
jae 0x4afd30
movzx eax, byte [ecx + 4]
shl eax, 0x18
mov dword [esi + 0x1c], eax
mov edx, ecx
sub edx, dword [esi]
lea eax, [edx + 5]
cmp eax, edi
jae 0x4afd45
movzx eax, byte [ecx + 5]
shl eax, 0x10
or dword [esi + 0x1c], eax
lea eax, [edx + 6]
cmp eax, edi
jae 0x4afd56
movzx eax, byte [ecx + 6]
shl eax, 8
or dword [esi + 0x1c], eax
lea eax, [edx + 7]
cmp eax, edi
jae 0x4afd64
movzx eax, byte [ecx + 7]
or dword [esi + 0x1c], eax
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x4aff80
mov edi, dword [esi + 0x1c]
mov edx, 1
shl edx, cl
mov eax, edi
mov ecx, 0x20
sub ecx, dword [ebp - 0xc]
shr eax, cl
mov ecx, dword [ebp - 0xc]
jmp 0x4aff72
mov eax, edx
and eax, 0xfffc0000
cmp eax, 0xfff80000
jne 0x4afe84
test ebx, ebx
je 0x4afe84
add dword [esi + 0x18], 0x1c
mov ebx, edx
add dword [esi + 8], 0x1c
mov ecx, dword [esi + 0x18]
shr ebx, 4
and ebx, 0x3fff
shl edx, 0x1c
add ebx, 0x4000
mov dword [esi + 0x20], edx
mov dword [esi + 0x14], 0xfffffff
cmp ecx, 0x20
jae 0x4afded
mov ecx, dword [esi + 0x1c]
mov eax, ecx
shr eax, 4
or eax, edx
shl ecx, 0x1c
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
jmp 0x4aff83
mov eax, dword [esi + 0x1c]
add dword [esi + 4], 4
mov edi, dword [esi + 0x10]
shr eax, 4
or eax, edx
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], eax
lea eax, [ecx - 0x20]
mov ecx, dword [esi + 4]
mov dword [ebp - 0xc], eax
mov dword [esi + 0x18], eax
mov eax, ecx
sub eax, dword [esi]
add eax, 4
cmp eax, edi
jae 0x4afe27
movzx eax, byte [ecx + 4]
shl eax, 0x18
mov dword [esi + 0x1c], eax
mov edx, ecx
sub edx, dword [esi]
lea eax, [edx + 5]
cmp eax, edi
jae 0x4afe3c
movzx eax, byte [ecx + 5]
shl eax, 0x10
or dword [esi + 0x1c], eax
lea eax, [edx + 6]
cmp eax, edi
jae 0x4afe4d
movzx eax, byte [ecx + 6]
shl eax, 8
or dword [esi + 0x1c], eax
lea eax, [edx + 7]
cmp eax, edi
jae 0x4afe5b
movzx eax, byte [ecx + 7]
or dword [esi + 0x1c], eax
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x4aff80
mov edi, dword [esi + 0x1c]
mov edx, 1
shl edx, cl
mov eax, edi
mov ecx, 0x20
sub ecx, dword [ebp - 0xc]
shr eax, cl
mov ecx, dword [ebp - 0xc]
jmp 0x4aff72
mov eax, edx
and eax, 0xfffe0000
cmp eax, 0xfffc0000
jne 0x4b0025
test ebx, ebx
je 0x4b0025
add dword [esi + 0x18], 0x1e
mov ebx, edx
add dword [esi + 8], 0x1e
mov ecx, dword [esi + 0x18]
shr ebx, 2
and ebx, 0x7fff
shl edx, 0x1e
add ebx, 0x8000
mov dword [esi + 0x20], edx
mov dword [esi + 0x14], 0x3fffffff
cmp ecx, 0x20
jae 0x4afee4
mov ecx, dword [esi + 0x1c]
mov eax, ecx
shr eax, 2
or eax, edx
shl ecx, 0x1e
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
jmp 0x4aff83
mov eax, dword [esi + 0x1c]
add dword [esi + 4], 4
mov edi, dword [esi + 0x10]
shr eax, 2
or eax, edx
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], eax
lea eax, [ecx - 0x20]
mov ecx, dword [esi + 4]
mov dword [ebp - 0xc], eax
mov dword [esi + 0x18], eax
mov eax, ecx
sub eax, dword [esi]
add eax, 4
cmp eax, edi
jae 0x4aff1e
movzx eax, byte [ecx + 4]
shl eax, 0x18
mov dword [esi + 0x1c], eax
mov edx, ecx
sub edx, dword [esi]
lea eax, [edx + 5]
cmp eax, edi
jae 0x4aff33
movzx eax, byte [ecx + 5]
shl eax, 0x10
or dword [esi + 0x1c], eax
lea eax, [edx + 6]
cmp eax, edi
jae 0x4aff44
movzx eax, byte [ecx + 6]
shl eax, 8
or dword [esi + 0x1c], eax
lea eax, [edx + 7]
cmp eax, edi
jae 0x4aff52
movzx eax, byte [ecx + 7]
or dword [esi + 0x1c], eax
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x4aff80
mov edi, dword [esi + 0x1c]
mov edx, 1
shl edx, cl
mov eax, edi
mov ecx, 0x20
sub ecx, dword [ebp - 0xc]
shr eax, cl
mov ecx, dword [ebp - 0xc]
dec edx
and eax, edx
mov dword [esi + 0x14], edx
or dword [esi + 0x20], eax
shl edi, cl
mov dword [esi + 0x1c], edi
mov edi, dword [ebp + 0x1c]
lea eax, [edi - 1]
add eax, ebx
cmp eax, dword [ebp - 0x14]
ja 0x4affcf
mov edx, dword [ebp - 4]
mov ecx, edi
sub ecx, dword [ebp - 8]
mov eax, 0x1fff
sub ecx, dword [ebp - 0x10]
test edx, edx
mov edx, 0xffff
cmovne eax, edx
and ecx, eax
add ecx, dword [ebp - 0x10]
lea esp, [esp]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edi], al
inc edi
dec ebx
jne 0x4affb0
mov dword [ebp + 0x1c], edi
jmp 0x4aeb3d
pop edi
pop esi
mov eax, 0xfffffc17
pop ebx
mov esp, ebp
pop ebp
ret
push 4
push str.com.freerdp.codec.mppc
call fcn.0042f4e0
add esp, 4
push eax
call fcn.0042f7e0
add esp, 8
test eax, eax
je 0x4b0019
push str.history_buffer_overflow
push 0x5d081c
push str.C:BuildFreeRDP_stable_1.1BuildFreeRDPlibfreerdpcodecmppc.c
push 0x188
push 4
push 0
push str.com.freerdp.codec.mppc
call fcn.0042f4e0
add esp, 4
push eax
call fcn.0042fce0
add esp, 0x1c
pop edi
pop esi
mov eax, 0xfffffc13
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffc15
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffc16
pop ebx
mov esp, ebp
pop ebp
ret
push 4
push str.com.freerdp.codec.mppc
call fcn.0042f4e0
add esp, 4
push eax
call fcn.0042f7e0
add esp, 8
test eax, eax
je 0x4b0087
push str.history_buffer_index_out_of_range
push 0x5d081c
push str.C:BuildFreeRDP_stable_1.1BuildFreeRDPlibfreerdpcodecmppc.c
push 0x80
push 4
push 0
push str.com.freerdp.codec.mppc
call fcn.0042f4e0
add esp, 4
push eax
call fcn.0042fce0
add esp, 0x1c
pop edi
pop esi
mov eax, 0xfffffc14
pop ebx
mov esp, ebp
pop ebp
ret