Function at 0x4649c0
Capabilities:
Print debug messages

Disassembly:
mov eax, dword [0x5ba930]
sub esp, 0x24
cmp eax, 0x4000
push ebx
push ebp
push esi
push edi
jne 0x464bcc
mov ecx, dword [0x5ba938]
mov eax, dword [ecx + 0x10]
test eax, eax
mov ebx, dword [0x5ba8f0]
jne 0x464ad2
mov edx, dword [ebx + 0x10]
test edx, edx
jne 0x464ad2
mov edx, dword [esp + 0x38]
mov eax, dword [edx]
mov edi, dword [0x5ba904]
mov ebp, dword [ecx + 0x28]
mov esi, eax
imul esi, dword [0x5ba934]
add esi, edi
mov edi, dword [0x5ba924]
add edi, eax
imul edi, dword [ecx + 8]
mov ecx, dword [0x5ba920]
add edi, ebp
lea ecx, [ecx + ecx*2]
add edi, ecx
cmp eax, dword [edx + 4]
mov dword [esp + 0x24], eax
jge 0x464fad
jmp 0x464a41
mov ebx, dword [0x5ba8f0]
mov ebp, dword [ebx + 8]
mov eax, esi
cdq
and edx, 0x3fff
add eax, edx
mov ecx, eax
mov eax, dword [0x5ba8fc]
mov ebx, dword [ebx + 0x28]
cdq
and edx, 0x3fff
add eax, edx
mov edx, esi
sar edx, 6
and edx, 0xff
push edx
mov edx, dword [0x5ba928]
lea edx, [edx + edx*2]
push edx
sar ecx, 0xe
mov edx, ecx
imul edx, ebp
sar eax, 0xe
lea eax, [eax + eax*2]
add edx, ebx
add edx, eax
inc ecx
imul ecx, ebp
add ecx, ebx
push edx
add ecx, eax
push ecx
push edi
call fcn.00465a00
mov eax, dword [0x5ba934]
mov ecx, dword [esp + 0x4c]
mov edx, dword [ecx + 4]
add esi, eax
mov eax, dword [0x5ba938]
mov ebp, dword [eax + 8]
mov eax, dword [esp + 0x38]
add esp, 0x14
add edi, ebp
inc eax
cmp eax, edx
mov dword [esp + 0x24], eax
jl 0x464a3b
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x24
ret 4
test eax, eax
je 0x464bb5
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x464bb5
mov edx, dword [esp + 0x38]
mov eax, dword [edx]
mov edi, dword [0x5ba904]
mov ebp, dword [ecx + 0x28]
mov esi, eax
imul esi, dword [0x5ba934]
add esi, edi
mov edi, dword [0x5ba924]
add edi, eax
imul edi, dword [ecx + 8]
mov ecx, dword [edx + 4]
add edi, ebp
add edi, dword [0x5ba920]
cmp eax, ecx
mov dword [esp + 0x24], eax
jge 0x464fad
jmp 0x464b2a
mov ebx, dword [0x5ba8f0]
mov ebp, dword [ebx + 8]
mov eax, esi
cdq
and edx, 0x3fff
add eax, edx
mov ecx, eax
mov eax, dword [0x5ba8fc]
mov ebx, dword [ebx + 0x28]
cdq
and edx, 0x3fff
add eax, edx
mov edx, esi
sar edx, 6
and edx, 0xff
push edx
mov edx, dword [0x5ba928]
push edx
sar ecx, 0xe
mov edx, ecx
imul edx, ebp
sar eax, 0xe
add edx, ebx
add edx, eax
inc ecx
imul ecx, ebp
add ecx, ebx
push edx
add ecx, eax
push ecx
push edi
call fcn.00465a00
mov eax, dword [0x5ba934]
mov ecx, dword [esp + 0x4c]
mov edx, dword [ecx + 4]
add esi, eax
mov eax, dword [0x5ba938]
mov ebp, dword [eax + 8]
mov eax, dword [esp + 0x38]
add esp, 0x14
add edi, ebp
inc eax
cmp eax, edx
mov dword [esp + 0x24], eax
jl 0x464b24
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x24
ret 4
push str.HQGrpModifyCopy_NotSupportFormat_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x24
ret 4
mov eax, dword [0x5ba928]
lea edx, [eax + eax*2 + 0x100]
push edx
call fcn.004564a0
mov dword [esp + 0x14], eax
mov eax, dword [0x5ba928]
lea eax, [eax + eax*2 + 0x100]
push eax
mov dword [esp + 0x28], 0
call fcn.004564a0
mov ebp, dword [0x5ba8f0]
mov dword [esp + 0x1c], eax
mov eax, dword [0x5ba938]
mov ecx, dword [eax + 0x10]
add esp, 8
test ecx, ecx
mov dword [esp + 0x18], 0
jne 0x464d60
mov edx, dword [ebp + 0x10]
test edx, edx
jne 0x464d60
mov edx, dword [esp + 0x38]
mov ecx, dword [edx]
mov ebx, dword [0x5ba904]
mov esi, dword [0x5ba924]
mov edi, ecx
imul edi, dword [0x5ba934]
add edi, ebx
lea ebx, [ecx + esi]
imul ebx, dword [eax + 8]
mov esi, dword [eax + 0x28]
mov eax, dword [0x5ba920]
add ebx, esi
lea eax, [eax + eax*2]
add ebx, eax
cmp ecx, dword [edx + 4]
mov dword [esp + 0x24], ecx
jge 0x464f96
jmp 0x464c74
mov ebp, dword [0x5ba8f0]
mov ecx, dword [ebp + 8]
mov eax, edi
cdq
and edx, 0x3fff
add eax, edx
mov edx, dword [ebp + 0x28]
sar eax, 0xe
mov esi, eax
lea ebp, [eax + 1]
imul esi, ecx
mov eax, dword [esp + 0x20]
imul ebp, ecx
add esi, edx
add ebp, edx
cmp eax, esi
je 0x464cd9
cmp dword [esp + 0x18], esi
jne 0x464cb7
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
jmp 0x464cd9
mov edx, dword [0x5ba930]
mov eax, dword [0x5ba8fc]
mov ecx, dword [0x5ba928]
push edx
mov edx, dword [esp + 0x14]
push eax
push ecx
push esi
push edx
call fcn.00464fc0
add esp, 0x14
cmp dword [esp + 0x18], ebp
je 0x464d01
mov eax, dword [0x5ba930]
mov ecx, dword [0x5ba8fc]
mov edx, dword [0x5ba928]
push eax
mov eax, dword [esp + 0x18]
push ecx
push edx
push ebp
push eax
call fcn.00464fc0
add esp, 0x14
mov eax, dword [0x5ba928]
mov ecx, edi
sar ecx, 6
and ecx, 0xff
push ecx
mov ecx, dword [esp + 0x18]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x14]
push edx
push eax
push ecx
push ebx
mov dword [esp + 0x34], esi
mov dword [esp + 0x2c], ebp
call fcn.00465a00
mov eax, dword [0x5ba934]
mov edx, dword [0x5ba938]
mov ebp, dword [edx + 8]
mov ecx, dword [esp + 0x4c]
mov edx, dword [ecx + 4]
add edi, eax
mov eax, dword [esp + 0x38]
add esp, 0x14
add ebx, ebp
inc eax
cmp eax, edx
mov dword [esp + 0x24], eax
jl 0x464c6e
jmp 0x464f96
test ecx, ecx
je 0x464f8b
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x464f8b
mov edi, dword [esp + 0x38]
mov edx, dword [edi]
mov ecx, dword [0x5ba904]
mov ebx, dword [eax + 0x28]
mov esi, edx
imul esi, dword [0x5ba934]
add esi, ecx
mov ecx, dword [0x5ba924]
add ecx, edx
imul ecx, dword [eax + 8]
mov eax, dword [edi + 4]
add ecx, ebx
add ecx, dword [0x5ba920]
cmp edx, eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], edx
jge 0x464f96
jmp 0x464dc4
mov ebp, dword [0x5ba8f0]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [ebp + 0x28]
mov eax, esi
cdq
and edx, 0x3fff
add eax, edx
mov edx, dword [ebp + 8]
sar eax, 0xe
mov edi, eax
lea ebp, [eax + 1]
imul edi, edx
mov eax, dword [esp + 0x20]
imul ebp, edx
add edi, ebx
add ebp, ebx
cmp eax, edi
je 0x464e94
cmp dword [esp + 0x18], edi
jne 0x464e0e
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
jmp 0x464e94
mov eax, dword [0x5ba930]
mov edx, dword [0x5ba928]
mov ebx, dword [0x5ba8fc]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
add edx, eax
cmp eax, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], edx
jae 0x464e94
mov eax, ebx
cdq
and edx, 0x3fff
add eax, edx
mov esi, eax
xor eax, eax
sar esi, 0xe
mov al, byte [esi + edi]
mov ecx, ebx
and ecx, 0x3fff
mov edx, 0x4000
sub edx, ecx
imul eax, edx
xor edx, edx
mov dl, byte [edi + esi + 1]
add ebx, dword [esp + 0x2c]
imul edx, ecx
add eax, edx
cdq
and edx, 0x3fff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0x20]
sar ecx, 0xe
mov byte [eax], cl
mov ecx, dword [esp + 0x30]
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jb 0x464e35
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x18], ebp
je 0x464f25
mov edx, dword [0x5ba930]
mov eax, dword [esp + 0x14]
mov ebx, dword [0x5ba8fc]
mov dword [esp + 0x30], edx
mov edx, dword [0x5ba928]
add edx, eax
cmp eax, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], edx
jae 0x464f25
mov eax, ebx
cdq
and edx, 0x3fff
add eax, edx
mov esi, eax
xor eax, eax
sar esi, 0xe
mov al, byte [esi + ebp]
mov ecx, ebx
and ecx, 0x3fff
mov edx, 0x4000
sub edx, ecx
imul eax, edx
xor edx, edx
mov dl, byte [esi + ebp + 1]
add ebx, dword [esp + 0x30]
imul edx, ecx
add eax, edx
cdq
and edx, 0x3fff
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0x20]
sar ecx, 0xe
mov byte [eax], cl
mov ecx, dword [esp + 0x2c]
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jb 0x464ec6
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov eax, dword [0x5ba928]
mov edx, esi
sar edx, 6
and edx, 0xff
push edx
mov edx, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x1c]
push edx
push eax
push ecx
mov dword [esp + 0x34], edi
mov dword [esp + 0x2c], ebp
call fcn.00465a00
mov ecx, dword [0x5ba938]
mov edx, dword [ecx + 8]
mov ebx, dword [esp + 0x30]
mov ebp, dword [0x5ba934]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x4c]
add ebx, edx
mov edx, dword [ecx + 4]
add esi, ebp
add esp, 0x14
inc eax
cmp eax, edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], eax
jl 0x464dba
jmp 0x464f96
push str.HQGrpModifyCopy_NotSupportFormat_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [esp + 0x10]
push edx
call fcn.0046728e
mov eax, dword [esp + 0x18]
push eax
call fcn.0046728e
add esp, 8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x24
ret 4