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

Disassembly:
push 0xffffffffffffffff
push 0x623e85
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3d0
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x3f0]
xor ebx, ebx
mov dword [esp + 0x2c], ecx
push edi
mov dword [edi], 0xfffffc18
mov dword [edi + 4], ebx
call dword [sym.imp.GDI32.dll_CreateFontIndirectA]
push ebx
push ebx
push ebx
push str.DISPLAY
mov ebp, eax
call dword [sym.imp.GDI32.dll_CreateDCA]
mov esi, eax
push ebp
push esi
mov dword [esp + 0x40], esi
call dword [sym.imp.GDI32.dll_SelectObject]
push ebx
push ebx
push esi
mov dword [esp + 0x48], eax
call dword [sym.imp.GDI32.dll_GetOutlineTextMetricsA]
mov ebp, eax
cmp ebp, ebx
jne 0x4a1d8e
mov eax, dword [esp + 0x3c]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
xor eax, eax
jmp 0x4a268e
push ebp
call fcn.004865f0
add esp, 4
mov esi, eax
push esi
push ebp
mov ebp, dword [esp + 0x40]
push ebp
call dword [sym.imp.GDI32.dll_GetOutlineTextMetricsA]
mov cl, byte [edi + 0x17]
mov al, byte [edi + 0x14]
sub cl, 2
neg cl
sbb ecx, ecx
and ecx, 0x1c
add ecx, 4
cmp al, bl
mov dword [esp + 0x10], ecx
je 0x4a1dc9
mov eax, ecx
or al, 0x40
mov dword [esp + 0x10], eax
mov al, byte [edi + 0x1b]
mov dl, al
and dl, 3
cmp dl, 1
jne 0x4a1ddb
or dword [esp + 0x10], 1
and al, 0xf8
cmp al, 0x10
jne 0x4a1de6
or dword [esp + 0x10], 2
cmp al, 0x40
jne 0x4a1df4
mov eax, dword [esp + 0x10]
or al, 8
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 0x58]
mov eax, 0x66666667
imul ecx
mov ecx, dword [esi + 0x60]
push esi
sar edx, 2
mov eax, edx
mov dword [esp + 0x4c], ecx
mov ecx, dword [esi + 0x74]
shr eax, 0x1f
add edx, eax
mov eax, dword [esi + 0x6c]
mov dword [esp + 0x50], edx
mov edx, dword [esi + 0x64]
mov dword [esp + 0x44], edx
mov edx, dword [esi + 0x80]
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0x7c]
mov dword [esp + 0x54], ecx
mov ecx, dword [esi + 0x78]
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ecx
call fcn.00486620
add esp, 4
lea edx, [edi + 0x1c]
lea ecx, [esp + 0x24]
push 0xffffffffffffffff
push edx
call fcn.00489840
push 0x6e8734
push 0x68f88c
lea ecx, [esp + 0x2c]
mov dword [esp + 0x3f0], ebx
call fcn.0048a910
mov eax, dword [edi + 0x10]
cmp eax, 0x1f4
jle 0x4a1e96
cmp byte [edi + 0x14], bl
je 0x4a1e88
push 0x69c054
jmp 0x4a1ea0
cmp eax, 0x1f4
jle 0x4a1e96
push 0x69c04c
jmp 0x4a1ea0
cmp byte [edi + 0x14], bl
je 0x4a1ea9
push 0x69c044
lea ecx, [esp + 0x28]
call fcn.00489d70
push 0x14
call fcn.00486570
mov esi, eax
add esp, 4
mov dword [esp + 0x30], esi
cmp esi, ebx
je 0x4a1ee9
mov dword [esi], 0x632d10
mov dword [esi + 8], ebx
lea ecx, [esi + 0xc]
mov byte [esp + 0x3e8], 2
call fcn.0055c520
mov dword [esi], 0x632d0c
mov dword [esi + 4], 6
mov dword [esp + 0x28], esi
jmp 0x4a1eef
mov dword [esp + 0x28], ebx
mov esi, ebx
mov al, byte [edi + 0x17]
mov byte [esp + 0x3e8], bl
cmp al, bl
mov dword [esp + 0x30], esi
jne 0x4a205b
push 0x690768
push 0x68f390
mov ecx, esi
call fcn.0048cd10
push 0x69200c
push 0x68f3d8
mov ecx, esi
call fcn.0048cd10
lea eax, [esp + 0x24]
mov ecx, esi
push eax
push 0x691fcc
call fcn.0048cdb0
push 0x69c034
push 0x691fd8
mov ecx, esi
call fcn.0048cd10
push 0x42000000
push 0x69c028
mov ecx, esi
call fcn.0048cfa0
push 0x437f0000
push 0x69c01c
mov ecx, esi
call fcn.0048cfa0
lea ecx, [esp + 0x60]
push ecx
push 0xff
push 0x20
push ebp
call dword [sym.imp.GDI32.dll_GetCharWidthA]
push 0x20
call fcn.00486570
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
cmp esi, ebx
je 0x4a1fc0
mov dword [esi], 0x632d10
mov dword [esi + 8], ebx
lea ecx, [esi + 0xc]
push 4
mov byte [esp + 0x3ec], 4
call fcn.0048dba0
mov dword [esi], 0x632d08
mov dword [esi + 4], 5
mov dword [esp + 0x18], esi
jmp 0x4a1fc4
mov dword [esp + 0x18], ebx
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x60]
mov byte [esp + 0x3e8], bl
mov dword [esp + 0x14], eax
lea ebp, [edx + 0xc]
mov dword [esp + 0x1c], 0xe0
push 0x14
call fcn.00486570
add esp, 4
mov dword [esp + 0x20], eax
cmp eax, ebx
mov byte [esp + 0x3e8], 5
je 0x4a200e
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov ecx, eax
push edx
call fcn.0048b980
mov esi, eax
jmp 0x4a2010
xor esi, esi
mov edi, dword [ebp + 4]
push 0xffffffffffffffff
mov ecx, ebp
mov byte [esp + 0x3ec], bl
lea eax, [edi + 1]
push eax
call fcn.0048dbd0
mov ecx, dword [ebp]
mov eax, dword [esp + 0x1c]
mov dword [ecx + edi*4], esi
mov ecx, dword [esp + 0x14]
add ecx, 4
dec eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], eax
jne 0x4a1fe2
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
push edx
push 0x69c014
call fcn.0048cbc0
jmp 0x4a2466
push 0x14
call fcn.00486570
mov ebp, eax
add esp, 4
mov dword [esp + 0x30], ebp
cmp ebp, ebx
je 0x4a2099
mov dword [ebp], 0x632d10
mov dword [ebp + 8], ebx
lea ecx, [ebp + 0xc]
mov byte [esp + 0x3e8], 7
call fcn.0055c520
mov dword [ebp], 0x632d0c
mov dword [ebp + 4], 6
jmp 0x4a209b
xor ebp, ebp
lea ecx, [esp + 0x18]
mov byte [esp + 0x3e8], bl
mov dword [esp + 0x30], ebp
call fcn.004897f0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3e8], 8
call fcn.004897f0
push 0x20
mov byte [esp + 0x3ec], 9
call fcn.00486570
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
cmp esi, ebx
je 0x4a2106
mov dword [esi], 0x632d10
mov dword [esi + 8], ebx
lea ecx, [esi + 0xc]
push 4
mov byte [esp + 0x3ec], 0xb
call fcn.0048dba0
mov dword [esi], 0x632d08
mov dword [esi + 4], 5
jmp 0x4a2108
xor esi, esi
mov al, byte [edi + 0x17]
mov byte [esp + 0x3e8], 9
cmp al, 0x88
jne 0x4a216f
mov eax, dword [esp + 0x3f4]
cmp eax, ebx
mov eax, 0x69c008
jne 0x4a212c
mov eax, 0x69bffc
push eax
lea ecx, [esp + 0x1c]
call fcn.00489a10
push 0x69bff4
lea ecx, [esp + 0x20]
call fcn.00489a10
mov dword [esp + 0x14], 4
push 1
mov ecx, esi
call fcn.0048c420
push 0x5f
mov ecx, esi
call fcn.0048c420
push 0x1f4
mov ecx, esi
call fcn.0048c420
jmp 0x4a22bd
cmp al, 0x86
jne 0x4a21e2
mov eax, dword [esp + 0x3f4]
cmp eax, ebx
mov eax, 0x69bfe8
jne 0x4a2188
mov eax, 0x69bfdc
push eax
lea ecx, [esp + 0x1c]
call fcn.00489a10
push 0x69bfd8
lea ecx, [esp + 0x20]
call fcn.00489a10
push 0x1e24
mov ecx, esi
mov dword [esp + 0x18], 2
call fcn.0048c420
push 0x1e24
mov ecx, esi
call fcn.0048c420
push 0x1f4
mov ecx, esi
call fcn.0048c420
push 0x32e
mov ecx, esi
call fcn.0048c420
push 0x38b
jmp 0x4a2157
cmp al, 0x81
jne 0x4a2220
mov eax, dword [esp + 0x3f4]
cmp eax, ebx
mov eax, 0x69bfcc
jne 0x4a21fb
mov eax, 0x69bfc0
push eax
lea ecx, [esp + 0x1c]
call fcn.00489a10
push 0x69bfb8
lea ecx, [esp + 0x20]
call fcn.00489a10
mov dword [esp + 0x14], 2
jmp 0x4a214c
cmp al, 0x80
mov eax, dword [esp + 0x3f4]
jne 0x4a2293
cmp eax, ebx
mov eax, 0x69bfac
jne 0x4a2239
mov eax, 0x69bfa0
push eax
lea ecx, [esp + 0x1c]
call fcn.00489a10
push 0x69bf98
lea ecx, [esp + 0x20]
call fcn.00489a10
push 0xe7
mov ecx, esi
mov dword [esp + 0x18], 5
call fcn.0048c420
push 0x144
mov ecx, esi
call fcn.0048c420
push 0x1f4
mov ecx, esi
call fcn.0048c420
push 0x277
mov ecx, esi
call fcn.0048c420
push 0x277
jmp 0x4a2157
cmp eax, ebx
mov eax, 0x69bf8c
jne 0x4a22a1
mov eax, 0x69bf80
push eax
lea ecx, [esp + 0x1c]
call fcn.00489a10
push 0x69bf74
lea ecx, [esp + 0x20]
call fcn.00489a10
mov dword [esp + 0x14], ebx
mov edi, dword [esp + 0x28]
push 0x690768
push 0x68f390
mov ecx, edi
call fcn.0048cd10
push 0x692004
push 0x68f3d8
mov ecx, edi
call fcn.0048cd10
lea eax, [esp + 0x24]
mov ecx, edi
push eax
push 0x691fcc
call fcn.0048cdb0
lea ecx, [esp + 0x18]
push ecx
push 0x691fd8
mov ecx, edi
call fcn.0048cdb0
push esi
push 0x697688
mov ecx, ebp
call fcn.0048cbc0
push 0x690768
push 0x68f390
mov ecx, ebp
call fcn.0048cd10
push 0x69bf64
push 0x68f3d8
mov ecx, ebp
call fcn.0048cd10
lea edx, [esp + 0x24]
mov ecx, ebp
push edx
push 0x691fcc
call fcn.0048cdb0
push 0x14
call fcn.00486570
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
cmp esi, ebx
je 0x4a2381
mov dword [esi], 0x632d10
mov dword [esi + 8], ebx
lea ecx, [esi + 0xc]
mov byte [esp + 0x3e8], 0xd
call fcn.0055c520
mov dword [esi], 0x632d0c
mov dword [esi + 4], 6
jmp 0x4a2383
xor esi, esi
push 0x69bf5c
push 0x69bf50
mov ecx, esi
mov byte [esp + 0x3f0], 9
call fcn.0048ce20
lea eax, [esp + 0x1c]
mov ecx, esi
push eax
push 0x69bf44
call fcn.0048cf00
mov ecx, dword [esp + 0x14]
push ecx
push 0x69bf38
mov ecx, esi
call fcn.0048ccc0
push esi
push 0x69bf28
mov ecx, ebp
call fcn.0048cbc0
push 0x20
call fcn.00486570
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
cmp esi, ebx
je 0x4a2409
mov dword [esi], 0x632d10
mov dword [esi + 8], ebx
lea ecx, [esi + 0xc]
push 4
mov byte [esp + 0x3ec], 0xf
call fcn.0048dba0
mov dword [esi], 0x632d08
mov dword [esi + 4], 5
jmp 0x4a240b
xor esi, esi
push esi
push 0x69bf18
mov ecx, edi
mov byte [esp + 0x3f0], 9
call fcn.0048cbc0
mov edx, dword [esp + 0x2c]
push ebp
lea edi, [edx + 0x1c]
mov ecx, edi
call fcn.0048eb10
mov eax, dword [esp + 0x2c]
mov ebp, dword [ebp + 8]
neg eax
sbb eax, eax
push ebp
and eax, edi
mov ecx, esi
push eax
call fcn.0048c630
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3e8], 8
call fcn.00489810
lea ecx, [esp + 0x18]
mov byte [esp + 0x3e8], bl
call fcn.00489810
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
push edx
lea ecx, [eax + 0x1c]
call fcn.0048eb10
push 0x14
call fcn.00486570
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
cmp esi, ebx
je 0x4a24b3
mov dword [esi], 0x632d10
mov dword [esi + 8], ebx
lea ecx, [esi + 0xc]
mov byte [esp + 0x3e8], 0x11
call fcn.0055c520
mov dword [esi], 0x632d0c
mov dword [esi + 4], 6
jmp 0x4a24b5
xor esi, esi
push 0x691fe4
push 0x68f390
mov ecx, esi
mov byte [esp + 0x3f0], bl
call fcn.0048cd10
lea eax, [esp + 0x24]
mov ecx, esi
push eax
push 0x690748
call fcn.0048cdb0
mov ecx, dword [esp + 0x10]
push ecx
push 0x68f47c
mov ecx, esi
call fcn.0048ccc0
push 0x20
call fcn.00486570
mov edi, eax
add esp, 4
mov dword [esp + 0x20], edi
cmp edi, ebx
je 0x4a2531
mov dword [edi], 0x632d10
mov dword [edi + 8], ebx
lea ecx, [edi + 0xc]
push 4
mov byte [esp + 0x3ec], 0x13
call fcn.0048dba0
mov dword [edi], 0x632d08
mov dword [edi + 4], 5
mov dword [esp + 0x10], edi
jmp 0x4a2535
mov dword [esp + 0x10], ebx
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x50]
mov byte [esp + 0x3e8], bl
mov dword [esp + 0x14], eax
lea edi, [edx + 0xc]
mov dword [esp + 0x20], 4
push 0x14
call fcn.00486570
add esp, 4
mov dword [esp + 0x34], eax
cmp eax, ebx
mov byte [esp + 0x3e8], 0x14
je 0x4a2581
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov ecx, eax
push edx
call fcn.0048b980
mov dword [esp + 0x34], eax
jmp 0x4a2585
mov dword [esp + 0x34], ebx
mov ebp, dword [edi + 4]
push 0xffffffffffffffff
mov ecx, edi
mov byte [esp + 0x3ec], bl
lea eax, [ebp + 1]
push eax
call fcn.0048dbd0
mov ecx, dword [edi]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
mov dword [ecx + ebp*4], edx
mov ecx, dword [esp + 0x14]
add ecx, 4
dec eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], eax
jne 0x4a2553
mov eax, dword [esp + 0x10]
mov ecx, esi
push eax
push 0x69bf0c
call fcn.0048cbc0
mov ecx, dword [esp + 0x4c]
push ecx
push 0x69bf00
mov ecx, esi
call fcn.0048ccc0
mov edx, dword [esp + 0x48]
mov ecx, esi
push edx
push 0x69bef8
call fcn.0048ccc0
mov eax, dword [esp + 0x40]
mov ecx, esi
push eax
push 0x69bef0
call fcn.0048ccc0
mov ecx, dword [esp + 0x44]
push ecx
push 0x69bee4
mov ecx, esi
call fcn.0048ccc0
push 0x64
push 0x69bedc
mov ecx, esi
call fcn.0048ccc0
mov edx, dword [esp + 0x2c]
push esi
lea edi, [edx + 0x1c]
mov ecx, edi
call fcn.0048eb10
mov ebx, dword [esp + 0x2c]
mov esi, dword [esi + 8]
mov eax, ebx
mov ecx, dword [esp + 0x30]
neg eax
sbb eax, eax
push esi
and eax, edi
push eax
push 0x691fe4
call fcn.0048d040
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
mov ecx, dword [esp + 0x28]
push ecx
mov ecx, ebx
call fcn.004a59f0
lea ecx, [esp + 0x24]
mov esi, eax
mov dword [esp + 0x3e8], 0xffffffff
call fcn.00489810
mov eax, esi
mov ecx, dword [esp + 0x3e0]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x3dc
ret 8