Function at 0x6d53113d
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x124]
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [esi + 0x2c]
mov dword [ebp - 0xc], eax
mov al, byte [edi + eax]
mov byte [ebp - 2], al
and al, 0xe0
cmp al, 0x40
mov byte [ebp - 4], 1
jne case.default.0x6d5314e0
mov eax, dword [ebp - 0xc]
mov cl, byte [ebp - 2]
inc edi
mov al, byte [edi + eax]
mov dl, al
inc edi
mov dword [ebp - 8], edi
and cl, 7
shl cl, 1
shr dl, 7
and eax, 0x7f
mov edi, eax
lea eax, [ebp - 8]
push eax
push dword [ebp - 0xc]
or cl, dl
mov byte [ebp + 0xb], cl
call fcn.6d5308a9
and dword [ebp - 0x10], 0
mov ecx, dword [ebp - 0x10]
mov eax, edi
shl eax, 2
mov dword [ebp + 0xc], eax
test byte [ebp + 0xb], 1
je 0x6d5311df
cmp byte [esi + 4], 0
je 0x6d5311c2
movzx eax, word [esi + 6]
xor edx, edx
inc edx
shl edx, cl
test edx, eax
je 0x6d5311db
mov edx, dword [ebp + 0xc]
and dword [ebx + ecx*8 + 4], 0
lea eax, [ebx + ecx*8]
and edx, 0xfffffffc
mov dword [eax], edx
xor eax, eax
inc eax
shl eax, cl
or word [esi + 6], ax
add dword [ebp + 0xc], 4
shr byte [ebp + 0xb], 1
inc ecx
cmp ecx, 3
jbe 0x6d5311a9
mov dword [ebp - 0x10], ecx
mov edi, dword [ebp - 8]
cmp edi, dword [esi + 0x30]
jbe 0x6d531244
mov eax, dword [esi + 8]
mov dl, byte [esi + 5]
mov dword [ebp - 8], eax
xor eax, eax
mov ax, word [esi + 6]
mov byte [ebp + 0xb], dl
movzx edx, dl
mov ecx, eax
shr ecx, 7
mov byte [ebp + 0xf], cl
movzx ecx, cl
or edx, ecx
or edx, dword [ebp - 8]
je 0x6d5317e9
cmp byte [ebp - 4], 0
je 0x6d53167b
cmp byte [esi + 4], 0
jne 0x6d531667
and dword [esi + 0x14], 0xfffffffc
mov byte [ebp - 1], 0x13
mov edi, 0xfffff
jmp 0x6d5315f1
mov ecx, dword [ebp - 0xc]
mov dl, byte [edi + ecx]
mov byte [ebp + 0xb], dl
and byte [ebp + 0xb], 0xe0
inc edi
cmp byte [ebp + 0xb], 0x80
mov byte [ebp - 2], dl
mov dword [ebp - 8], edi
jne 0x6d5312a2
and dl, 0x1f
movzx ax, dl
mov dword [ebp + 8], 7
shl eax, 7
or word [esi + 6], ax
test dl, 1
je 0x6d531292
mov eax, dword [ebp + 8]
lea eax, [ebx + eax*8]
mov ecx, dword [eax]
and ecx, 0xfffffffd
or ecx, 1
mov dword [eax], ecx
mov eax, dword [esi + 0x20]
mov ecx, dword [ebp + 8]
mov dword [ebx + ecx*8 + 4], eax
shr dl, 1
inc dword [ebp + 8]
cmp dword [ebp + 8], 0xc
jb 0x6d531273
jmp case.default.0x6d5314e0
mov byte [ebp + 0xf], dl
and byte [ebp + 0xf], 0xf0
cmp byte [ebp + 0xf], 0xa0
jne 0x6d531301
mov al, byte [edi + ecx]
xor ecx, ecx
mov cl, al
shr al, 7
inc edi
mov dword [ebp + 8], 7
and ecx, 0x7f
mov dword [ebp + 0xc], ecx
mov cl, dl
and cl, 0xf
shl cl, 1
or cl, al
movzx ax, cl
shl eax, 7
or word [esi + 6], ax
test cl, 1
je 0x6d5312f1
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
shl edx, 2
inc dword [ebp + 0xc]
lea eax, [ebx + eax*8]
mov dword [eax], edx
shr cl, 1
inc dword [ebp + 8]
cmp dword [ebp + 8], 0xc
jb 0x6d5312db
jmp case.default.0x6d5314e0
mov al, dl
and al, 0xf8
cmp al, 0xb0
jne 0x6d531376
mov al, byte [edi + ecx]
and dl, 7
mov cl, al
shr cl, 7
shl dl, 1
or dl, cl
movzx ecx, dl
movzx ecx, byte [ecx + 0x6d51392c]
inc edi
cmp dl, 6
mov byte [ebp + 0xb], al
mov dword [ebp - 0x10], ecx
jne 0x6d53133b
and al, 0x7f
mov byte [ebx + 0x121], al
jmp case.default.0x6d5314e0
cmp byte [esi + 4], 0
je 0x6d53135a
movzx eax, word [esi + 6]
xor edx, edx
inc edx
shl edx, cl
test edx, eax
je case.default.0x6d5314e0
mov ecx, dword [ebp - 0x10]
xor eax, eax
mov al, byte [ebp + 0xb]
and dword [ebx + ecx*8 + 4], 0
and eax, 0x7f
shl eax, 2
mov dword [ebx + ecx*8], eax
xor eax, eax
inc eax
shl eax, cl
or word [esi + 6], ax
jmp case.default.0x6d5314e0
cmp dl, 0xb8
jne 0x6d531392
mov eax, dword [esi + 0x20]
and byte [ebp - 4], 0
add eax, 3
shr eax, 2
mov dword [ebp - 0x18], edi
add edi, eax
jmp case.default.0x6d5314e0
cmp dl, 0xb9
jne 0x6d5313cc
xor eax, eax
mov al, byte [edi + ecx]
mov dl, al
shr dl, 4
mov byte [ebp + 0xb], dl
movzx edx, byte [edi + ecx + 1]
movzx ecx, byte [edi + ecx + 2]
and eax, 0xf
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
mov cl, byte [ebp + 0xb]
or byte [esi + 5], cl
add edi, 3
or dword [esi + 8], eax
jmp case.default.0x6d5314e0
cmp byte [ebp + 0xb], 0xc0
jne 0x6d5313ed
test dl, 0x10
je 0x6d5313e2
and dl, 0xf
or byte [esi + 5], dl
jmp case.default.0x6d5314e0
and edx, 0xf
or dword [esi + 8], edx
jmp case.default.0x6d5314e0
cmp byte [ebp + 0xf], 0xe0
jne 0x6d5314bd
and dl, 0xf
movzx eax, dl
cmp eax, 0xf
ja case.default.0x6d5314e0
movzx ecx, byte [eax + 0x6d531804]
jmp dword [ecx*4 + 0x6d5317f0]
lea eax, [ebp - 8]
push eax
push dword [ebp - 0xc]
mov dword [ebp - 0x10], 1
call fcn.6d5308a9
cmp byte [esi + 4], 0
je 0x6d531437
test byte [esi + 6], 2
je 0x6d5311eb
shl eax, 2
or eax, 2
mov dword [ebx + 8], eax
test byte [esi + 6], 2
jne 0x6d5311eb
mov eax, dword [esi + 0x20]
mov dword [ebx + 0xc], eax
or byte [esi + 6], 2
jmp 0x6d5311eb
movzx edi, byte [eax + 0x6d513934]
lea eax, [ebp - 8]
push eax
push dword [ebp - 0xc]
mov dword [ebp - 0x10], edi
call fcn.6d5308a9
cmp byte [esi + 4], 0
je 0x6d531584
xor ecx, ecx
inc ecx
mov dword [ebp + 8], ecx
mov ecx, edi
mov edi, dword [ebp + 8]
jmp 0x6d531576
lea eax, [ebp - 8]
push eax
push dword [ebp - 0xc]
call fcn.6d5308a9
lea eax, [ebp - 8]
push eax
push dword [ebp - 0xc]
call fcn.6d5308a9
jmp 0x6d5311eb
lea eax, [ebp - 8]
push eax
push dword [ebp - 0xc]
call fcn.6d5308a9
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], eax
jmp 0x6d5311eb
cmp dl, 0xf0
jne 0x6d5315a3
mov cl, byte [edi + ecx]
movzx eax, cl
inc edi
cmp eax, 0x12
mov dword [ebp - 8], edi
ja case.default.0x6d5314e0
movzx ecx, byte [eax + 0x6d531824]
jmp dword [ecx*4 + 0x6d531814]
push 0x6d5139a4
jmp 0x6d5315af
movzx edi, byte [eax + 0x6d513944]
lea eax, [ebp - 8]
push eax
push dword [ebp - 0xc]
mov dword [ebp - 0x10], edi
call fcn.6d5308a9
cmp byte [esi + 4], 0
mov dword [ebp + 8], eax
je 0x6d531523
movzx eax, word [esi + 6]
xor edx, edx
inc edx
mov ecx, edi
shl edx, cl
test edx, eax
je 0x6d5311eb
mov eax, dword [ebp + 8]
shl eax, 2
or eax, 2
lea edx, [ebx + edi*8]
mov dword [edx], eax
xor eax, eax
inc eax
mov ecx, edi
shl eax, cl
movzx ecx, word [esi + 6]
test ecx, eax
jne 0x6d5311eb
mov eax, dword [esi + 0x20]
mov ecx, dword [ebp - 0x10]
mov dword [edx + 4], eax
jmp 0x6d531595
movzx edi, byte [eax + 0x6d513944]
lea eax, [ebp - 8]
push eax
push dword [ebp - 0xc]
mov dword [ebp - 0x10], edi
call fcn.6d5308a9
cmp byte [esi + 4], 0
je 0x6d531584
xor ecx, ecx
inc ecx
mov dword [ebp + 8], ecx
mov ecx, edi
mov edi, dword [ebp + 8]
movzx edx, word [esi + 6]
shl edi, cl
test edi, edx
je 0x6d5311eb
mov ecx, dword [ebp - 0x10]
shl eax, 2
or eax, 1
mov dword [ebx + ecx*8], eax
and dword [ebx + ecx*8 + 4], 0
xor eax, eax
inc eax
shl eax, cl
or word [esi + 6], ax
jmp 0x6d5311eb
cmp dl, 0xf1
jne 0x6d5315ba
inc edi
inc edi
push 0x6d513984
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp case.default.0x6d5314e0
cmp dl, 0xff
jne case.default.0x6d5314e0
inc edi
inc edi
jmp case.default.0x6d5314e0
test byte [ebp - 6], 8
je 0x6d5315eb
movzx eax, byte [ebp - 1]
add dword [esi + 0x14], 4
mov ecx, dword [esi + 0x14]
lea eax, [ebx + eax*8 + 0x60]
mov edx, dword [eax]
and edx, 3
shl ecx, 2
or edx, ecx
mov dword [eax], edx
shl dword [ebp - 8], 1
dec byte [ebp - 1]
test dword [ebp - 8], edi
jne 0x6d5315ca
mov dl, 0xb
jmp 0x6d53162a
test byte [ebp + 0xf], 0x10
je 0x6d531625
mov eax, dword [ebp - 0x10]
mov eax, dword [ebx + eax*8]
and al, 3
cmp al, 1
jne 0x6d531625
add dword [esi + 0x14], 2
mov ecx, dword [esi + 0x14]
movzx eax, dl
lea eax, [ebx + eax*8]
mov edi, dword [eax]
and edi, 3
shl ecx, 2
or edi, ecx
mov dword [eax], edi
shl byte [ebp + 0xf], 1
dec dl
test byte [ebp + 0xf], 0x1f
jne 0x6d5315fa
mov dl, 3
jmp 0x6d53165c
test byte [ebp + 0xb], 8
je 0x6d531657
add dword [esi + 0x14], 2
mov ecx, dword [esi + 0x14]
movzx eax, dl
lea eax, [ebx + eax*8 + 0x100]
mov edi, dword [eax]
and edi, 3
shl ecx, 2
or edi, ecx
mov dword [eax], edi
shl byte [ebp + 0xb], 1
dec dl
test byte [ebp + 0xb], 0xf
jne 0x6d531634
jmp 0x6d5317e9
and byte [esi + 5], 0
and dword [esi + 8], 0
and eax, 0x7f
mov word [esi + 6], ax
jmp 0x6d5317e9
cmp byte [esi + 4], 0
je 0x6d53169b
and byte [esi + 5], 0
and dword [esi + 8], 0
and eax, 0x7f
mov word [esi + 6], ax
mov eax, dword [ebx + 0x130]
sub eax, dword [esi + 0x1c]
jmp 0x6d53169e
mov eax, dword [esi + 0x20]
xor edx, edx
test eax, eax
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 3
mov byte [ebp - 3], 4
mov byte [ebp - 1], 0x13
jbe 0x6d5317e9
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
add eax, ecx
mov dword [ebp - 0x10], eax
test dl, 3
jne 0x6d5316d4
mov eax, dword [ebp - 0x10]
mov al, byte [eax]
inc dword [ebp - 0x10]
mov byte [ebp - 2], al
jmp 0x6d5316d8
shl byte [ebp - 2], 2
xor eax, eax
mov al, byte [ebp - 2]
and eax, 0xc0
sub eax, 0x40
je 0x6d531793
sub eax, 0x40
je 0x6d531757
sub eax, 0x40
jne 0x6d5317df
jmp 0x6d531707
cmp byte [ebp - 3], 0
jbe 0x6d53170d
dec byte [ebp - 3]
shl byte [ebp + 0xf], 1
test byte [ebp + 0xf], 0x10
je 0x6d5316fb
movzx ecx, byte [ebp - 3]
xor eax, eax
add ecx, 7
inc eax
shl eax, cl
or word [esi + 6], ax
lea eax, [ebx + ecx*8]
mov ecx, dword [eax]
and cl, 3
cmp cl, 1
mov dword [eax + 4], edx
jne 0x6d531740
add dword [esi + 0x14], 2
mov ecx, dword [esi + 0x14]
mov edi, dword [eax]
shl ecx, 2
and edi, 3
or ecx, edi
mov dword [eax], ecx
dec byte [ebp - 3]
shl byte [ebp + 0xf], 1
jmp 0x6d5317df
cmp byte [ebp - 4], 0
jbe 0x6d53175d
dec byte [ebp - 4]
shl byte [ebp + 0xb], 1
test byte [ebp + 0xb], 8
je 0x6d53174b
movzx edi, byte [ebp - 4]
mov ecx, edi
mov al, 1
shl al, cl
or byte [esi + 5], al
mov dword [ebx + edi*8 + 0x104], edx
add dword [esi + 0x14], 2
mov ecx, dword [esi + 0x14]
lea eax, [ebx + edi*8 + 0x100]
mov edi, dword [eax]
and edi, 3
shl ecx, 2
or edi, ecx
dec byte [ebp - 4]
shl byte [ebp + 0xb], 1
mov dword [eax], edi
jmp 0x6d5317df
mov eax, 0x80000
jmp 0x6d5317a6
cmp byte [ebp - 1], 0
jbe 0x6d5317ab
dec byte [ebp - 1]
shl dword [ebp - 8], 1
test dword [ebp - 8], eax
je 0x6d53179a
movzx ecx, byte [ebp - 1]
xor eax, eax
inc eax
shl eax, cl
or dword [esi + 8], eax
mov dword [ebx + ecx*8 + 0x64], edx
mov eax, dword [esi + 0x14]
inc eax
inc eax
and eax, 0xfffffffc
add eax, 4
mov dword [esi + 0x14], eax
lea ecx, [ebx + ecx*8 + 0x60]
mov edi, dword [ecx]
shl eax, 2
and edi, 3
or eax, edi
dec byte [ebp - 1]
shl dword [ebp - 8], 1
mov dword [ecx], eax
inc edx
cmp edx, dword [ebp - 0x14]
jb 0x6d5316c2
pop edi
pop esi
pop ebx
leave
ret 8