Function at 0x100c3941
Capabilities:
Print debug messages

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x94
mov eax, dword [0x101d9590]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
fldz
mov dword [ebp - 0x70], eax
fst dword [ebp - 0x8c]
mov eax, dword [ebp + 0xc]
fst dword [ebp - 0x88]
push ebx
fst dword [ebp - 0x84]
xor ebx, ebx
mov dword [ebp - 0x60], eax
mov eax, dword [ebp + 0x18]
push esi
mov dword [ebp - 0x80], eax
mov eax, dword [ebp + 0x1c]
mov esi, ebx
push edi
mov dword [ebp - 0x90], edx
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x7c], ebx
test edx, edx
je 0x100c3da9
cmp word [edx], bx
je 0x100c3da9
test ecx, ecx
jne 0x100c39c5
fstp st(0)
mov edi, 0x8876086c
jmp 0x100c3d3e
fld dword [ebp + 0x10]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x100c39e0
fstp st(0)
push 0x10006ab4
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x100c39bb
fcomp dword [ebp + 0x14]
fnstsw ax
test ah, 0x41
jne 0x100c39f1
push 0x10006a84
jmp 0x100c39d8
mov esi, edx
mov dword [ecx], ebx
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
cmp ax, bx
jne 0x100c39f8
sub esi, ecx
push 0x100014bc
sar esi, 1
xor ecx, ecx
push 4
pop edx
mov eax, esi
mul edx
seto cl
mov dword [ebp - 0x7c], esi
neg ecx
or ecx, eax
push ecx
call fcn.10018970
mov edi, eax
pop ecx
pop ecx
mov dword [ebp - 0x64], edi
test edi, edi
jne 0x100c3a3a
mov edi, 0x8007000e
jmp 0x100c3d3e
mov eax, esi
shl eax, 2
push eax
push ebx
push edi
call sub.msvcrt.dll_memset
mov edi, dword [ebp - 0x60]
add esp, 0xc
lea eax, [ebp - 0x50]
push eax
push edi
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
test eax, eax
jne 0x100c3a71
push 0x10006a40
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edi, 0x8876086c
jmp 0x100c3d0e
test byte [ebp - 0x1d], 2
jne 0x100c3a7e
push 0x10006a10
jmp 0x100c3a61
fld dword [ebp + 0x14]
lea eax, [ebp - 0x54]
push eax
push 1
push ecx
push ecx
fstp dword [esp + 4]
fld dword [ebp + 0x10]
fstp dword [esp]
push edi
call fcn.100c2ca3
mov edi, eax
test edi, edi
jns 0x100c3ab2
push 0x100069e8
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov esi, dword [ebp - 0x54]
jmp 0x100c3d02
mov eax, ebx
mov dword [ebp - 0x78], eax
test esi, esi
je 0x100c3c9a
mov ecx, dword [ebp - 0x58]
mov edi, dword [ebp - 0x54]
add ecx, 8
mov dword [ebp - 0x58], ecx
cmp dword [ebp + 0x20], 0
mov ecx, dword [ebp - 0x90]
movzx eax, word [ecx + eax*2]
push 0x101d6518
push ebx
push ebx
lea ecx, [ebp - 0x18]
push ecx
push 2
push eax
push dword [ebp - 0x60]
mov dword [ebp - 0x5c], eax
je 0x100c3afc
call dword [sym.imp.GDI32.dll_GetGlyphOutlineW]
mov ecx, eax
mov dword [ebp - 0x6c], ecx
jmp 0x100c3b07
call dword [sym.imp.GDI32.dll_GetGlyphOutlineA]
mov ecx, eax
mov dword [ebp - 0x6c], eax
cmp ecx, 0xffffffff
je 0x100c3d94
mov edx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x68]
cmp ecx, edx
jbe 0x100c3b40
test eax, eax
je 0x100c3b28
push eax
call sub.msvcrt.dll_free
pop ecx
mov ecx, dword [ebp - 0x6c]
push ecx
mov dword [ebp - 0x74], ecx
call sub.msvcrt.dll_malloc
pop ecx
mov dword [ebp - 0x68], eax
test eax, eax
je 0x100c3d5a
mov edx, dword [ebp - 0x74]
cmp dword [ebp + 0x20], 0
push 0x101d6518
push eax
push edx
lea eax, [ebp - 0x18]
push eax
push 2
push dword [ebp - 0x5c]
push dword [ebp - 0x60]
je 0x100c3b61
call dword [sym.imp.GDI32.dll_GetGlyphOutlineW]
jmp 0x100c3b67
call dword [sym.imp.GDI32.dll_GetGlyphOutlineA]
cmp eax, 0xffffffff
je 0x100c3d7f
mov eax, dword [ebp - 0x68]
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 0x6c]
mov ebx, edi
mov dword [edi + 0x14], eax
call fcn.100c3744
mov edi, eax
test edi, edi
js 0x100c3d6f
mov edi, dword [ebp - 0x54]
mov ecx, dword [edi + 0x1bc]
mov ecx, dword [ecx + 0x1c]
lea eax, [ebp - 0x8c]
push eax
call fcn.100c3420
mov eax, dword [edi + 0x1bc]
mov eax, dword [eax + 0x1c]
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x78]
push 0x100014bc
push 0x28
mov dword [ecx + edx*4], eax
call fcn.10018970
pop ecx
pop ecx
test eax, eax
je 0x100c3bd6
mov ecx, eax
call fcn.100c2de8
mov ecx, eax
xor ebx, ebx
jmp 0x100c3bda
xor ebx, ebx
mov ecx, ebx
mov eax, dword [edi + 0x1bc]
mov dword [eax + 0x1c], ecx
mov eax, dword [edi + 0x1bc]
cmp dword [eax + 0x1c], ebx
je 0x100c3d9f
movsx eax, word [ebp - 8]
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x5c], eax
movsx eax, word [ebp - 6]
fild dword [ebp - 0x5c]
fld dword [edi + 8]
mov dword [ebp - 0x5c], eax
lea eax, [edx - 8]
fmul st(1)
fadd dword [ebp - 0x8c]
fstp dword [ebp - 0x8c]
fild dword [ebp - 0x5c]
fld dword [edi + 8]
fmul st(1)
fadd dword [ebp - 0x88]
fstp dword [ebp - 0x88]
test eax, eax
je 0x100c3c87
mov eax, dword [ebp - 0x18]
fild dword [ebp - 0x18]
test eax, eax
jns 0x100c3c42
fadd dword [0x100014d0]
fmul dword [edi + 8]
mov eax, dword [ebp - 0x14]
fstp dword [edx - 8]
fild dword [ebp - 0x14]
test eax, eax
jns 0x100c3c58
fadd dword [0x100014d0]
fmul dword [edi + 8]
fstp dword [edx - 4]
fild dword [ebp - 0x10]
fmul dword [edi + 8]
fstp dword [edx]
add edx, 0x18
fild dword [ebp - 0xc]
mov dword [ebp - 0x58], edx
fmul dword [edi + 8]
fstp dword [edx - 0x14]
fld dword [edi + 8]
fmulp st(2)
fxch st(1)
fstp dword [edx - 0x10]
fmul dword [edi + 8]
fstp dword [edx - 0xc]
jmp 0x100c3c8b
fstp st(1)
fstp st(0)
mov eax, dword [ebp - 0x78]
inc eax
mov dword [ebp - 0x78], eax
cmp eax, esi
jb 0x100c3acb
mov ebx, dword [ebp - 0x94]
push ebx
push esi
push dword [ebp - 0x64]
push dword [ebp - 0x70]
call fcn.100c2803
mov edi, eax
test edi, edi
js 0x100c3cef
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x100c3cef
mov ecx, dword [ebx]
push eax
mov eax, dword [ecx]
push ecx
call dword [eax + 0x10]
imul eax, eax, 0xc
push eax
call sym.d3dx9_43.dll_D3DXCreateBuffer
mov edi, eax
test edi, edi
js 0x100c3cef
mov eax, dword [ebx]
mov esi, dword [eax]
mov eax, dword [ebp - 0x80]
mov eax, dword [eax]
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
fldz
push eax
push ecx
fstp dword [esp]
push dword [ebx]
call dword [esi + 0x58]
mov edi, eax
mov esi, dword [ebp - 0x54]
mov eax, dword [ebp - 0x68]
test eax, eax
je 0x100c3d00
push eax
call sub.msvcrt.dll_free
pop ecx
xor ebx, ebx
test esi, esi
je 0x100c3d0e
push dword [ebp - 0x60]
call fcn.100c2516
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x100c3d3e
mov esi, dword [ebp - 0x7c]
test esi, esi
je 0x100c3d3e
mov eax, dword [ecx + ebx*4]
mov dword [ebp - 0x70], eax
test eax, eax
je 0x100c3d39
mov ecx, eax
call fcn.100c274a
push dword [ebp - 0x70]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
pop ecx
mov ecx, dword [ebp - 0x64]
inc ebx
cmp ebx, esi
jb 0x100c3d1c
push dword [ebp - 0x64]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
pop ecx
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.101becf5
leave
ret 0x1c
push 0x100069bc
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edi, 0x8007000e
jmp 0x100c3aaa
push 0x10006988
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x100c3cef
push 0x10006960
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edi, 0x80004005
jmp 0x100c3cef
push 0x10006960
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edi, 0x8007000e
jmp 0x100c3cef
push 0x1000693c
fstp st(0)
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edi, 0x8876086c
jmp 0x100c3cf2