Function at 0x579894
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
push ebx
push esi
push edi
mov edi, ecx
mov ebx, edx
mov dword [ebp - 4], eax
mov al, byte [ebx]
inc ebx
xor edx, edx
mov dl, al
cmp edx, 6
jg 0x5798d1
je 0x579b24
dec edx
je 0x5798ff
dec edx
je 0x57990d
sub edx, 2
je 0x579aa7
dec edx
je 0x579b00
jmp 0x579bf9
sub edx, 7
je 0x579b4d
dec edx
je 0x579b7c
dec edx
je 0x579ba0
sub edx, 0xf3
je 0x5798f5
jmp 0x579bf9
mov eax, 1
jmp 0x579c0c
cmp word [ebp + 8], 0
je 0x5798a4
xor eax, eax
jmp 0x579c0c
mov dl, byte [ebx]
push edx
call sub.kernel32.dll_IsDBCSLeadByte
test eax, eax
je 0x57991f
mov si, 2
jmp 0x579923
mov si, 1
movsx eax, si
add eax, ebx
mov edx, dword [ebp - 4]
mov dword [edx + 0x12], eax
movzx ecx, word [ebp + 8]
movsx eax, si
cmp ecx, eax
jge 0x579940
xor eax, eax
jmp 0x579c0c
movzx edx, word [ebp + 8]
movsx ecx, si
cmp edx, ecx
jne 0x5799a6
mov ecx, dword [ebp - 4]
cmp dword [ecx], 0
je 0x57997a
cmp si, 1
jne 0x57997a
push 1
push ebx
push 1
push edi
push 1
mov eax, dword [ebp - 4]
push dword [eax + 4]
call sub.kernel32.dll_CompareStringA
cmp eax, 2
je 0x579993
xor eax, eax
jmp 0x579c0c
movsx edx, si
push edx
push ebx
push edi
call fcn.00550ffc
add esp, 0xc
test eax, eax
je 0x579993
xor eax, eax
jmp 0x579c0c
movsx edx, si
add ebx, edx
movsx ecx, si
add edi, ecx
sub word [ebp + 8], si
jmp 0x5798a4
xor ecx, ecx
mov cl, byte [ebx]
mov word [ebp - 6], cx
mov eax, dword [ebp - 4]
cmp dword [eax], 0
je 0x579a12
cmp si, 1
jne 0x579a12
mov dl, byte [ebp - 6]
mov byte [ebp - 0x10], dl
mov byte [ebp - 0xf], 0
mov cl, byte [ebp - 6]
mov byte [ebp - 0x1e], cl
mov byte [ebp - 0x1d], 0
lea eax, [ebp - 0x10]
push eax
call sub.user32.dll_CharUpperA
lea edx, [ebp - 0x1e]
push edx
call sub.user32.dll_CharLowerA
movzx ecx, word [ebp + 8]
movsx eax, si
sub ecx, eax
inc ecx
movsx edx, byte [ebp - 0x10]
mov eax, edi
call fcn.0057976b
test eax, eax
jne 0x579a27
movzx ecx, word [ebp + 8]
movsx edx, si
sub ecx, edx
inc ecx
movsx edx, byte [ebp - 0x1e]
mov eax, edi
call fcn.0057976b
jmp 0x579a27
movzx ecx, word [ebp + 8]
movsx eax, si
sub ecx, eax
inc ecx
mov dx, word [ebp - 6]
mov eax, edi
call fcn.0057976b
test eax, eax
jne 0x579a32
xor eax, eax
jmp 0x579c0c
cmp si, 1
jle 0x579a55
mov dl, byte [eax + 1]
cmp dl, byte [ebx + 1]
je 0x579a55
mov ecx, eax
sub ecx, edi
add cx, si
sub word [ebp + 8], cx
movsx edi, si
add edi, eax
jmp 0x5799ae
mov edx, eax
sub edx, edi
add dx, si
sub word [ebp + 8], dx
movsx edi, si
add edi, eax
movsx eax, si
add ebx, eax
mov dx, word [ebp + 8]
push edx
mov ecx, edi
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.00579894
test eax, eax
je 0x579a89
mov eax, 1
jmp 0x579c0c
mov edx, dword [ebp - 4]
cmp ebx, dword [edx + 0x12]
je 0x579a98
xor eax, eax
jmp 0x579c0c
movsx edx, si
sub ebx, edx
jmp 0x5799ae
mov cx, word [ebx]
mov word [ebp - 0x20], cx
add ebx, 2
movsx edx, word [ebp - 0x20]
mov eax, edi
call fcn.00579807
mov esi, eax
test si, si
je 0x579aeb
movsx eax, si
movzx edx, word [ebp + 8]
cmp eax, edx
jg 0x579aeb
movsx ecx, si
movzx eax, word [ebp + 8]
cmp ecx, eax
jne 0x579af2
movsx edx, si
mov eax, edi
call fcn.00579849
movsx edx, word [ebp - 0x20]
cmp eax, edx
je 0x579af2
xor eax, eax
jmp 0x579c0c
movsx edx, si
add edi, edx
sub word [ebp + 8], si
jmp 0x5798a4
movzx ecx, word [ebp + 8]
dec ecx
jl 0x579b12
movsx ecx, byte [edi]
xor eax, eax
mov al, byte [ebx]
cmp ecx, eax
je 0x579b19
xor eax, eax
jmp 0x579c0c
inc ebx
inc edi
dec word [ebp + 8]
jmp 0x5798a4
movzx edx, word [ebp + 8]
cmp edx, 2
jl 0x579b35
mov cx, word [edi]
cmp cx, word [ebx]
je 0x579b3c
xor eax, eax
jmp 0x579c0c
add ebx, 2
add edi, 2
add word [ebp + 8], 0xfffe
jmp 0x5798a4
movzx edx, word [ebp + 8]
cmp edx, 3
jl 0x579b64
mov ecx, dword [edi]
shl ecx, 8
mov esi, dword [ebx]
shl esi, 8
cmp ecx, esi
je 0x579b6b
xor eax, eax
jmp 0x579c0c
add ebx, 3
add edi, 3
add word [ebp + 8], 0xfffd
jmp 0x5798a4
movzx edx, word [ebp + 8]
cmp edx, 4
jl 0x579b8b
mov ecx, dword [edi]
cmp ecx, dword [ebx]
je 0x579b8f
xor eax, eax
jmp 0x579c0c
add ebx, 4
add edi, 4
add word [ebp + 8], 0xfffc
jmp 0x5798a4
mov si, word [ebx]
add ebx, 2
mov eax, dword [ebp - 4]
cmp dword [eax], 0
je 0x579bd1
movsx edx, si
push edx
push dword [ebx]
movsx ecx, si
push ecx
push edi
push 1
mov ecx, dword [ebp - 4]
push dword [ecx + 4]
call sub.kernel32.dll_CompareStringA
cmp eax, 2
je 0x579be8
xor eax, eax
jmp 0x579c0c
movsx edx, si
push edx
push dword [ebx]
push edi
call fcn.00550ffc
add esp, 0xc
test eax, eax
je 0x579be8
xor eax, eax
jmp 0x579c0c
add ebx, 4
movsx edx, si
add edi, edx
sub word [ebp + 8], si
jmp 0x5798a4
push 0x595977
call sub.kernel32.dll_OutputDebugStringA
xor eax, eax
jmp 0x579c0c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4