Function at 0x4091e0
Capabilities:
Read .ini file

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x41c46e
push eax
mov eax, 0x2214
mov dword fs:[0], esp
call fcn.004126b0
mov eax, dword [esp + 0x2228]
mov edx, dword [esp + 0x2224]
push ebx
push eax
lea ecx, [esp + 0x21c]
push 0x2000
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionA]
mov cl, byte [esp + 0x218]
xor ebx, ebx
lea eax, [esp + 0x218]
cmp cl, bl
mov dword [esp + 8], eax
je 0x409a47
push edi
push esi
push ebp
lea ecx, [esp + 0x124]
lea edx, [esp + 0x24]
push ecx
push edx
push eax
call fcn.00408830
add esp, 0xc
test al, al
je 0x409a22
movsx eax, byte [esp + 0x124]
push eax
call fcn.004115e0
add esp, 4
test eax, eax
je 0x4092e5
lea ecx, [esp + 0x24]
push str.GlobalNets
push ecx
call fcn.00419770
add esp, 8
test eax, eax
je 0x4092e5
lea edx, [esp + 0x24]
push str.Simulator
push edx
call fcn.00419770
add esp, 8
test eax, eax
je 0x4092e5
lea eax, [esp + 0x24]
push str.Editor
push eax
call fcn.00419770
add esp, 8
test eax, eax
je 0x4092e5
lea ecx, [esp + 0x24]
push str.Viewer
push ecx
call fcn.00419770
add esp, 8
test eax, eax
je 0x4092e5
movsx edx, byte [esp + 0x124]
push edx
call fcn.00412c50
add esp, 4
mov byte [esp + 0x124], al
lea eax, [esp + 0x24]
push str.DescendingBus
push eax
call fcn.00419770
add esp, 8
test eax, eax
jne 0x409314
mov al, byte [esp + 0x124]
xor ecx, ecx
cmp al, 0x59
sete cl
mov byte [0x423918], cl
jmp 0x409a22
lea edx, [esp + 0x24]
push str.RetainParentheses
push edx
call fcn.00419770
add esp, 8
test eax, eax
jne 0x409389
mov al, byte [esp + 0x124]
cmp al, 0x5b
mov byte [0x423919], al
jne 0x409346
mov byte [0x42391a], 0x5d
jmp 0x409a22
cmp al, 0x28
jne 0x409356
mov byte [0x42391a], 0x29
jmp 0x409a22
cmp al, 0x3c
jne 0x409366
mov byte [0x42391a], 0x3e
jmp 0x409a22
cmp al, 0x7b
jne 0x409376
mov byte [0x42391a], 0x7d
jmp 0x409a22
mov byte [0x423919], 0x5b
mov byte [0x42391a], 0x5d
jmp 0x409a22
lea eax, [esp + 0x24]
push str.NameBarChar
push eax
call fcn.00419770
add esp, 8
test eax, eax
jne 0x4093ab
mov byte [0x42391b], 0x5f
jmp 0x409a22
lea ecx, [esp + 0x24]
push str.HierarchyChar
push ecx
call fcn.00419770
add esp, 8
test eax, eax
jne 0x4093cd
mov byte [0x42391c], 0x2e
jmp 0x409a22
lea edx, [esp + 0x24]
push str.AttributeCaps
push edx
call fcn.00419770
add esp, 8
test eax, eax
jne 0x4093f8
cmp byte [esp + 0x124], 0x59
sete al
mov byte [0x42391d], al
jmp 0x409a22
lea ecx, [esp + 0x24]
push str.NetNameCaps
push ecx
call fcn.00419770
add esp, 8
test eax, eax
jne 0x409427
mov al, byte [esp + 0x124]
xor edx, edx
cmp al, 0x59
sete dl
mov byte [0x42391e], dl
jmp 0x409a22
lea eax, [esp + 0x24]
push str.FirstCharAlpha
push eax
call fcn.00419770
add esp, 8
test eax, eax
jne 0x409456
mov al, byte [esp + 0x124]
xor ecx, ecx
cmp al, 0x59
sete cl
mov byte [0x42391f], cl
jmp 0x409a22
lea edx, [esp + 0x24]
push str.DefaultPinNameOffset
push edx
call fcn.00419770
add esp, 8
test eax, eax
je 0x4099bc
lea eax, [esp + 0x24]
push str.PinNameOffset
push eax
call fcn.00419770
add esp, 8
test eax, eax
je 0x4099bc
lea ecx, [esp + 0x24]
push str.ShowCrossPageConnects
push ecx
call fcn.00419770
add esp, 8
test eax, eax
jne 0x4094b9
mov al, byte [esp + 0x124]
xor edx, edx
cmp al, 0x59
sete dl
mov byte [0x423922], dl
jmp 0x409a22
lea eax, [esp + 0x24]
push str.ShowSolderDots
push eax
call fcn.00419770
add esp, 8
test eax, eax
jne 0x4094e8
mov al, byte [esp + 0x124]
xor ecx, ecx
cmp al, 0x59
sete cl
mov byte [0x423923], cl
jmp 0x409a22
lea edx, [esp + 0x24]
push str.MarkOpenEnds
push edx
call fcn.00419770
add esp, 8
test eax, eax
jne 0x409513
cmp byte [esp + 0x124], 0x59
sete al
mov byte [0x423924], al
jmp 0x409a22
lea ecx, [esp + 0x24]
push str.ShowBorder
push ecx
call fcn.00419770
add esp, 8
test eax, eax
jne 0x409542
mov al, byte [esp + 0x124]
xor edx, edx
cmp al, 0x59
sete dl
mov byte [0x423925], dl
jmp 0x409a22
lea eax, [esp + 0x24]
push str.RotatePinNumbers
push eax
call fcn.00419770
add esp, 8
test eax, eax
jne 0x409571
mov al, byte [esp + 0x124]
xor ecx, ecx
cmp al, 0x59
sete cl
mov byte [0x423926], cl
jmp 0x409a22
lea edx, [esp + 0x24]
push str.RotateNetNames
push edx
call fcn.00419770
add esp, 8
test eax, eax
jne 0x40959c
cmp byte [esp + 0x124], 0x59
sete al
mov byte [0x423927], al
jmp 0x409a22
lea ecx, [esp + 0x24]
push str.HorzZones
push ecx
call fcn.00419770
add esp, 8
test eax, eax
jne 0x4095e5
lea edx, [esp + 0x1c]
lea eax, [esp + 0x124]
push edx
push 0x41f29c
push eax
call fcn.00411820
add esp, 0xc
test eax, eax
je 0x409a22
mov cx, word [esp + 0x1c]
mov word [0x423928], cx
jmp 0x409a22
lea edx, [esp + 0x24]
push str.VertZones
push edx
call fcn.00419770
add esp, 8
test eax, eax
jne 0x40962e
lea eax, [esp + 0x18]
lea ecx, [esp + 0x124]
push eax
push 0x41f29c
push ecx
call fcn.00411820
add esp, 0xc
test eax, eax
je 0x409a22
mov dx, word [esp + 0x18]
mov word [0x42392a], dx
jmp 0x409a22
lea eax, [esp + 0x24]
push str.AlphaAxis
push eax
call fcn.00419770
add esp, 8
test eax, eax
jne 0x40965d
mov al, byte [esp + 0x124]
xor ecx, ecx
cmp al, 0x48
setne cl
mov byte [0x42392c], cl
jmp 0x409a22
lea edx, [esp + 0x24]
push str.Grid
push edx
call fcn.00419770
add esp, 8
test eax, eax
jne 0x40970d
movsx eax, byte [esp + 0x124]
push eax
xor esi, esi
lea edi, [esp + 0x128]
call fcn.00411610
add esp, 4
test eax, eax
je 0x4096b1
movsx edx, byte [edi]
movsx eax, byte [edi + 1]
inc edi
lea ecx, [esi + esi*4]
push eax
lea esi, [edx + ecx*2 - 0x30]
call fcn.00411610
add esp, 4
test eax, eax
jne 0x409695
lea eax, [esi + esi*4]
lea esi, [eax + eax*4]
mov al, byte [edi]
shl esi, 2
cmp al, 0x2e
jne 0x4096f7
movsx ecx, byte [edi + 1]
push ecx
call fcn.00411610
add esp, 4
test eax, eax
je 0x4096f7
movsx eax, byte [edi + 1]
sub eax, 0x30
lea edx, [eax + eax*4]
movsx eax, byte [edi + 2]
push eax
lea esi, [esi + edx*2]
call fcn.00411610
add esp, 4
test eax, eax
je 0x4096f7
movsx ecx, byte [edi + 2]
lea esi, [esi + ecx - 0x30]
cmp esi, 1
jge 0x409701
mov esi, 0xa
mov word [0x42392e], si
jmp 0x409a22
lea edx, [esp + 0x24]
push str.Units
push edx
call fcn.00419770
add esp, 8
test eax, eax
jne 0x40974f
mov al, byte [esp + 0x124]
cmp al, 0x4d
jne 0x40973c
mov word [0x423930], 2
jmp 0x409a22
xor ecx, ecx
cmp al, 0x43
sete cl
mov word [0x423930], cx
jmp 0x409a22
lea edx, [esp + 0x24]
push str.GlobalNets
push edx
call fcn.00419770
add esp, 8
test eax, eax
jne 0x409848
mov al, byte [esp + 0x124]
lea esi, [esp + 0x124]
cmp al, bl
je 0x409a22
movsx eax, byte [esi]
push eax
call fcn.00411640
add esp, 4
test eax, eax
je 0x4097a1
movsx ecx, byte [esi + 1]
inc esi
push ecx
call fcn.00411640
add esp, 4
test eax, eax
jne 0x40978f
mov al, byte [esi]
mov ebp, esi
cmp al, bl
je 0x4097c2
movsx edx, byte [ebp]
push edx
call fcn.00411640
add esp, 4
test eax, eax
jne 0x4097c2
mov al, byte [ebp + 1]
inc ebp
cmp al, bl
jne 0x4097a9
cmp byte [ebp], bl
je 0x4097cb
mov byte [ebp], bl
inc ebp
mov al, byte [esi]
cmp al, bl
je 0x409836
or edi, 0xffffffff
cmp al, 0x61
jl 0x4097e3
cmp al, 0x7a
jg 0x4097e3
movsx edi, al
sub edi, 0x61
inc esi
cmp byte [esi], bl
je 0x409836
push esi
mov ecx, 0x4238d8
call fcn.0040e410
cmp eax, ebx
je 0x4097fa
mov dword [eax], edi
jmp 0x409836
push 0xc
call fcn.004126a0
add esp, 4
mov dword [esp + 0x20], eax
cmp eax, ebx
mov dword [esp + 0x222c], ebx
je 0x40981e
push edi
push esi
mov ecx, eax
call fcn.0040ed00
jmp 0x409820
xor eax, eax
push eax
mov ecx, 0x4238d8
mov dword [esp + 0x2230], 0xffffffff
call fcn.0040edc0
mov al, byte [ebp]
mov esi, ebp
cmp al, bl
jne 0x40977f
jmp 0x409a22
lea eax, [esp + 0x24]
push str.MasterSymbols
push eax
call fcn.00419770
add esp, 8
test eax, eax
jne 0x409919
mov al, byte [esp + 0x124]
lea ebp, [esp + 0x124]
cmp al, bl
je 0x409a22
movsx ecx, byte [ebp]
push ecx
call fcn.00411640
add esp, 4
test eax, eax
je 0x40989b
movsx edx, byte [ebp + 1]
inc ebp
push edx
call fcn.00411640
add esp, 4
test eax, eax
jne 0x409889
mov al, byte [ebp]
mov edi, ebp
cmp al, bl
je 0x4098bc
movsx eax, byte [edi]
push eax
call fcn.00411640
add esp, 4
test eax, eax
jne 0x4098bc
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x4098a4
cmp byte [edi], bl
je 0x4098c3
mov byte [edi], bl
inc edi
cmp byte [ebp], bl
je 0x409908
mov eax, dword [0x4238ec]
xor esi, esi
cmp eax, ebx
jle 0x4098f5
mov ecx, dword [0x4238e8]
mov edx, dword [ecx + esi*8 + 4]
push edx
push ebp
call fcn.00419770
add esp, 8
test eax, eax
je 0x4098f5
mov eax, dword [0x4238ec]
inc esi
cmp esi, eax
jl 0x4098d3
cmp esi, dword [0x4238ec]
jl 0x409908
push ebp
mov ecx, 0x4238e8
call fcn.0040f530
mov al, byte [edi]
mov ebp, edi
cmp al, bl
jne 0x409878
jmp 0x409a22
lea eax, [esp + 0x24]
push str.Simulator
push eax
call fcn.00419770
add esp, 8
test eax, eax
jne 0x409965
lea ecx, [esp + 0x124]
push ecx
push 0x423228
push str._s_s
push 0x423938
call fcn.00410c20
add esp, 0x10
push str..ini
push 0x423938
call fcn.00406c90
add esp, 8
jmp 0x409a22
lea edx, [esp + 0x24]
push str.Editor
push edx
call fcn.00419770
add esp, 8
test eax, eax
jne 0x409992
lea eax, [esp + 0x124]
mov ecx, 0x423908
push eax
call fcn.0040f1a0
jmp 0x409a22
lea ecx, [esp + 0x24]
push str.Viewer
push ecx
call fcn.00419770
add esp, 8
test eax, eax
jne 0x409a22
lea edx, [esp + 0x124]
mov ecx, 0x423910
push edx
call fcn.0040f1a0
jmp 0x409a22
lea eax, [esp + 0x10]
lea ecx, [esp + 0x124]
push eax
push 0x41f29c
push ecx
call fcn.00411820
add esp, 0xc
test eax, eax
je 0x409a22
lea edx, [esp + 0x24]
push str.PinNameOffset
push edx
call fcn.00419770
add esp, 8
test eax, eax
mov eax, dword [esp + 0x10]
jne 0x409a04
shl eax, 4
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [esp + 0x10], eax
cmp eax, ebx
jge 0x409a0c
xor eax, eax
jmp 0x409a18
cmp eax, 0x80
jl 0x409a1c
mov eax, 0x7f
mov dword [esp + 0x10], eax
mov word [0x423920], ax
mov eax, dword [esp + 0x14]
mov cl, byte [eax]
inc eax
test cl, cl
mov dword [esp + 0x14], eax
je 0x409a3c
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x409a31
mov dword [esp + 0x14], eax
cmp byte [eax], bl
jne 0x409242
pop ebp
pop esi
pop edi
mov ecx, dword [esp + 0x2218]
pop ebx
mov dword fs:[0], ecx
add esp, 0x2220
ret