Function at 0x509520
Capabilities:
Terminate process

Disassembly:
push 0xffffffffffffffff
push 0x59353c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, dword [esp + 0x14]
push ebx
push ebp
push esi
push edi
mov esi, ecx
push eax
push 0x89
mov dword [esp + 0x18], esi
call fcn.00567fdd
xor ebp, ebp
mov dword [esi + 0x60], vtable.CFont.0
mov dword [esp + 0x1c], ebp
mov dword [esi + 0x64], ebp
lea ecx, [esi + 0x84]
mov byte [esp + 0x1c], 1
call fcn.00507550
lea ecx, [esi + 0x98]
call fcn.00507550
lea ecx, [esi + 0xa4]
call fcn.00507550
lea ecx, [esi + 0xb0]
call fcn.0048eec0
push ebp
lea ecx, [esi + 0x1cc]
mov byte [esp + 0x20], 2
call fcn.004ec4b0
lea edi, [esi + 0x284]
mov dword [edi], method.CGopherLocator.virtual_0
mov dword [edi + 4], ebp
mov dword [edi + 0x10], ebp
mov dword [edi + 0xc], ebp
mov dword [edi + 8], ebp
lea ebx, [esi + 0x298]
mov dword [ebx], method.CGopherLocator.virtual_0
mov dword [ebx + 4], ebp
mov dword [ebx + 0x10], ebp
mov dword [ebx + 0xc], ebp
mov dword [ebx + 8], ebp
mov dword [esi + method.CGopherLocator.virtual_0], 0x5999c4
mov dword [esi + 0x2b0], ebp
mov dword [esi + 0x2bc], ebp
mov dword [esi + 0x2b8], ebp
mov dword [esi + 0x2b4], ebp
push ebp
lea ecx, [esi + 0x2c4]
mov byte [esp + 0x20], 6
call fcn.004ff210
mov ecx, dword [0x5f9f88]
mov dword [esi + 0x4a0], ecx
mov dword [esi + 0x4a4], 0x59d164
mov dword [esi + 0x4a8], ebp
mov dword [esi + 0x4b4], ebp
mov dword [esi + 0x4b0], ebp
mov dword [esi + 0x4ac], ebp
lea ecx, [esi + 0x4b8]
push 0xa
mov byte [esp + 0x20], 9
call fcn.0056716a
lea ecx, [esi + 0x4d4]
mov byte [esp + 0x1c], 0xa
call fcn.00496b80
mov dword [esi + 0x584], 0x59d170
mov dword [esi + 0x588], ebp
mov dword [esi + 0x594], ebp
mov dword [esi + 0x590], ebp
mov dword [esi + 0x58c], ebp
mov byte [esp + 0x1c], 0xc
lea ecx, [esi + 0x598]
call fcn.004a2f40
lea ecx, [esi + 0x6b8]
mov byte [esp + 0x1c], 0xd
call fcn.004bd580
lea ecx, [esi + 0x718]
mov byte [esp + 0x1c], 0xe
call fcn.004bd580
lea ecx, [esi + 0x778]
mov byte [esp + 0x1c], 0xf
call fcn.004bd580
lea ecx, [esi + 0x7d8]
mov byte [esp + 0x1c], 0x10
call fcn.004bd580
lea ecx, [esi + 0x838]
mov byte [esp + 0x1c], 0x11
call fcn.004bd580
lea ecx, [esi + 0x898]
mov byte [esp + 0x1c], 0x12
call fcn.004bd580
lea ecx, [esi + 0x8f8]
mov byte [esp + 0x1c], 0x13
call fcn.004bd580
lea ecx, [esi + 0x958]
mov byte [esp + 0x1c], 0x14
call fcn.004bd580
lea ecx, [esi + 0x9b8]
mov byte [esp + 0x1c], 0x15
call fcn.00487040
mov edx, dword [0x5f9f88]
mov dword [esi + 0xa94], edx
lea ecx, [esi + 0xa9c]
mov byte [esp + 0x1c], 0x17
call fcn.00565883
push 0xffffffffffffffff
push ebp
mov ecx, edi
mov byte [esp + 0x24], 0x18
mov dword [esi], method.CDialog.virtual_0
call fcn.004ec340
push 0xffffffffffffffff
push ebp
mov ecx, ebx
call fcn.004ec340
push 0xffffffffffffffff
push ebp
lea ecx, [esi + 0x2ac]
call fcn.004ec340
mov dword [esi + 0x1c4], ebp
mov dword [esi + 0x1c8], ebp
call fcn.00578d59
mov eax, dword [eax + 4]
mov ebx, 1
push 0x5bf4
mov edi, dword [eax + 0x1b8]
mov dword [esi + 0xb0], ebx
mov dword [esi + 0xb4], ebx
call fcn.00567b03
add esp, 4
mov dword [esp + 0x24], eax
cmp eax, ebp
mov byte [esp + 0x1c], 0x19
je 0x5097b5
mov ecx, dword [esi + 0xcc]
push ecx
push ebp
mov ecx, eax
call fcn.004072f0
jmp 0x5097b7
xor eax, eax
mov byte [esp + 0x1c], 0x18
mov dword [esi + 0x74], eax
call fcn.00578d59
mov eax, dword [eax + 4]
mov edx, dword [esi + 0x74]
mov dword [eax + 0x13c], edx
mov ecx, dword [esi + 0x74]
call fcn.00407a50
cmp edi, 0xa
jl 0x5097ed
cmp edi, 0xbfff
jge 0x5097ed
mov dword [esi + 0xcc], edi
jmp 0x5097fc
mov eax, dword [esi + 0x74]
mov ecx, dword [eax + 0x1f8]
mov dword [esi + 0xcc], ecx
mov eax, dword [esi + 0xcc]
cmp eax, 0xa
jl 0x50980e
cmp eax, 0xbfff
jl 0x509818
mov dword [esi + 0xcc], 0x979
mov edx, dword [esi + 0x74]
mov eax, dword [esi + 0xcc]
push 0xa4
mov dword [edx + 0x1f8], eax
call fcn.00567b03
add esp, 4
mov dword [esp + 0x24], eax
cmp eax, ebp
mov byte [esp + 0x1c], 0x1a
je 0x509856
mov ecx, dword [esi + 0x74]
mov edx, dword [esi + 0xcc]
push ecx
push edx
push ebp
mov ecx, eax
call fcn.0048f2f0
jmp 0x509858
xor eax, eax
mov dword [esi + 0x68], eax
mov ecx, dword [eax + 8]
cmp ecx, ebp
mov byte [esp + 0x1c], 0x18
jne 0x509874
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_ExitProcess]
call fcn.00578d59
mov eax, dword [eax + 4]
cmp dword [eax + 0x1e4], ebp
jle 0x50988c
mov ecx, dword [esi + 0x68]
call fcn.00490b70
push 4
call fcn.00567b03
add esp, 4
mov dword [esp + 0x24], eax
cmp eax, ebp
mov byte [esp + 0x1c], 0x1b
je 0x5098b0
mov ecx, dword [esi + 0x74]
push ecx
mov ecx, eax
call fcn.0048f250
jmp 0x5098b2
xor eax, eax
push 0x14
mov byte [esp + 0x20], 0x18
mov dword [esi + 0x6c], eax
call fcn.00567b03
add esp, 4
mov dword [esp + 0x24], eax
cmp eax, ebp
mov byte [esp + 0x1c], 0x1c
je 0x5098de
mov edx, dword [esi + 0x74]
mov ecx, eax
push edx
call fcn.00491320
jmp 0x5098e0
xor eax, eax
push 0x1c
mov byte [esp + 0x20], 0x18
mov dword [esi + 0x70], eax
call fcn.00567b03
add esp, 4
mov dword [esp + 0x24], eax
cmp eax, ebp
mov byte [esp + 0x1c], 0x1d
je 0x50990c
push 0x10
push 0x64
mov ecx, eax
call fcn.00507600
jmp 0x50990e
xor eax, eax
mov byte [esp + 0x1c], 0x18
mov dword [esi + 0x78], eax
call fcn.00578d59
mov ecx, dword [esi + 0x74]
mov eax, dword [eax + 4]
mov edx, dword [esi + 0x70]
push ecx
push edx
mov ecx, eax
call fcn.004726a0
push 0x5e76ec
push 0x20
push ebp
push ebp
push ebp
push ebx
push ebp
push ebp
push ebp
push 0x190
push ebp
mov ecx, 0x30
xor eax, eax
lea edi, [esi + 0xf8]
push ebp
mov dword [esi + 0xd4], ebp
mov dword [esi + 0xd8], ebp
push ebp
rep stosd dword es:[edi], eax
push 0xc
mov dword [esi + 0x1b8], ebp
mov dword [esi + 0xdc], ebp
mov dword [esi + 0xe0], ebp
mov dword [esi + 0xe4], ebp
mov dword [esi + 0xec], ebp
mov dword [esi + 0xf0], ebx
mov dword [esi + 0x1bc], ebp
call dword [sym.imp.GDI32.dll_CreateFontA]
push eax
lea ecx, [esi + 0x60]
call fcn.0056fb13
call fcn.00578d59
mov eax, dword [eax + 4]
add eax, 0xf8
mov dword [esi + 0x90], eax
call fcn.00578d59
mov ecx, dword [eax + 4]
push 0x5fe7d8
add ecx, 0xf8
mov dword [esi + 0x1c0], ebp
mov dword [esi + 0x94], ecx
lea ecx, [esi + 0x4a0]
mov dword [esi + 0xa98], ebp
mov dword [esi + 0x2c0], ebp
mov dword [esi + 0x498], ebp
mov dword [esi + 0x49c], ebp
mov dword [esi + 0x490], ebp
mov dword [esi + 0x494], ebp
call fcn.00568895
mov eax, dword [esi + 0x4a8]
cmp eax, ebp
je 0x509a13
push eax
call fcn.00567b2c
add esp, 4
mov dword [esi + 0x4a8], ebp
push ebx
mov dword [esi + 0x4b0], ebp
mov dword [esi + 0x4ac], ebp
push 0xc8
lea ecx, [esi + 0x4b8]
mov dword [esi + 0x80], ebp
mov dword [esi + 0xaf4], ebp
call fcn.0056754b
mov dword [esi + 0xa90], ebp
mov dword [esi + 0x57c], ebx
mov dword [esi + 0x580], ebp
mov ecx, dword [esp + 0x14]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x10
ret 4