Function at 0x556d60
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 0x556d9d
je 0x556ff0
dec edx
je 0x556dcb
dec edx
je 0x556dd9
sub edx, 2
je 0x556f73
dec edx
je 0x556fcc
jmp 0x5570c5
sub edx, 7
je 0x557019
dec edx
je 0x557048
dec edx
je 0x55706c
sub edx, 0xf3
je 0x556dc1
jmp 0x5570c5
mov eax, 1
jmp 0x5570d8
cmp word [ebp + 8], 0
je 0x556d70
xor eax, eax
jmp 0x5570d8
mov dl, byte [ebx]
push edx
call sub.kernel32.dll_IsDBCSLeadByte
test eax, eax
je 0x556deb
mov si, 2
jmp 0x556def
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 0x556e0c
xor eax, eax
jmp 0x5570d8
movzx edx, word [ebp + 8]
movsx ecx, si
cmp edx, ecx
jne 0x556e72
mov ecx, dword [ebp - 4]
cmp dword [ecx], 0
je 0x556e46
cmp si, 1
jne 0x556e46
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 0x556e5f
xor eax, eax
jmp 0x5570d8
movsx edx, si
push edx
push ebx
push edi
call fcn.0052e4c8
add esp, 0xc
test eax, eax
je 0x556e5f
xor eax, eax
jmp 0x5570d8
movsx edx, si
add ebx, edx
movsx ecx, si
add edi, ecx
sub word [ebp + 8], si
jmp 0x556d70
xor ecx, ecx
mov cl, byte [ebx]
mov word [ebp - 6], cx
mov eax, dword [ebp - 4]
cmp dword [eax], 0
je 0x556ede
cmp si, 1
jne 0x556ede
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.00556c37
test eax, eax
jne 0x556ef3
movzx ecx, word [ebp + 8]
movsx edx, si
sub ecx, edx
inc ecx
movsx edx, byte [ebp - 0x1e]
mov eax, edi
call fcn.00556c37
jmp 0x556ef3
movzx ecx, word [ebp + 8]
movsx eax, si
sub ecx, eax
inc ecx
mov dx, word [ebp - 6]
mov eax, edi
call fcn.00556c37
test eax, eax
jne 0x556efe
xor eax, eax
jmp 0x5570d8
cmp si, 1
jle 0x556f21
mov dl, byte [eax + 1]
cmp dl, byte [ebx + 1]
je 0x556f21
mov ecx, eax
sub ecx, edi
add cx, si
sub word [ebp + 8], cx
movsx edi, si
add edi, eax
jmp 0x556e7a
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.00556d60
test eax, eax
je 0x556f55
mov eax, 1
jmp 0x5570d8
mov edx, dword [ebp - 4]
cmp ebx, dword [edx + 0x12]
je 0x556f64
xor eax, eax
jmp 0x5570d8
movsx edx, si
sub ebx, edx
jmp 0x556e7a
mov cx, word [ebx]
mov word [ebp - 0x20], cx
add ebx, 2
movsx edx, word [ebp - 0x20]
mov eax, edi
call fcn.00556cd3
mov esi, eax
test si, si
je 0x556fb7
movsx eax, si
movzx edx, word [ebp + 8]
cmp eax, edx
jg 0x556fb7
movsx ecx, si
movzx eax, word [ebp + 8]
cmp ecx, eax
jne 0x556fbe
movsx edx, si
mov eax, edi
call fcn.00556d15
movsx edx, word [ebp - 0x20]
cmp eax, edx
je 0x556fbe
xor eax, eax
jmp 0x5570d8
movsx edx, si
add edi, edx
sub word [ebp + 8], si
jmp 0x556d70
movzx ecx, word [ebp + 8]
dec ecx
jl 0x556fde
movsx ecx, byte [edi]
xor eax, eax
mov al, byte [ebx]
cmp ecx, eax
je 0x556fe5
xor eax, eax
jmp 0x5570d8
inc ebx
inc edi
dec word [ebp + 8]
jmp 0x556d70
movzx edx, word [ebp + 8]
cmp edx, 2
jl 0x557001
mov cx, word [edi]
cmp cx, word [ebx]
je 0x557008
xor eax, eax
jmp 0x5570d8
add ebx, 2
add edi, 2
add word [ebp + 8], 0xfffe
jmp 0x556d70
movzx edx, word [ebp + 8]
cmp edx, 3
jl 0x557030
mov ecx, dword [edi]
shl ecx, 8
mov esi, dword [ebx]
shl esi, 8
cmp ecx, esi
je 0x557037
xor eax, eax
jmp 0x5570d8
add ebx, 3
add edi, 3
add word [ebp + 8], 0xfffd
jmp 0x556d70
movzx edx, word [ebp + 8]
cmp edx, 4
jl 0x557057
mov ecx, dword [edi]
cmp ecx, dword [ebx]
je 0x55705b
xor eax, eax
jmp 0x5570d8
add ebx, 4
add edi, 4
add word [ebp + 8], 0xfffc
jmp 0x556d70
mov si, word [ebx]
add ebx, 2
mov eax, dword [ebp - 4]
cmp dword [eax], 0
je 0x55709d
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 0x5570b4
xor eax, eax
jmp 0x5570d8
movsx edx, si
push edx
push dword [ebx]
push edi
call fcn.0052e4c8
add esp, 0xc
test eax, eax
je 0x5570b4
xor eax, eax
jmp 0x5570d8
add ebx, 4
movsx edx, si
add edi, edx
sub word [ebp + 8], si
jmp 0x556d70
push 0x5728df
call sub.kernel32.dll_OutputDebugStringA
xor eax, eax
jmp 0x5570d8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4