Function at 0x1003e1d0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x10b8
call fcn.100ae320
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x10b4], eax
push esi
mov esi, ecx
push edi
mov dword [esp + 0x30], esi
mov eax, dword [esi + 0x60]
test eax, eax
jne 0x1003e21a
push 0xc
call dword [sym.imp.MSVCR120.dll_void____cdecl_operator_new_unsigned_int_]
mov dword [esi + 0x60], eax
mov dword [eax], 0
mov eax, dword [esi + 0x60]
mov dword [eax + 4], 0
jmp 0x1003e236
mov dword [eax], 0
mov eax, dword [esi + 0x60]
mov dword [eax + 4], 0
mov eax, dword [esi + 0x60]
push dword [eax + 8]
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete___void__]
mov eax, dword [esi + 0x60]
add esp, 4
mov dword [eax + 8], 0
xor eax, eax
push 0x7fe
push eax
mov word [esp + 0xc0], ax
lea eax, [esp + 0xc2]
push eax
call sub.MSVCR120.dll_memset
mov edi, dword [ebp + 8]
add esp, 0xc
xor edx, edx
movzx eax, word [edi]
test ax, ax
je 0x1003e29e
xor ecx, ecx
lea esi, [edx + 0x7e]
cmp ax, 0x60
jne 0x1003e285
mov word [esp + ecx + 0xb8], si
jmp 0x1003e28d
mov word [esp + ecx + 0xb8], ax
inc edx
lea ecx, [edx + edx]
movzx eax, word [ecx + edi]
test ax, ax
jne 0x1003e275
mov esi, dword [esp + 0x30]
add edx, edx
cmp edx, 0x800
jae 0x1003e77a
xor eax, eax
mov ecx, esi
mov word [esp + edx + 0xb8], ax
call fcn.1003bfd0
movapd xmm1, xmm0
movsd qword [esp + 0x48], xmm0
mulsd xmm1, qword [0x100d10d8]
push 0
cvttsd2si eax, xmm1
mov dword [esp + 0x20], eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
mov dword [esp + 0x60], eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
movsd xmm1, qword [esp + 0x48]
mov edi, eax
movapd xmm0, xmm1
mov dword [esp + 0x14], edi
subsd xmm0, qword [0x100d0fb0]
mov eax, 0xfffffff3
mov dword [esp + 0x20], eax
andpd xmm0, xmmword [0x100d1510]
comisd xmm0, xmmword [0x100d0e70]
jbe 0x1003e339
mulsd xmm1, qword [0x100d10a8]
movsd xmm0, qword [0x100d0f30]
subsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x20], eax
push str.Microsoft_YaHei
push 0x20
push 0
push 0
push 0
push 1
push 0
push 0
push 0
push 0x2bc
push 0
push 0
push 0
push eax
call dword [sym.imp.GDI32.dll_CreateFontW]
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x44], eax
test eax, eax
jne 0x1003e3eb
xor eax, eax
push 0x7fe
push eax
mov word [esp + 0x8c0], ax
lea eax, [esp + 0x8c2]
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
push 0x11
call dword [sym.imp.GDI32.dll_GetStockObject]
push eax
push edi
call esi
mov esi, eax
lea eax, [esp + 0x8b8]
push eax
push 0x400
push edi
call dword [sym.imp.GDI32.dll_GetTextFaceW]
push esi
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
push edi
call esi
lea eax, [esp + 0x8b8]
push eax
push 0x20
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x2bc
push 0
push 0
push 0
push dword [esp + 0x54]
call dword [sym.imp.GDI32.dll_CreateFontW]
mov dword [esp + 0x44], eax
push eax
push edi
call esi
push 0x420
mov dword [esp + 0x5c], eax
xorps xmm0, xmm0
lea eax, [esp + 0x74]
movdqa xmmword [esp + 0x74], xmm0
push eax
push 0xffffffffffffffff
lea eax, [esp + 0xc4]
push eax
push edi
mov edi, dword [sym.imp.USER32.dll_DrawTextW]
call edi
mov eax, dword [esp + 0x78]
sub eax, dword [esp + 0x70]
movsd xmm1, qword [esp + 0x48]
mulsd xmm1, qword [0x100d10c8]
push 0x2c
movd xmm0, eax
lea eax, [esp + 0x90]
cvtdq2pd xmm0, xmm0
push 0
push eax
mov dword [esp + 0x48], 0
addsd xmm0, xmm1
cvttsd2si esi, xmm0
mov dword [esp + 0x30], esi
call sub.MSVCR120.dll_memset
mov eax, dword [esp + 0x28]
add esp, 0xc
mov dword [esp + 0x94], eax
lea eax, [esp + 0x3c]
mov dword [esp + 0x90], esi
mov esi, dword [esp + 0x14]
push 0
push 0
push eax
push 0
lea eax, [esp + 0x9c]
mov dword [esp + 0xa8], 0x200001
push eax
push esi
mov dword [esp + 0xa4], 0x28
mov dword [esp + 0xb4], 0
call dword [sym.imp.GDI32.dll_CreateDIBSection]
push eax
push esi
mov dword [esp + 0x74], eax
call dword [sym.imp.GDI32.dll_SelectObject]
push 0xd8dbb
push 1
push 0
mov esi, eax
call dword [sym.imp.GDI32.dll_CreatePen]
push eax
push dword [esp + 0x18]
mov dword [esp + 0x50], eax
call dword [sym.imp.GDI32.dll_SelectObject]
push 0x7d4b37
mov dword [esp + 0x64], eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
push eax
push dword [esp + 0x18]
mov dword [esp + 0x70], eax
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
push ecx
push 0
push 0
push dword [esp + 0x24]
mov dword [esp + 0x64], eax
call dword [sym.imp.GDI32.dll_Rectangle]
push 0xc8ff
push dword [esp + 0x18]
call dword [sym.imp.GDI32.dll_SetTextColor]
push 1
push dword [esp + 0x18]
call dword [sym.imp.GDI32.dll_SetBkMode]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x70]
push 0x25
push eax
push 0xffffffffffffffff
lea eax, [esp + 0xc4]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
movdqa xmm0, xmmword [esp + 0x7c]
push eax
push dword [esp + 0x24]
movdqa xmmword [esp + 0x84], xmm0
call edi
push esi
push dword [esp + 0x18]
call dword [sym.imp.GDI32.dll_SelectObject]
mov edi, dword [esp + 0x24]
mov esi, edi
imul esi, dword [esp + 0x1c]
shl esi, 2
push esi
call fcn.100ad5d6
add esp, 4
mov dword [esp + 0x2c], eax
push esi
push 0x80
push eax
call sub.MSVCR120.dll_memset
mov esi, dword [esp + 0x28]
add esp, 0xc
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], edx
test esi, esi
jle 0x1003e6de
lea eax, [edi*4]
mov dword [esp + 0x40], esi
mov dword [esp + 0x54], eax
lea esp, [esp]
test edi, edi
jle 0x1003e6c3
mov esi, edx
lea eax, [edx + 3]
sub esi, ecx
mov dword [esp + 0x28], eax
lea edi, [ecx + 2]
mov dword [esp + 0x64], esi
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x20], ecx
mov cl, byte [edi]
mov dh, byte [edi - 1]
mov dl, byte [edi - 2]
mov byte [esp + 0x1a], cl
mov byte [eax - 3], cl
mov cl, byte [eax]
mov byte [esp + 0x19], cl
cmp cl, 0xa
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x1b], dh
mov byte [eax - 2], dh
mov byte [esi + edi], dl
jbe 0x1003e69a
movzx eax, dl
sub eax, 0x7d
cdq
mov esi, eax
movzx eax, byte [esp + 0x1b]
sub eax, 0x4b
xor esi, edx
sub esi, edx
cdq
xor eax, edx
sub eax, edx
add esi, eax
movzx eax, byte [esp + 0x1a]
sub eax, 0x37
cdq
xor eax, edx
sub eax, edx
add esi, eax
mov eax, 0xc8
cdq
mov ecx, eax
mov eax, 0x7d
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
add ecx, eax
mov eax, 0xffffff83
cdq
xor eax, edx
sub eax, edx
add ecx, eax
cmp esi, ecx
mov eax, ecx
cmovl eax, esi
mov esi, dword [esp + 0x64]
imul eax, eax, 0x6c
cdq
idiv ecx
mov ecx, dword [esp + 0x28]
add al, byte [esp + 0x19]
mov byte [ecx], al
mov eax, ecx
mov ecx, dword [esp + 0x20]
add eax, 4
add edi, 4
dec ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], ecx
jne 0x1003e602
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x40]
add ecx, eax
add edx, eax
dec esi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x40], esi
jne 0x1003e5e0
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
push dword [esp + 0x58]
mov eax, dword [edi + 0x60]
mov dword [eax + 8], ecx
mov eax, dword [edi + 0x60]
mov ecx, dword [esp + 0x28]
mov dword [eax], ecx
mov eax, dword [edi + 0x60]
mov dword [eax + 4], esi
mov esi, dword [esp + 0x18]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [esp + 0x50]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [esp + 0x60]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [esp + 0x44]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
call esi
push dword [esp + 0x6c]
call esi
push dword [esp + 0x68]
call esi
push dword [esp + 0x48]
call esi
push dword [esp + 0x14]
call dword [sym.imp.GDI32.dll_DeleteDC]
push dword [esp + 0x5c]
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
lea eax, [edi + 0xa4]
mov ecx, 1
lock xadd dword [eax], ecx
inc ecx
mov ecx, dword [esp + 0x10bc]
pop edi
pop esi
xor ecx, esp
call fcn.100ad688
mov esp, ebp
pop ebp
ret 4
call fcn.100ad932
int3