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

Disassembly:
mov eax, dword [esp + 0x1c]
sub esp, 0x44
push ebx
push ebp
push esi
xor esi, esi
mov dword [0x4d7334], esi
mov dword [0x4d731c], esi
mov dword [0x4d733c], esi
mov dword [0x4d7320], esi
mov dword [0x4d7324], esi
mov dword [0x4d7328], esi
mov byte [eax], 0
mov byte [eax + 2], 0
mov byte [eax + 1], 0
mov edx, dword [0x4d77d8]
mov byte [0x4d77f8], 0
push edi
mov cl, byte [edx]
test cl, cl
jne 0x4898c9
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x44
ret
cmp cl, 0xd
jne 0x4898f7
mov dword [0x4d7334], 0xd
mov byte [eax], cl
mov eax, dword [0x4d77d8]
mov dword [0x4d733c], esi
add eax, 2
pop edi
pop esi
mov dword [0x4d77d8], eax
pop ebp
xor eax, eax
pop ebx
add esp, 0x44
ret
mov ebp, dword [esp + 0x84]
mov ebx, dword [esp + 0x78]
mov esi, dword [esp + 0x68]
cmp cl, 0x1b
jne 0x48994a
mov edi, dword [esp + 0x58]
mov ax, word [edx]
cmp ax, 0x501b
je 0x48994a
cmp ax, 0x241b
je 0x48994a
cmp ax, 0x581b
je 0x48994a
cmp ax, 0x491b
je 0x48994a
cmp ax, 0x481b
je 0x48994a
cmp ax, 0x561b
je 0x48994a
push edi
call fcn.00489020
mov edx, dword [0x4d77d8]
add esp, 4
cmp byte [edx], 0x1b
je 0x48990f
mov ax, word [edx]
cmp ax, 0x501b
jne 0x4899ac
add edx, 2
xor eax, eax
mov dword [0x4d77d8], edx
cmp word [edx], 0x501b
je 0x489997
mov edi, dword [esp + 0x6c]
mov ecx, dword [edi + 0x15]
mov ebx, dword [edi + 0x1d]
lea ecx, [ecx + ebx - 1]
cmp edx, ecx
jae 0x489993
cmp eax, 0xa
jge 0x489985
mov cl, byte [edx]
mov byte [eax + 0x4d77f8], cl
inc eax
inc edx
mov dword [0x4d77d8], edx
cmp word [edx], 0x501b
jne 0x489969
mov ebx, dword [esp + 0x78]
add edx, 2
mov byte [eax + 0x4d77f8], 0
mov dword [0x4d77d8], edx
jmp 0x489bb5
cmp ax, 0x241b
je 0x489cda
cmp ax, 0x491b
je 0x489d43
cmp ax, 0x481b
jne 0x489cc1
mov al, byte [0x4d7268]
add edx, 2
test al, al
mov eax, dword [0x4d6de4]
mov dword [0x4d77d8], edx
mov ecx, dword [eax + 0x8eb]
jne 0x489bc5
test ecx, ecx
je 0x489a87
mov edx, dword [0x4d7388]
mov ecx, dword [0x4d7370]
mov dword [0x4d7278], edx
mov edx, dword [0x4d7384]
mov dword [0x4d7280], ecx
mov ecx, dword [0x4d738c]
mov dword [0x4d7270], edx
mov edx, dword [0x4d7364]
mov dword [0x4d7274], ecx
mov ecx, dword [0x4d737c]
mov dword [0x4d727c], edx
mov dword [0x4d726c], ecx
mov edx, dword [eax + 0x8f3]
mov dword [0x4d7388], edx
mov ecx, dword [eax + 0x8ff]
mov dword [0x4d7370], ecx
mov edx, dword [eax + 0x8fb]
mov dword [0x4d7384], edx
mov ecx, dword [eax + 0x903]
mov dword [0x4d7364], ecx
mov edx, dword [eax + 0x8fb]
mov eax, dword [esp + 0x58]
sar edx, 0xc
push eax
mov dword [0x4d737c], edx
call fcn.00488ef0
add esp, 4
mov eax, dword [esp + 0x6c]
mov byte [0x4d7268], 1
mov ecx, dword [eax + 0x1d]
mov edx, dword [eax + 0x15]
lea eax, [ecx + edx - 1]
push eax
push 2
call fcn.00489640
mov al, byte [esp + 0x84]
add esp, 8
test al, al
je 0x489baf
mov eax, dword [0x4d72a8]
test eax, eax
je 0x489baf
mov eax, dword [esi + 0xa5]
test eax, eax
je 0x489ae9
lea ecx, [eax + 1]
mov edx, dword [esi + 0xa9]
mov eax, ecx
shl eax, 4
add eax, ecx
lea ecx, [eax + eax*2]
push ecx
push edx
call fcn.00497980
jmp 0x489af2
push 1
push 0x33
call fcn.00497013
mov ecx, dword [esi + 0xa5]
mov dword [esi + 0xa9], eax
mov eax, ecx
mov dl, byte [0x4d72a8]
shl eax, 4
add eax, ecx
mov ecx, dword [esi + 0xa9]
add esp, 8
lea eax, [eax + eax*2]
push 0x4d7284
mov byte [eax + ecx + 0x10], dl
mov ecx, dword [esi + 0xa5]
mov eax, ecx
shl eax, 4
add eax, ecx
mov ecx, dword [esi + 0xa9]
lea eax, [eax + eax*2]
lea edx, [eax + ecx + 0x11]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [esp + 0x5c]
test eax, eax
jne 0x489b56
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x80]
jmp 0x489b69
mov edx, dword [esp + 0x88]
mov ecx, dword [0x4d72b4]
mov eax, dword [esp + 0x74]
sub edx, ecx
mov ecx, dword [esi + 0xa5]
sub edx, eax
mov eax, ecx
shl eax, 4
add eax, ecx
mov ecx, dword [esi + 0xa9]
lea eax, [eax + eax*2]
mov dword [eax + ecx], edx
mov ecx, dword [esi + 0xa5]
mov eax, ecx
mov edx, ebx
shl eax, 4
add eax, ecx
mov ecx, dword [esi + 0xa9]
sub edx, ebp
lea eax, [eax + eax*2]
mov dword [eax + ecx + 4], edx
mov eax, dword [esi + 0xa5]
inc eax
mov dword [esi + 0xa5], eax
mov edx, dword [0x4d77d8]
mov cl, byte [edx]
cmp cl, 0x1b
jne 0x48a441
jmp 0x489906
test ecx, ecx
je 0x489c20
mov ecx, dword [0x4d7278]
mov edx, dword [0x4d7280]
mov eax, dword [0x4d7270]
mov dword [0x4d7388], ecx
mov ecx, dword [0x4d7274]
mov dword [0x4d7370], edx
mov edx, dword [0x4d727c]
mov dword [0x4d738c], ecx
mov ecx, dword [esp + 0x58]
mov dword [0x4d7384], eax
mov eax, dword [0x4d726c]
push ecx
mov dword [0x4d7364], edx
mov dword [0x4d737c], eax
call fcn.00488ef0
mov edx, dword [0x4d77d8]
add esp, 4
mov al, byte [esp + 0x7c]
mov byte [0x4d7268], 0
test al, al
je 0x489bb5
mov eax, dword [0x4d72a8]
test eax, eax
je 0x489bb5
mov eax, dword [esp + 0x5c]
test eax, eax
jne 0x489c94
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x80]
mov ecx, dword [esi + 0xa5]
sub edx, eax
mov eax, ecx
shl eax, 4
add eax, ecx
mov ecx, dword [esi + 0xa9]
lea eax, [eax + eax*2]
mov dword [eax + ecx - 0x2b], edx
mov edx, dword [0x4d72b4]
sub edx, ebp
add edx, ebx
mov ecx, dword [esi + 0xa5]
mov eax, ecx
shl eax, 4
add eax, ecx
mov ecx, dword [esi + 0xa9]
lea eax, [eax + eax*2]
mov dword [eax + ecx - 0x27], edx
jmp 0x489baf
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x74]
mov ecx, dword [esi + 0xa5]
sub edx, eax
mov eax, ecx
shl eax, 4
add eax, ecx
mov ecx, dword [esi + 0xa9]
lea eax, [eax + eax*2]
mov dword [eax + ecx - 0x2b], edx
mov edx, ebx
sub edx, ebp
jmp 0x489c75
cmp ax, 0x561b
je 0x489eb5
cmp ax, 0x581b
je 0x489f86
jmp 0x489bb5
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
add edx, 2
push 0x4d7320
mov dword [0x4d77d8], edx
mov dword [0x4d7334], edx
mov edx, dword [esp + 0x70]
push 0x4d7324
push edx
push eax
push ecx
call fcn.004851e0
mov dword [0x4d733c], eax
mov eax, dword [0x4d337c]
add esp, 0x14
cmp eax, 1
jne 0x489d25
mov edx, dword [0x4d7334]
mov dword [0x4d77d8], edx
mov eax, dword [esp + 0x70]
pop edi
mov dword [0x4d7334], 2
pop esi
mov byte [eax], 1
mov eax, dword [0x4d733c]
pop ebp
pop ebx
add esp, 0x44
ret
add edx, 2
mov esi, dword [0x4d7394]
mov ecx, edx
mov dword [0x4d77d8], edx
mov dword [0x4d7334], ecx
movsx ebx, word [edx]
add edx, 2
mov dword [0x4d733c], ebx
mov dword [0x4d77d8], edx
movsx eax, word [edx]
sub eax, esi
mov dword [0x4d7324], eax
jns 0x489d7f
xor eax, eax
mov dword [0x4d7324], eax
mov edi, dword [0x4d337c]
add edx, 2
mov dword [0x4d77d8], edx
movsx esi, word [edx]
add edx, 4
mov dword [0x4d7320], esi
test edi, edi
mov dword [0x4d77d8], edx
jne 0x489e91
mov ecx, dword [0x4d72b4]
mov ebp, dword [0x4d72c8]
lea edi, [ecx + esi]
mov ecx, dword [0x4d72d0]
add ebp, ecx
add edi, eax
add ebp, ebx
mov ebx, dword [esp + 0x60]
cmp ebp, ebx
jle 0x489dee
sub ecx, dword [0x4d72c8]
add ecx, ebx
mov dword [0x4d733c], ecx
mov word [edx - 6], cx
mov eax, dword [0x4d7324]
mov esi, dword [0x4d7320]
mov edx, dword [0x4d77d8]
mov ebx, dword [0x4d72d4]
mov ebp, dword [0x4d72cc]
lea ecx, [ebx + ebp]
add ecx, edi
mov edi, ecx
mov ecx, dword [esp + 0x64]
cmp edi, ecx
jle 0x489e5f
sub ecx, ebx
lea edi, [esi + eax]
sub ecx, ebp
mov ebp, dword [0x4d72b4]
sub ecx, ebp
cmp edi, ecx
jle 0x489e45
test eax, eax
jg 0x489e26
test esi, esi
jle 0x489e3a
jmp 0x489e27
dec eax
lea edi, [esi + eax]
cmp edi, ecx
jle 0x489e33
test esi, esi
jle 0x489e33
dec esi
lea edi, [esi + eax]
cmp edi, ecx
jg 0x489e1c
mov dword [0x4d7320], esi
mov dword [0x4d7324], eax
mov word [edx - 4], ax
mov eax, dword [0x4d77d8]
mov dx, word [0x4d7320]
mov word [eax - 2], dx
mov edx, dword [0x4d77d8]
cmp word [edx], 0x491b
je 0x489e86
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x15]
mov esi, dword [eax + 0x1d]
lea ecx, [ecx + esi - 1]
cmp edx, ecx
jae 0x489e86
inc edx
mov dword [0x4d77d8], edx
cmp word [edx], 0x491b
jne 0x489e6a
add edx, 2
mov dword [0x4d77d8], edx
jmp 0x489e97
mov dword [0x4d77d8], ecx
mov edx, dword [esp + 0x70]
pop edi
mov dword [0x4d7334], 2
pop esi
mov byte [edx], 2
mov eax, dword [0x4d733c]
pop ebp
pop ebx
add esp, 0x44
ret
add edx, 2
xor eax, eax
mov dword [0x4d77d8], edx
cmp word [edx], 0x561b
je 0x489ef0
mov esi, dword [esp + 0x6c]
mov ecx, dword [esi + 0x15]
mov edi, dword [esi + 0x1d]
lea ecx, [ecx + edi - 1]
cmp edx, ecx
jae 0x489ef0
mov cl, byte [edx]
mov byte [eax + 0x4d7178], cl
inc eax
inc edx
mov dword [0x4d77d8], edx
cmp word [edx], 0x561b
jne 0x489ecb
add edx, 2
mov byte [eax + 0x4d7178], 0
mov dword [0x4d77d8], edx
lea edx, [eax + 0x4d7177]
push edx
push 0x3b
push 0x4d7178
call fcn.00489430
mov esi, eax
add esp, 0xc
test esi, esi
je 0x489f3a
push 0x4d7178
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc esi
push eax
push esi
push 0x4d7178
call fcn.00497220
add esp, 0xc
mov eax, dword [0x4d7394]
mov ecx, dword [0x4d73a0]
mov edx, dword [esp + 0x5c]
push eax
mov eax, dword [esp + 0x5c]
push 0
push ecx
push 0x4d7178
push edx
push eax
call fcn.00488000
mov ecx, dword [esp + 0x88]
add esp, 0x18
mov dword [0x4d733c], eax
mov dword [0x4d7334], 2
pop edi
pop esi
mov byte [ecx], 3
mov eax, dword [0x4d733c]
pop ebp
pop ebx
add esp, 0x44
ret
add edx, 2
xor eax, eax
mov dword [0x4d77d8], edx
mov dword [esp + 0x7c], eax
cmp word [edx], 0x581b
mov dword [esp + 0x74], eax
je 0x48a402
mov ebp, dword [0x4d7394]
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x78], 0x4d70b0
jmp 0x489fc0
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x15]
mov eax, dword [eax + 0x1d]
lea ecx, [ecx + eax - 1]
cmp edx, ecx
jae 0x48a402
cmp byte [edx], 0x7b
jne 0x48a3f0
mov ax, word [edx + 1]
cmp ax, 0x7830
je 0x489fef
cmp ax, 0x5830
jne 0x48a3f0
cmp byte [edx + 7], 0x7d
jne 0x48a3f0
add edx, 3
xor ebx, ebx
mov dword [0x4d77d8], edx
mov ecx, 0xc
mov al, byte [edx]
cmp al, 0x41
jl 0x48a01b
cmp al, 0x46
jg 0x48a01b
movsx eax, al
sub eax, 0x37
jmp 0x48a039
cmp al, 0x61
jl 0x48a02b
cmp al, 0x66
jg 0x48a02b
movsx eax, al
sub eax, 0x57
jmp 0x48a039
cmp al, 0x30
jl 0x48a04c
cmp al, 0x39
jg 0x48a04c
movsx eax, al
sub eax, 0x30
shl eax, cl
sub ecx, 4
add ebx, eax
inc edx
cmp ecx, 0xfffffffc
mov dword [0x4d77d8], edx
jg 0x48a009
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
mov esi, ebp
mov word [eax], bx
add eax, 2
mov dword [esp + 0x78], eax
mov eax, dword [0x4d0948]
and ebx, 0xffff
inc ecx
cmp eax, eax
mov dword [esp + 0x80], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0x7c], ecx
jne 0x48a0c9
mov esi, dword [0x4d73a0]
push eax
push edi
mov dword [0x4d73a0], eax
call fcn.0048e8b0
push eax
push edi
call fcn.0048eaa0
add esp, 0x10
lea edx, [esp + 0x68]
push edx
push ebx
push ebx
push edi
call dword [sym.imp.GDI32.dll_GetCharWidthW]
push esi
push edi
mov dword [0x4d73a0], esi
call fcn.0048e8b0
push eax
push edi
call fcn.0048eaa0
mov eax, dword [esp + 0x78]
add esp, 0x10
jmp 0x48a3e0
cmp dword [0x4d6ef8], 1
jne 0x48a1b0
cmp bl, 0x20
jae 0x48a0e4
shr esi, 1
mov eax, esi
jmp 0x48a3ec
jne 0x48a0ef
mov eax, ebp
sar eax, 1
jmp 0x48a3ec
test bl, bl
jne 0x48a0fa
xor eax, eax
jmp 0x48a3ec
cmp bl, 0x39
ja 0x48a10d
cmp bl, 0x30
jb 0x48a10d
mov eax, ebp
sar eax, 1
jmp 0x48a3ec
cmp bl, 0x7b
ja 0x48a120
cmp bl, 0x61
jb 0x48a120
mov eax, ebp
sar eax, 1
jmp 0x48a3ec
cmp bl, 0x3d
jne 0x48a132
test bh, bh
jne 0x48a132
mov eax, ebp
sar eax, 1
jmp 0x48a3ec
cmp bl, 0x3a
jne 0x48a144
test bh, bh
jne 0x48a144
mov eax, ebp
sar eax, 1
jmp 0x48a3ec
cmp bl, 0x2e
jne 0x48a156
test bh, bh
jne 0x48a156
mov eax, ebp
sar eax, 1
jmp 0x48a3ec
cmp bl, 0x2a
jne 0x48a168
test bh, bh
jne 0x48a168
mov eax, ebp
sar eax, 1
jmp 0x48a3ec
cmp bl, 0x2c
jne 0x48a17a
test bh, bh
jne 0x48a17a
mov eax, ebp
sar eax, 1
jmp 0x48a3ec
cmp bl, 0x2b
jne 0x48a18c
test bh, bh
jne 0x48a18c
mov eax, ebp
sar eax, 1
jmp 0x48a3ec
cmp bl, 0x2d
jne 0x48a19e
test bh, bh
jne 0x48a19e
mov eax, ebp
sar eax, 1
jmp 0x48a3ec
cmp bl, 0x28
jne 0x48a1be
test bh, bh
jne 0x48a1be
mov eax, ebp
sar eax, 1
jmp 0x48a3ec
cmp bl, 0x20
jae 0x48a1be
shr esi, 1
mov eax, esi
jmp 0x48a3ec
push eax
push edi
call fcn.0048e8b0
mov ecx, dword [0x4d5a34]
add esp, 8
test ecx, ecx
mov ebp, eax
je 0x48a322
cmp dword [ecx + ebp*4], 0
jne 0x48a322
mov esi, dword [esp + 0x58]
push 0
push esi
call dword [sym.imp.GDI32.dll_GetWindowExtEx]
push 0
push esi
mov dword [esp + 0x68], eax
call dword [sym.imp.GDI32.dll_GetViewportExtEx]
push 0
push 1
push 1
push esi
mov dword [esp + 0x74], eax
call dword [sym.imp.GDI32.dll_SetWindowExtEx]
push 0
push 1
push 1
push esi
call dword [sym.imp.GDI32.dll_SetViewportExtEx]
mov eax, dword [0x4d5a44]
mov ebx, ebp
shl ebx, 4
add ebx, ebp
mov ecx, 0x10
shl ebx, 2
lea edi, [esp + 0x14]
lea edx, [esp + 0x14]
lea esi, [ebx + eax]
push edx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x54]
xor esi, esi
neg ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], ecx
call dword [sym.imp.GDI32.dll_CreateFontIndirectA]
push eax
mov eax, dword [esp + 0x5c]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov edi, eax
mov eax, dword [0x4d5a38]
cmp eax, esi
je 0x48a290
lea ecx, [ebp*8]
mov esi, dword [esp + 0x58]
sub ecx, ebp
shl ecx, 7
add ecx, eax
push ecx
push 0xff
push 0x20
push esi
call dword [sym.imp.GDI32.dll_GetCharWidthA]
jmp 0x48a294
mov esi, dword [esp + 0x58]
push 0
push 2
push 0x4d3590
push esi
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
mov edx, dword [0x4d5a34]
mov dword [edx + ebp*4], eax
mov ecx, dword [0x4d5a34]
mov eax, dword [ecx + ebp*4]
test eax, eax
je 0x48a2c0
cmp eax, dword [esp + 0x50]
jl 0x48a2cc
mov eax, dword [0x4d5a44]
mov edx, dword [ebx + eax + 0x3c]
mov dword [ecx + ebp*4], edx
push edi
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x60]
push 0
mov ecx, eax
and eax, 0xffff
shr ecx, 0x10
push ecx
push eax
push esi
call dword [sym.imp.GDI32.dll_SetWindowExtEx]
mov eax, dword [esp + 0x64]
push 0
mov edx, eax
and eax, 0xffff
shr edx, 0x10
push edx
push eax
push esi
call dword [sym.imp.GDI32.dll_SetViewportExtEx]
mov ecx, dword [0x4d5a34]
mov esi, dword [esp + 0x80]
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x58]
cmp bl, 0x80
jb 0x48a378
test bh, bh
je 0x48a378
cmp dword [esp + 0x5c], 1
je 0x48a3de
test ecx, ecx
je 0x48a3d4
mov eax, dword [0x4d6ef8]
test eax, eax
jne 0x48a366
mov eax, dword [ecx + ebp*4]
mov ecx, ebp
imul eax, esi
shr esi, 1
shl ecx, 4
add eax, esi
mov esi, dword [0x4d5a44]
add ecx, ebp
xor edx, edx
div dword [esi + ecx*4 + 0x3c]
jmp 0x48a3d2
mov ebp, dword [ecx + ebp*4]
xor edx, edx
mov eax, ebp
imul eax, esi
shr esi, 1
add eax, esi
div ebp
jmp 0x48a3d2
mov eax, dword [0x4d5a38]
test eax, eax
jne 0x48a3b3
mov eax, dword [0x4d5a44]
test eax, eax
je 0x48a3a1
mov edx, ebp
shl edx, 4
add edx, ebp
lea ecx, [eax + edx*4]
mov eax, dword [eax + edx*4 + 4]
imul eax, esi
cdq
idiv dword [ecx + 0x3c]
jmp 0x48a3e0
mov ebp, dword [0x4d7394]
mov edx, dword [0x4d77d8]
mov eax, ebp
sar eax, 1
jmp 0x48a3ec
lea edx, [ebp*8]
and ebx, 0xff
sub edx, ebp
shl edx, 5
add edx, ebx
mov eax, dword [eax + edx*4 - 0x80]
imul eax, esi
cdq
idiv dword [ecx + ebp*4]
mov esi, eax
cmp esi, 1
jae 0x48a3de
mov esi, 1
mov eax, esi
mov edx, dword [0x4d77d8]
mov ebp, dword [0x4d7394]
add dword [esp + 0x74], eax
inc edx
mov dword [0x4d77d8], edx
cmp word [edx], 0x581b
jne 0x489fbc
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x74]
add edx, 2
pop edi
mov dword [0x4d77d8], edx
mov edx, dword [esp + 0x6c]
mov word [eax*2 + 0x4d70b0], 0
mov dword [0x4d733c], ecx
mov dword [0x4d7334], 2
pop esi
mov byte [edx], 4
mov eax, dword [0x4d733c]
pop ebp
pop ebx
add esp, 0x44
ret
mov dl, byte [edx]
mov ebx, dword [esp + 0x70]
test dl, dl
mov byte [ebx], dl
jge 0x48a538
mov ecx, dword [0x4d77d8]
inc ecx
cmp dl, 0xa0
mov dword [0x4d77d8], ecx
je 0x48a477
cmp dl, 0xff
je 0x48a477
cmp dl, 0x80
mov dword [0x4d7334], 2
jne 0x48a481
mov dword [0x4d7334], 1
mov eax, dword [0x4d77d8]
mov cl, byte [eax]
mov byte [ebx + 1], cl
mov eax, dword [0x4d7384]
mov edi, dword [0x4d77d8]
mov edx, eax
and edx, 0x300
inc edi
cmp edx, 0x100
mov dword [0x4d77d8], edi
jne 0x48a4b8
sar eax, 8
and eax, 1
mov dword [0x4d7328], eax
cmp dword [0x4d7334], 2
jne 0x48a557
mov eax, dword [0x4d72e8]
test eax, eax
jne 0x48a4d8
mov eax, dword [0x4d739c]
test ah, 1
je 0x48a557
mov al, byte [0x4d77f8]
test al, al
jne 0x48a557
xor eax, eax
xor edx, edx
mov al, byte [ebx]
mov dl, byte [ebx + 1]
lea ecx, [eax + eax*2]
shl ecx, 4
sub ecx, eax
lea eax, [edx + ecx*2 - 0x4141]
test eax, eax
jl 0x48a557
cmp eax, 0x1a70
jge 0x48a557
mov edx, dword [0x4d6dc0]
xor ecx, ecx
mov cx, word [edx + eax*2]
xor eax, eax
lea edx, [ecx + edx + 0x34e0]
mov cl, byte [edx + eax]
cmp cl, 0x2f
mov byte [eax + 0x4d77f8], cl
je 0x48a52f
inc eax
cmp eax, 6
jl 0x48a519
jmp 0x48a557
mov byte [eax + 0x4d77f8], 0
jmp 0x48a557
inc dword [0x4d77d8]
movsx eax, byte [ebx]
movsx ecx, byte [eax + 0x4d338c]
and ecx, 0x20
or ecx, 0x10
shr ecx, 4
mov dword [0x4d7334], ecx
mov eax, dword [0x4d7328]
test eax, eax
jne 0x48a569
mov eax, dword [0x4d72e8]
test eax, eax
je 0x48a5aa
mov al, byte [0x4d77f8]
test al, al
jne 0x48a5aa
call fcn.004880a0
mov edx, eax
xor eax, eax
test edx, edx
mov dword [0x4d7810], edx
jle 0x48a5a1
mov ecx, edx
mov eax, 0x55555555
mov esi, ecx
mov edi, 0x4d77f8
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, esi
and ecx, 3
rep stosb byte es:[edi], al
mov eax, edx
mov byte [eax + 0x4d77f8], 0
jmp 0x48a5ba
push 0x4d77f8
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [0x4d7810], eax
mov ecx, dword [0x4d72bc]
mov eax, 0xb60b60b7
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
and edx, 0x80000001
jns 0x48a5e0
dec edx
or edx, 0xfffffffe
inc edx
je 0x48a5f3
mov edi, dword [0x4d7394]
mov dword [0x4d733c], edi
jmp 0x48a97d
mov edi, dword [0x4d7394]
mov eax, dword [0x4d73a0]
movsx ebx, word [ebx]
mov ecx, dword [0x4d0948]
mov esi, edi
cmp eax, ecx
mov dword [esp + 0x68], esi
mov dword [esp + 0x78], ebx
jne 0x48a65d
mov edi, dword [esp + 0x58]
push eax
push edi
mov esi, eax
call fcn.0048e8b0
push eax
push edi
call fcn.0048eaa0
add esp, 0x10
lea ecx, [esp + 0x7c]
push ecx
push ebx
push ebx
push edi
call dword [sym.imp.GDI32.dll_GetCharWidthW]
push esi
push edi
mov dword [0x4d73a0], esi
call fcn.0048e8b0
push eax
push edi
call fcn.0048eaa0
mov eax, dword [esp + 0x8c]
add esp, 0x10
jmp 0x48a972
cmp dword [0x4d6ef8], 1
jne 0x48a744
cmp bl, 0x20
jae 0x48a678
shr esi, 1
mov eax, esi
jmp 0x48a978
jne 0x48a683
mov eax, edi
sar eax, 1
jmp 0x48a978
test bl, bl
jne 0x48a68e
xor eax, eax
jmp 0x48a978
cmp bl, 0x39
ja 0x48a6a1
cmp bl, 0x30
jb 0x48a6a1
mov eax, edi
sar eax, 1
jmp 0x48a978
cmp bl, 0x7b
ja 0x48a6b4
cmp bl, 0x61
jb 0x48a6b4
mov eax, edi
sar eax, 1
jmp 0x48a978
cmp bl, 0x3d
jne 0x48a6c6
test bh, bh
jne 0x48a6c6
mov eax, edi
sar eax, 1
jmp 0x48a978
cmp bl, 0x3a
jne 0x48a6d8
test bh, bh
jne 0x48a6d8
mov eax, edi
sar eax, 1
jmp 0x48a978
cmp bl, 0x2e
jne 0x48a6ea
test bh, bh
jne 0x48a6ea
mov eax, edi
sar eax, 1
jmp 0x48a978
cmp bl, 0x2a
jne 0x48a6fc
test bh, bh
jne 0x48a6fc
mov eax, edi
sar eax, 1
jmp 0x48a978
cmp bl, 0x2c
jne 0x48a70e
test bh, bh
jne 0x48a70e
mov eax, edi
sar eax, 1
jmp 0x48a978
cmp bl, 0x2b
jne 0x48a720
test bh, bh
jne 0x48a720
mov eax, edi
sar eax, 1
jmp 0x48a978
cmp bl, 0x2d
jne 0x48a732
test bh, bh
jne 0x48a732
mov eax, edi
sar eax, 1
jmp 0x48a978
cmp bl, 0x28
jne 0x48a752
test bh, bh
jne 0x48a752
mov eax, edi
sar eax, 1
jmp 0x48a978
cmp bl, 0x20
jae 0x48a752
shr esi, 1
mov eax, esi
jmp 0x48a978
mov edx, dword [esp + 0x58]
push eax
push edx
call fcn.0048e8b0
mov ecx, dword [0x4d5a34]
add esp, 8
test ecx, ecx
mov ebp, eax
je 0x48a8ba
cmp dword [ecx + ebp*4], 0
jne 0x48a8ba
mov esi, dword [esp + 0x58]
push 0
push esi
call dword [sym.imp.GDI32.dll_GetWindowExtEx]
push 0
push esi
mov dword [esp + 0x78], eax
call dword [sym.imp.GDI32.dll_GetViewportExtEx]
push 0
push 1
push 1
push esi
mov dword [esp + 0x84], eax
call dword [sym.imp.GDI32.dll_SetWindowExtEx]
push 0
push 1
push 1
push esi
call dword [sym.imp.GDI32.dll_SetViewportExtEx]
mov eax, dword [0x4d5a44]
mov ebx, ebp
shl ebx, 4
add ebx, ebp
mov ecx, 0x10
shl ebx, 2
lea edi, [esp + 0x14]
lea edx, [esp + 0x14]
lea esi, [ebx + eax]
push edx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x54]
xor esi, esi
neg ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], ecx
call dword [sym.imp.GDI32.dll_CreateFontIndirectA]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
push eax
mov eax, dword [esp + 0x5c]
push eax
call edi
mov dword [esp + 0x6c], eax
mov eax, dword [0x4d5a38]
cmp eax, esi
je 0x48a82f
lea ecx, [ebp*8]
mov esi, dword [esp + 0x58]
sub ecx, ebp
shl ecx, 7
add ecx, eax
push ecx
push 0xff
push 0x20
push esi
call dword [sym.imp.GDI32.dll_GetCharWidthA]
jmp 0x48a833
mov esi, dword [esp + 0x58]
push 0
push 2
push 0x4d3590
push esi
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
mov edx, dword [0x4d5a34]
mov dword [edx + ebp*4], eax
mov ecx, dword [0x4d5a34]
mov eax, dword [ecx + ebp*4]
test eax, eax
je 0x48a85f
cmp eax, dword [esp + 0x50]
jl 0x48a86b
mov eax, dword [0x4d5a44]
mov edx, dword [ebx + eax + 0x3c]
mov dword [ecx + ebp*4], edx
mov eax, dword [esp + 0x6c]
push eax
push esi
call edi
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x70]
push 0
mov ecx, eax
and eax, 0xffff
shr ecx, 0x10
push ecx
push eax
push esi
call dword [sym.imp.GDI32.dll_SetWindowExtEx]
mov eax, dword [esp + 0x74]
push 0
mov edx, eax
and eax, 0xffff
shr edx, 0x10
push edx
push eax
push esi
call dword [sym.imp.GDI32.dll_SetViewportExtEx]
mov ecx, dword [0x4d5a34]
mov ebx, dword [esp + 0x78]
mov esi, dword [esp + 0x68]
cmp bl, 0x80
jb 0x48a910
test bh, bh
je 0x48a910
cmp dword [esp + 0x5c], 1
je 0x48a970
test ecx, ecx
je 0x48a966
mov eax, dword [0x4d6ef8]
test eax, eax
jne 0x48a8fe
mov eax, dword [ecx + ebp*4]
mov ecx, ebp
imul eax, esi
shr esi, 1
shl ecx, 4
add eax, esi
mov esi, dword [0x4d5a44]
add ecx, ebp
xor edx, edx
div dword [esi + ecx*4 + 0x3c]
jmp 0x48a964
mov ebp, dword [ecx + ebp*4]
xor edx, edx
mov eax, ebp
imul eax, esi
shr esi, 1
add eax, esi
div ebp
jmp 0x48a964
mov eax, dword [0x4d5a38]
test eax, eax
jne 0x48a945
mov eax, dword [0x4d5a44]
test eax, eax
je 0x48a939
mov edx, ebp
shl edx, 4
add edx, ebp
lea ecx, [eax + edx*4]
mov eax, dword [eax + edx*4 + 4]
imul eax, esi
cdq
idiv dword [ecx + 0x3c]
jmp 0x48a972
mov edi, dword [0x4d7394]
mov eax, edi
sar eax, 1
jmp 0x48a978
lea edx, [ebp*8]
and ebx, 0xff
sub edx, ebp
shl edx, 5
add edx, ebx
mov eax, dword [eax + edx*4 - 0x80]
imul eax, esi
cdq
idiv dword [ecx + ebp*4]
mov esi, eax
cmp esi, 1
jae 0x48a970
mov esi, 1
mov eax, esi
mov edi, dword [0x4d7394]
mov dword [0x4d733c], eax
mov al, byte [0x4d77f8]
test al, al
je 0x48a9ec
fild dword [0x4d7394]
mov eax, dword [esp + 0x5c]
test eax, eax
fmul qword [str.ffffff]
jne 0x48a9d9
call fcn.00496fa4
push 0x4d77f8
mov dword [0x4d7324], eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 3
jle 0x48a9e6
mov edi, dword [0x4d7394]
add eax, 0xfffffffd
imul eax, edi
mov ecx, dword [0x4d733c]
cdq
and edx, 3
add eax, edx
sar eax, 2
add ecx, eax
mov dword [0x4d733c], ecx
jmp 0x48a9ec
call fcn.00496fa4
add dword [0x4d733c], eax
jmp 0x48a9ec
mov edi, dword [0x4d7394]
mov eax, dword [0x4d7360]
test eax, eax
je 0x48aa06
mov eax, dword [0x4d7334]
cmp eax, 4
je 0x48aa06
neg eax
mov dword [0x4d7334], eax
mov eax, dword [0x4d7324]
lea ecx, [edi + eax]
mov eax, dword [0x4d72b4]
cmp ecx, eax
jle 0x48aa25
sub edi, eax
mov eax, dword [0x4d7324]
add eax, edi
mov dword [0x4d7324], eax
mov eax, dword [0x4d733c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret