Function at 0x41f6a0
Capabilities:
Enumerate pe sections
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
test edx, edx
je 0x4207b2
mov edi, dword [edx + 0x24]
test edi, edi
mov dword [esp + 0x48], edi
je 0x4207b2
mov ebp, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x4c], edx
movzx eax, word [eax + 0x20]
test ax, ax
jne 0x42093f
mov eax, dword [esp + 0x48]
movzx eax, word [eax + 0x22]
test ax, ax
jne 0x420898
mov eax, dword [esp + 0x48]
cmp word [eax + 0x24], 0
mov edi, dword [eax + 0x34]
mov dword [esp + 0x3c], edi
je 0x420fa9
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x3c]
mov edi, dword [eax + 8]
movzx eax, word [eax + 4]
mov dword [esp + 0x38], edi
test eax, eax
mov dword [esp + 0x30], eax
je 0x420795
mov ebx, edi
xor edi, edi
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], edi
xor esi, esi
mov dword [esp + 4], str._nstatic_XkbPointRec_pts_sh_02do_02d____n
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
cmp word [ebx], 0
jne 0x41f79b
jmp 0x41f7e2
mov dword [esp + 8], 3
mov dword [esp + 4], 1
mov dword [esp], 0x43f252
call sub.msvcrt.dll_fwrite
mov eax, dword [ebx + 8]
lea eax, [eax + esi*4]
add esi, 1
movsx edx, word [eax + 2]
mov dword [esp + 0xc], edx
movsx eax, word [eax]
mov dword [esp + 4], str.__4d___4d_
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
movzx eax, word [ebx]
cmp esi, eax
jge 0x41f7e2
test esi, esi
je 0x41f7d0
test esi, 3
mov dword [esp + 0xc], ebp
je 0x41f750
mov dword [esp + 8], 2
mov dword [esp + 4], 1
mov dword [esp], 0x43ec21
call sub.msvcrt.dll_fwrite
jmp 0x41f76c
mov dword [esp + 4], ebp
mov dword [esp], 9
call sub.msvcrt.dll_fputc
jmp 0x41f76c
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 3
add edi, 1
mov dword [esp + 4], 1
mov dword [esp], 0x43f24e
add ebx, 0xc
call sub.msvcrt.dll_fwrite
cmp dword [esp + 0x30], edi
jne 0x41f723
mov esi, dword [esp + 0x34]
mov dword [esp + 4], str._n_nstatic_XkbOutlineRec_ol_sh_02d____n
xor ebx, ebx
mov dword [esp], ebp
mov dword [esp + 8], esi
call sub.msvcrt.dll_fprintf
mov edi, dword [esp + 0x38]
mov dword [esp + 0x38], esi
add edi, 4
mov esi, esi
lea edi, [edi]
movzx ecx, word [edi]
movzx eax, word [edi - 4]
test ebx, ebx
mov esi, 0x43eb02
mov edx, 0x43ed5f
mov dword [esp + 0x1c], ebx
cmove edx, esi
mov esi, dword [esp + 0x38]
mov dword [esp + 4], str._s_t__d__t_d__t_d__tpts_sh_02do_02d_t
mov dword [esp + 8], edx
mov dword [esp], ebp
add ebx, 1
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
add edi, 0xc
mov dword [esp + 0x18], esi
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fprintf
cmp dword [esp + 0x30], ebx
jne 0x41f840
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], str._n__n
call sub.msvcrt.dll_fwrite
mov eax, dword [esp + 0x48]
add dword [esp + 0x34], 1
mov edi, dword [esp + 0x34]
add dword [esp + 0x3c], 0x1c
movzx eax, word [eax + 0x24]
cmp edi, eax
jl 0x41f704
mov dword [esp + 8], eax
mov dword [esp + 4], str._n_nstatic_XkbShapeRec_g_shapes__d___n
xor ebx, ebx
mov dword [esp], ebp
mov edi, 0x43ed5f
call sub.msvcrt.dll_fprintf
mov eax, dword [esp + 0x48]
cmp word [eax + 0x24], 0
mov esi, dword [eax + 0x34]
jne 0x41f999
jmp 0x41fa22
sub eax, dword [esi + 8]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.ol_sh_02d__2d___t
mov dword [esp], ebp
sar eax, 2
imul eax, eax, 0xaaaaaaab
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [esi + 0x10]
test eax, eax
je 0x41f9fd
sub eax, dword [esi + 8]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.ol_sh_02d__2d___n
mov dword [esp], ebp
sar eax, 2
imul eax, eax, 0xaaaaaaab
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fprintf
movsx eax, word [esi + 0x1a]
add ebx, 1
add esi, 0x1c
mov dword [esp + 0x14], eax
movsx eax, word [esi - 4]
mov dword [esp + 0x10], eax
movsx eax, word [esi - 6]
mov dword [esp + 0xc], eax
movsx eax, word [esi - 8]
mov dword [esp + 4], str._t_t_t_t_t__4d___4d___4d___4d__
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [esp + 0x48]
movzx eax, word [eax + 0x24]
cmp ebx, eax
jge 0x41fa22
movzx eax, word [esi + 4]
test ebx, ebx
mov ecx, 0x43eb02
cmovne ecx, edi
mov dword [esp + 0x14], ebx
mov dword [esp + 4], str._s_t_None___3d___3d__ol_sh_02d_
mov dword [esp + 8], ecx
mov dword [esp], ebp
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x41f900
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0xe
mov dword [esp + 4], 1
mov dword [esp], str.________NULL__t
call sub.msvcrt.dll_fwrite
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x41f92f
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0xe
mov dword [esp + 4], 1
mov dword [esp], str.________NULL__n
call sub.msvcrt.dll_fwrite
jmp 0x41f953
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], str._n__n
call sub.msvcrt.dll_fwrite
mov eax, dword [esp + 0x48]
mov dword [esp + 0x3c], 0
cmp word [eax + 0x26], 0
mov edi, dword [eax + 0x38]
mov dword [esp + 0x44], edi
je 0x420fb0
mov eax, dword [esp + 0x44]
mov dword [esp + 0x40], 0
cmp word [eax + 0x10], 0
mov edi, dword [eax + 0x1c]
mov dword [esp + 0x38], edi
je 0x41fb73
mov dword [esp + 0x34], ebp
mov eax, dword [esp + 0x40]
mov dword [esp + 4], str.static_XkbKeyRec_keys_s_02dr_02d____n
xor esi, esi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [esp + 0x38]
cmp word [eax + 4], 0
mov ebx, dword [eax + 0xc]
je 0x41fb2d
lea esi, [esi]
lea edi, [edi]
movzx ecx, byte [ebx + 7]
movzx ebp, byte [ebx + 6]
movsx edi, word [ebx + 4]
mov dword [esp], ebx
mov dword [esp + 4], 1
mov dword [esp + 0x30], ecx
call fcn.00428730
test esi, esi
mov ecx, 0x43eb02
mov edx, 0x43ed5f
cmove edx, ecx
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], ebp
add esi, 1
mov dword [esp + 0x10], edi
mov dword [esp + 8], edx
add ebx, 8
mov dword [esp + 0x18], ecx
mov dword [esp + 4], str._s_t____s____t_4d___4d___4d_
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [esp + 0x38]
movzx eax, word [eax + 4]
cmp esi, eax
jl 0x41fac0
mov eax, dword [esp + 0x34]
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], str._n__n
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
mov eax, dword [esp + 0x44]
add dword [esp + 0x40], 1
mov edi, dword [esp + 0x40]
add dword [esp + 0x38], 0x18
movzx eax, word [eax + 0x10]
cmp edi, eax
jl 0x41fa82
mov ebp, dword [esp + 0x34]
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], str.static_XkbRowRec_rows_s_02d____n
xor edi, edi
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [esp + 0x44]
cmp word [eax + 0x10], 0
mov ebx, dword [eax + 0x1c]
je 0x41fc46
nop
mov edx, dword [ebx + 8]
movsx ecx, word [ebx]
xor eax, eax
movsx esi, word [ebx + 2]
test edx, edx
mov edx, 0x43ed5f
setne al
test edi, edi
mov dword [esp + 0x30], eax
movzx eax, word [ebx + 4]
mov dword [esp + 0xc], ecx
mov ecx, 0x43eb02
mov dword [esp + 0x24], edi
cmove edx, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x10], esi
mov dword [esp + 8], edx
mov dword [esp + 4], str._s_t__4d___4d___2d___2d___1d__keys_s_02dr_02d_
add edi, 1
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
add ebx, 0x18
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp], ebp
mov dword [esp + 0x1c], ecx
call sub.msvcrt.dll_fprintf
movsx eax, word [ebx - 2]
mov dword [esp + 0x14], eax
movsx eax, word [ebx - 4]
mov dword [esp + 0x10], eax
movsx eax, word [ebx - 6]
mov dword [esp + 0xc], eax
movsx eax, word [ebx - 8]
mov dword [esp + 4], str.___4d___4d___4d___4d__
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [esp + 0x44]
movzx eax, word [eax + 0x10]
cmp edi, eax
jl 0x41fba0
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], str._n__n
call sub.msvcrt.dll_fwrite
mov eax, dword [esp + 0x44]
cmp word [eax + 0x14], 0
jne 0x420ae8
mov eax, dword [esp + 0x48]
add dword [esp + 0x3c], 1
mov edi, dword [esp + 0x3c]
add dword [esp + 0x44], 0x30
movzx eax, word [eax + 0x26]
cmp edi, eax
jl 0x41fa60
mov dword [esp + 8], eax
mov dword [esp + 4], str._nstatic_XkbSectionRec_g_sections__d___n
mov dword [esp], ebp
call sub.msvcrt.dll_fprintf
mov eax, dword [esp + 0x48]
cmp word [eax + 0x26], 0
mov ebx, dword [eax + 0x38]
je 0x41ff56
xor esi, esi
mov edi, eax
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x19
mov dword [esp + 4], 1
mov dword [esp], str._t_n_t____None____name___n
call sub.msvcrt.dll_fwrite
movzx eax, byte [ebx + 4]
mov dword [esp + 4], str._t_____4d____priority___n
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
movsx eax, word [ebx + 6]
mov dword [esp + 4], str._t_____4d____top___n
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
movsx eax, word [ebx + 8]
mov dword [esp + 4], str._t_____4d____left___n
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
movzx eax, word [ebx + 0xa]
mov dword [esp + 4], str._t_____4d____width___n
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
movzx eax, word [ebx + 0xc]
mov dword [esp + 4], str._t_____4d____height___n
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
movsx eax, word [ebx + 0xe]
mov dword [esp + 4], str._t_____4d____angle___n
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
movzx eax, word [ebx + 0x10]
mov dword [esp + 4], str._t_____4d____num_rows___n
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
movzx eax, word [ebx + 0x12]
mov dword [esp + 4], str._t_____4d____num_doodads___n
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
movzx eax, word [ebx + 0x14]
mov dword [esp + 4], str._t_____4d____num_overlays___n
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
movzx eax, word [ebx + 0x10]
mov dword [esp + 4], str._t_____4d____sz_rows___n
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
movzx eax, word [ebx + 0x12]
mov dword [esp + 4], str._t_____4d____sz_doodads___n
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
movzx eax, word [ebx + 0x14]
mov dword [esp + 4], str._t_____4d____sz_overlays___n
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
cmp word [ebx + 0x10], 0
je 0x41fee1
mov dword [esp + 8], esi
mov dword [esp + 4], str._t____rows_s_02d__n
mov dword [esp], ebp
call sub.msvcrt.dll_fprintf
cmp word [ebx + 0x12], 0
je 0x41ff0c
mov dword [esp + 8], esi
mov dword [esp + 4], str._t____doodads_s_02d__n
mov dword [esp], ebp
call sub.msvcrt.dll_fprintf
movsx eax, word [ebx + 0x2a]
mov dword [esp + 0x14], eax
movsx eax, word [ebx + 0x28]
mov dword [esp + 0x10], eax
movsx eax, word [ebx + 0x26]
mov dword [esp + 0xc], eax
movsx eax, word [ebx + 0x24]
mov dword [esp + 4], str._t______4d___4d___4d___4d_____bounds___n
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
cmp word [ebx + 0x14], 0
je 0x41ff31
mov dword [esp + 8], esi
mov dword [esp + 4], str._t____overlays_s_02d_n
mov dword [esp], ebp
call sub.msvcrt.dll_fprintf
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 2
add esi, 1
mov dword [esp + 4], 1
mov dword [esp], 0x43f5e3
add ebx, 0x30
call sub.msvcrt.dll_fwrite
movzx eax, word [edi + 0x26]
cmp esi, eax
jge 0x41ff56
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 2
mov dword [esp + 4], 1
mov dword [esp], 0x43ed5f
call sub.msvcrt.dll_fwrite
jmp 0x41fcbd
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x16
mov dword [esp + 4], 1
mov dword [esp], str._t____NULL____rows___n
call sub.msvcrt.dll_fwrite
cmp word [ebx + 0x12], 0
jne 0x41fe27
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x19
mov dword [esp + 4], 1
mov dword [esp], str._t____NULL____doodads___n
call sub.msvcrt.dll_fwrite
jmp 0x41fe3b
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x19
mov dword [esp + 4], 1
mov dword [esp], str._t____NULL___overlays___n
call sub.msvcrt.dll_fwrite
jmp 0x41fe8a
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 4
xor esi, esi
mov dword [esp + 4], 1
mov dword [esp], str._n__n
call sub.msvcrt.dll_fwrite
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0xd
mov dword [esp + 4], 1
mov dword [esp], str._nstatic_Bool_n
call sub.msvcrt.dll_fwrite
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x2f
mov dword [esp + 4], 1
mov dword [esp], str._InitSections_DPYTYPE_dpy_XkbGeometryPtr_geom__n
call sub.msvcrt.dll_fwrite
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x1b
mov dword [esp + 4], 1
mov dword [esp], str._nXkbSectionPtr_tsections__n_n
call sub.msvcrt.dll_fwrite
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x1e
mov dword [esp + 4], 1
mov dword [esp], str.____sections_geom__sections__n
call sub.msvcrt.dll_fwrite
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x48]
cmp word [eax + 0x26], 0
mov ebx, dword [eax + 0x38]
jne 0x420025
jmp 0x420071
cmp word [ebx + 0x14], 0
jne 0x42004b
movzx eax, word [edi + 0x26]
add esi, 1
add ebx, 0x30
cmp esi, eax
jge 0x420071
cmp word [ebx + 0x12], 0
je 0x420010
mov dword [esp + 0xc], esi
mov dword [esp + 8], esi
mov dword [esp + 4], str._____InitS_02dDoodads_dpy_geom_sections__d____n
mov dword [esp], ebp
call sub.msvcrt.dll_fprintf
cmp word [ebx + 0x14], 0
je 0x420017
mov dword [esp + 0xc], esi
mov dword [esp + 8], esi
add esi, 1
mov dword [esp + 4], str._____InitS_02dOverlays_dpy_geom_sections__d____n
mov dword [esp], ebp
add ebx, 0x30
call sub.msvcrt.dll_fprintf
movzx eax, word [edi + 0x26]
cmp esi, eax
jl 0x420025
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 2
mov dword [esp + 4], 1
mov dword [esp], 0x43eeeb
call sub.msvcrt.dll_fwrite
mov eax, dword [esp + 0x4c]
mov edi, dword [eax]
mov eax, dword [esp + 0x48]
movzx eax, word [eax + 0x28]
test ax, ax
jne 0x420a77
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0xc
xor ebx, ebx
mov dword [esp + 4], 1
mov dword [esp], str.static_void_n
call sub.msvcrt.dll_fwrite
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x32
mov dword [esp + 4], 1
mov dword [esp], str._InitGeomDoodads_DPYTYPE_dpy_XkbGeometryPtr_geom__n
call sub.msvcrt.dll_fwrite
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 2
mov dword [esp + 4], 1
mov dword [esp], 0x43eeb0
call sub.msvcrt.dll_fwrite
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x20
mov dword [esp + 4], 1
mov dword [esp], str.register_XkbDoodadPtr_doodads__n_n
call sub.msvcrt.dll_fwrite
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x1c
mov dword [esp + 4], 1
mov dword [esp], str.____doodads_geom__doodads__n
call sub.msvcrt.dll_fwrite
mov eax, dword [esp + 0x48]
movzx ecx, word [eax + 0x28]
mov esi, dword [eax + 0x3c]
test ecx, ecx
mov dword [esp + 0x30], ecx
je 0x42030c
mov dword [esp + 8], 1
mov eax, dword [esi]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.004295c0
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.____doodads__d_.any.name_GET_ATOM_dpy___s____n
mov dword [esp], ebp
call sub.msvcrt.dll_fprintf
mov dword [esp + 4], 1
movzx eax, byte [esi + 4]
mov dword [esp], eax
call fcn.004297c0
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.____doodads__d_.any.type__s__n
mov dword [esp], ebp
call sub.msvcrt.dll_fprintf
movzx eax, byte [esi + 5]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.____doodads__d_.any.priority__d__n
mov dword [esp], ebp
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fprintf
movsx eax, word [esi + 6]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.____doodads__d_.any.top__d__n
mov dword [esp], ebp
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fprintf
movsx eax, word [esi + 8]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.____doodads__d_.any.left__d__n
mov dword [esp], ebp
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fprintf
movsx eax, word [esi + 0xa]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.____doodads__d_.any.angle__d__n
mov dword [esp], ebp
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fprintf
cmp byte [esi + 4], 5
ja case.0x420235.0
movzx eax, byte [esi + 4]
jmp dword [eax*4 + 0x43ffd8]
movzx eax, word [esi + 0xc]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.____doodads__d_.logo.color_ndx__d__n
mov dword [esp], ebp
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fprintf
movzx eax, word [esi + 0xe]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.____doodads__d_.logo.shape_ndx__d__n
mov dword [esp], ebp
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fprintf
mov dword [esp + 4], 1
mov eax, dword [esi + 0x10]
mov dword [esp], eax
call fcn.00429370
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.____doodads__d_.logo.logo_name___s___n
mov dword [esp], ebp
call sub.msvcrt.dll_fprintf
add ebx, 1
add esi, 0x1c
cmp dword [esp + 0x30], ebx
je 0x42030c
test ebx, ebx
je 0x420161
mov dword [esp + 4], ebp
mov dword [esp], 0xa
call sub.msvcrt.dll_fputc
jmp 0x420161
movzx eax, word [esi + 0xc]
mov dword [esp + 8], ebx
add esi, 0x1c
mov dword [esp + 4], str.____doodads__d_.shape.color_ndx__d__n
mov dword [esp], ebp
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fprintf
movzx eax, word [esi - 0xe]
mov dword [esp + 8], ebx
add ebx, 1
mov dword [esp + 4], str.____doodads__d_.shape.shape_ndx__d__n
mov dword [esp], ebp
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fprintf
cmp dword [esp + 0x30], ebx
jne 0x4202ab
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 2
mov dword [esp + 4], 1
mov dword [esp], 0x43eeeb
call sub.msvcrt.dll_fwrite
mov eax, dword [esp + 0x48]
movzx eax, word [eax + 0x2a]
test ax, ax
jne 0x4207da
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x1f
mov dword [esp + 4], 1
mov dword [esp], str._nstatic_XkbGeometryRec_tgeom__n
call sub.msvcrt.dll_fwrite
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x14
mov dword [esp + 4], 1
mov dword [esp], str._tNone__t_t_t__name___n
call sub.msvcrt.dll_fwrite
mov edi, dword [esp + 0x48]
movzx eax, word [edi + 6]
mov dword [esp + 0xc], eax
movzx eax, word [edi + 4]
mov dword [esp + 4], str._t_d___d__t_t__width__height___n
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [edi + 8]
test eax, eax
je 0x4209f4
mov dword [esp + 4], 1
mov dword [esp], eax
call fcn.00429370
mov dword [esp + 4], str._t__s____label_font___n
mov dword [esp + 8], eax
mov dword [esp], ebp
call sub.msvcrt.dll_fprintf
mov edi, dword [esp + 0x48]
mov eax, dword [edi + 0xc]
test eax, eax
je 0x420a23
sub eax, dword [edi + 0x30]
mov dword [esp + 4], str._tg_colors__d___t_t__label_color___n
mov dword [esp], ebp
sar eax, 3
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
mov edi, dword [esp + 0x48]
mov eax, dword [edi + 0x10]
test eax, eax
je 0x420a52
sub eax, dword [edi + 0x30]
mov dword [esp + 4], str._tg_colors__d___t_t__base_color___n
mov dword [esp], ebp
sar eax, 3
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
mov edi, dword [esp + 0x48]
mov ebx, str.NULL
movzx eax, word [edi + 0x24]
mov dword [esp + 0x10], eax
movzx eax, word [edi + 0x22]
mov dword [esp + 0xc], eax
movzx eax, word [edi + 0x20]
mov dword [esp + 4], str._t_d__t_d__t_d__t___sz:_props__colors__shapes___n
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
movzx eax, word [edi + 0x2a]
mov dword [esp + 0x10], eax
movzx eax, word [edi + 0x28]
mov dword [esp + 0xc], eax
movzx eax, word [edi + 0x26]
mov dword [esp + 4], str._t_d__t_d__t_d__t___sz:_sections__doodads__aliases___n
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
movzx eax, word [edi + 0x24]
mov dword [esp + 0x10], eax
movzx eax, word [edi + 0x22]
mov dword [esp + 0xc], eax
movzx eax, word [edi + 0x20]
mov dword [esp + 4], str._t_d__t_d__t_d__t__num:_props__colors__shapes___n
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
movzx eax, word [edi + 0x2a]
mov dword [esp + 0x10], eax
movzx eax, word [edi + 0x28]
mov dword [esp + 0xc], eax
movzx eax, word [edi + 0x26]
mov dword [esp + 4], str._t_d__t_d__t_d__t__num:_sections__doodads__aliases___n
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
cmp word [edi + 0x24], 0
mov ecx, str.g_shapes
mov edx, str.g_colors
mov eax, str.g_props
cmove ecx, ebx
cmp word [edi + 0x22], 0
cmove edx, ebx
cmp word [edi + 0x20], 0
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 4], str._t_s__t_s__t_s__n
mov dword [esp], ebp
cmove eax, ebx
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
cmp word [edi + 0x2a], 0
mov edx, str.g_aliases
mov eax, str.g_doodads
mov ecx, str.g_sections
cmove edx, ebx
cmp word [edi + 0x28], 0
cmove eax, ebx
cmp word [edi + 0x26], 0
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov dword [esp + 4], str._t_s__t_s__t_s_n
mov dword [esp], ebp
cmovne ebx, ecx
mov dword [esp + 8], ebx
call sub.msvcrt.dll_fprintf
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], 0x43eded
call sub.msvcrt.dll_fwrite
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0xc
mov dword [esp + 4], 1
mov dword [esp], str.static_Bool_n
call sub.msvcrt.dll_fwrite
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x2e
mov dword [esp + 4], 1
mov dword [esp], str._InitHdrGeom_DPYTYPE_dpy_XkbGeometryPtr_geom__n
call sub.msvcrt.dll_fwrite
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 2
mov dword [esp + 4], 1
mov dword [esp], 0x43eeb0
call sub.msvcrt.dll_fwrite
mov eax, dword [edi]
test eax, eax
jne 0x420ab5
mov eax, dword [esp + 0x48]
xor ebx, ebx
cmp word [eax + 0x24], 0
je 0x420631
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
mov dword [esp + 8], 1
imul eax, ebx, 0x1c
add eax, dword [esi + 0x34]
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [edi]
mov dword [esp], eax
call fcn.004295c0
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
add ebx, 1
mov dword [esp + 4], str.____geom__shapes__2d_.name_GET_ATOM_dpy___s____n
mov dword [esp], ebp
call sub.msvcrt.dll_fprintf
movzx eax, word [esi + 0x24]
cmp eax, ebx
jg 0x4205f0
mov eax, dword [esp + 0x48]
cmp word [eax + 0x28], 0
jne 0x420a90
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x1d
mov dword [esp + 4], 1
mov dword [esp], str._____InitSections_dpy_geom___n
call sub.msvcrt.dll_fwrite
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 3
mov dword [esp + 4], 1
mov dword [esp], 0x43ffab
call sub.msvcrt.dll_fwrite
add esp, 0x5c
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
movzx eax, word [esi + 0xc]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.____doodads__d_.indicator.shape_ndx__d__n
mov dword [esp], ebp
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fprintf
movzx eax, word [esi + 0xe]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.____doodads__d_.indicator.on_color_ndx__d__n
mov dword [esp], ebp
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fprintf
movzx eax, word [esi + 0x10]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.____doodads__d_.indicator.off_color_ndx__d__n
mov dword [esp], ebp
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fprintf
jmp case.0x420235.0
movsx eax, word [esi + 0xc]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.____doodads__d_.text.width__d__n
mov dword [esp], ebp
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fprintf
movsx eax, word [esi + 0xe]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.____doodads__d_.text.height__d__n
mov dword [esp], ebp
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fprintf
movzx eax, word [esi + 0x10]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.____doodads__d_.text.color_ndx__d__n
mov dword [esp], ebp
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fprintf
mov dword [esp + 4], 1
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call fcn.00429370
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.____doodads__d_.text.text___s___n
mov dword [esp], ebp
call sub.msvcrt.dll_fprintf
mov dword [esp + 4], 1
mov eax, dword [esi + 0x18]
mov dword [esp], eax
call fcn.00429370
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.____doodads__d_.text.font___s___n
mov dword [esp], ebp
call sub.msvcrt.dll_fprintf
jmp case.0x420235.0
mov eax, dword [esp + 0x34]
mov dword [esp + 4], str._n_nstatic_XkbOutlineRec_ol_sh_02d____n
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
jmp 0x41f88e
mov dword [0x44c348], 9
mov dword [0x44b754], 0x43f19c
xor eax, eax
mov dword [0x44c344], 0
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 8], eax
mov dword [esp + 4], str._nstatic_XkbKeyAliasRec_g_aliases__d___n
xor ebx, ebx
mov dword [esp], ebp
call sub.msvcrt.dll_fprintf
mov eax, dword [esp + 0x48]
cmp word [eax + 0x2a], 0
je 0x420873
mov edi, dword [esp + 0x48]
mov dword [esp + 4], 1
lea esi, [ebx*8]
mov ecx, dword [edi + 0x40]
add ecx, esi
mov eax, ecx
add eax, 4
mov dword [esp], eax
call fcn.00428730
mov edi, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], 1
add esi, dword [eax + 0x40]
mov dword [esp], esi
mov esi, 0x43eb02
call fcn.00428730
test ebx, ebx
mov ecx, 0x43ed5f
mov dword [esp + 0x10], edi
cmove ecx, esi
mov dword [esp + 0xc], eax
mov dword [esp + 4], str._s_t_t__s_____s__t
mov dword [esp + 8], ecx
mov dword [esp], ebp
add ebx, 1
call sub.msvcrt.dll_fprintf
mov eax, dword [esp + 0x48]
movzx eax, word [eax + 0x2a]
cmp ebx, eax
jl 0x4207fb
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], str._n__n
call sub.msvcrt.dll_fwrite
jmp 0x42033d
mov dword [esp + 8], eax
mov dword [esp + 4], str._nstatic_XkbColorRec_g_colors__d___n
xor edi, edi
mov dword [esp], ebp
mov ebx, 0x43eb02
mov esi, 0x43ed5f
call sub.msvcrt.dll_fprintf
mov eax, dword [esp + 0x48]
cmp word [eax + 0x22], 0
je 0x42091a
mov eax, dword [esp + 0x48]
mov dword [esp + 4], 1
mov eax, dword [eax + 0x30]
mov eax, dword [eax + edi*8 + 4]
mov dword [esp], eax
call fcn.00429370
mov ecx, dword [esp + 0x48]
test edi, edi
mov ecx, dword [ecx + 0x30]
mov edx, dword [ecx + edi*8]
mov ecx, esi
mov dword [esp + 0x10], eax
cmove ecx, ebx
mov dword [esp + 4], str._s_t_t_3d____s__t
mov dword [esp], ebp
mov dword [esp + 8], ecx
add edi, 1
mov dword [esp + 0xc], edx
call sub.msvcrt.dll_fprintf
mov eax, dword [esp + 0x48]
movzx eax, word [eax + 0x22]
cmp edi, eax
jl 0x4208c3
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], str._n__n
call sub.msvcrt.dll_fwrite
jmp 0x41f6e6
mov dword [esp + 8], eax
mov dword [esp + 4], str._nstatic_XkbPropertyRec_g_props__d___n
xor ebx, ebx
mov dword [esp], ebp
mov edi, 0x43eb02
call sub.msvcrt.dll_fprintf
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x48]
cmp word [eax + 0x20], 0
je 0x4209cf
mov dword [esp + 4], 1
mov eax, dword [esi + 0x2c]
mov eax, dword [eax + ebx*8 + 4]
mov dword [esp], eax
call fcn.00429370
mov dword [esp + 4], 1
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x2c]
mov eax, dword [eax + ebx*8]
mov dword [esp], eax
call fcn.00429370
mov ecx, dword [esp + 0x30]
test ebx, ebx
mov edx, 0x43ed5f
cmove edx, edi
mov dword [esp + 0xc], eax
mov dword [esp + 4], str._s_t_t__s_____s__t
mov dword [esp + 8], edx
mov dword [esp], ebp
add ebx, 1
mov dword [esp + 0x10], ecx
call sub.msvcrt.dll_fprintf
movzx eax, word [esi + 0x20]
cmp ebx, eax
jl 0x420969
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], str._n__n
call sub.msvcrt.dll_fwrite
jmp 0x41f6d5
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x19
mov dword [esp + 4], 1
mov dword [esp], str._tNULL__t_t__label_font___n
call sub.msvcrt.dll_fwrite
mov edi, dword [esp + 0x48]
mov eax, dword [edi + 0xc]
test eax, eax
jne 0x4203df
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x1b
mov dword [esp + 4], 1
mov dword [esp], str._tNULL__t_t_t__label_color___n
call sub.msvcrt.dll_fwrite
mov edi, dword [esp + 0x48]
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x420408
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x1a
mov dword [esp + 4], 1
mov dword [esp], str._tNULL__t_t_t__base_color___n
call sub.msvcrt.dll_fwrite
jmp 0x420422
mov dword [esp + 8], eax
mov dword [esp + 4], str.static_XkbDoodadRec_g_doodads__d___n
mov dword [esp], ebp
call sub.msvcrt.dll_fprintf
jmp 0x4200a8
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x20
mov dword [esp + 4], 1
mov dword [esp], str._____InitGeomDoodads_dpy_geom___n
call sub.msvcrt.dll_fwrite
jmp 0x420640
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 8], 1
mov eax, dword [eax]
mov dword [esp], eax
call fcn.004295c0
mov dword [esp + 4], str.____geom__name_GET_ATOM_dpy___s____n
mov dword [esp + 8], eax
mov dword [esp], ebp
call sub.msvcrt.dll_fprintf
jmp 0x4205db
mov eax, dword [esp + 0x44]
mov dword [esp + 0x40], 0
mov dword [esp + 0x30], ebp
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x34], 0
cmp word [eax + 8], 0
mov edi, dword [eax + 0xc]
je 0x420c02
lea esi, [esi]
movzx eax, word [edi + 2]
mov dword [esp + 4], str.static_XkbOverlayKeyRec_olkeys_s_02dr_02d__d___n
xor ebx, ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
cmp word [edi + 2], 0
mov esi, dword [edi + 8]
je 0x420bc2
nop
lea esi, [esi]
lea eax, [esi + 4]
mov dword [esp + 4], 1
mov dword [esp], eax
call fcn.00428730
mov dword [esp], esi
mov dword [esp + 4], 1
mov ebp, eax
call fcn.00428730
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x30]
test ebx, ebx
mov ecx, 0x43eb02
mov edx, 0x43ed5f
mov dword [esp + 0x10], ebp
cmove edx, ecx
mov dword [esp + 4], str._s_t___s___t__s__t
add ebx, 1
mov dword [esp + 8], edx
mov dword [esp], eax
add esi, 8
call sub.msvcrt.dll_fprintf
movzx eax, word [edi + 2]
cmp ebx, eax
jl 0x420b60
mov eax, dword [esp + 0x30]
mov dword [esp + 8], 4
add edi, 0xc
mov dword [esp + 4], 1
mov dword [esp], str._n__n
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
mov eax, dword [esp + 0x38]
add dword [esp + 0x34], 1
mov ecx, dword [esp + 0x34]
movzx eax, word [eax + 8]
cmp ecx, eax
jl 0x420b20
mov eax, dword [esp + 0x44]
xor ebx, ebx
movzx eax, word [eax + 0x10]
mov dword [esp + 4], str.static_XkbOverlayRowRec_olrows_s_02d__d___n
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [esp + 0x38]
cmp word [eax + 8], 0
mov esi, dword [eax + 0xc]
je 0x420c92
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0x30]
movzx ecx, word [esi]
movzx eax, word [esi + 2]
test ebx, ebx
mov edx, 0x43ed5f
mov dword [esp + 0x1c], ebx
mov dword [esp + 4], str._s_t__4d___4d___4d__olkeys_s_02dr_02d_
mov dword [esp], ebp
mov dword [esp + 0xc], ecx
mov ecx, 0x43eb02
mov dword [esp + 0x14], eax
cmove edx, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
mov dword [esp + 8], edx
add ebx, 1
add esi, 0xc
mov dword [esp + 0x18], ecx
call sub.msvcrt.dll_fprintf
movzx eax, word [edi + 8]
cmp ebx, eax
jl 0x420c42
mov eax, dword [esp + 0x30]
mov dword [esp + 8], 4
mov dword [esp + 4], 1
mov dword [esp], str._n__n
mov dword [esp + 0xc], eax
call sub.msvcrt.dll_fwrite
mov eax, dword [esp + 0x44]
add dword [esp + 0x40], 1
mov edi, dword [esp + 0x40]
add dword [esp + 0x38], 0x14
movzx eax, word [eax + 0x14]
cmp edi, eax
jl 0x420aff
mov ebp, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], str.static_XkbOverlayRec_overlays_s_02d__d___n
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
mov edi, dword [esp + 0x44]
cmp word [edi + 0x14], 0
mov ebx, dword [edi + 0x2c]
je 0x420e00
xor esi, esi
mov eax, 0x43eb02
mov dword [esp + 8], eax
mov dword [esp + 4], str._s_t_n
add esi, 1
mov dword [esp], ebp
add ebx, 0x14
call sub.msvcrt.dll_fprintf
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x17
mov dword [esp + 4], 1
mov dword [esp], str._t____None___t__name___n
call sub.msvcrt.dll_fwrite
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x1f
mov dword [esp + 4], 1
mov dword [esp], str._t____NULL__t__section_under___n
call sub.msvcrt.dll_fwrite
movzx eax, word [ebx - 0xc]
mov dword [esp + 4], str._t_____4d__t__num_rows___n
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
movzx eax, word [ebx - 0xc]
mov dword [esp + 4], str._t_____4d__t__sz_rows___n
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], str._t____olrows_s_02d__n
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x17
mov dword [esp + 4], 1
mov dword [esp], str._t____NULL_t__bounds___n
call sub.msvcrt.dll_fwrite
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 2
mov dword [esp + 4], 1
mov dword [esp], 0x43f5e3
call sub.msvcrt.dll_fwrite
movzx ecx, word [edi + 0x14]
mov eax, 0x43ed5f
cmp esi, ecx
jl 0x420d0d
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 4
xor ebx, ebx
mov dword [esp + 4], 1
mov dword [esp], str._n__n
call sub.msvcrt.dll_fwrite
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0xc
mov dword [esp + 4], 1
mov dword [esp], str.static_void_n
call sub.msvcrt.dll_fwrite
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], str._InitS_02dOverlay_
mov dword [esp], ebp
mov dword [esp + 8], eax
call sub.msvcrt.dll_fprintf
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x12
mov dword [esp + 4], 1
mov dword [esp], str.____DPYTYPE_t_tdpy__n
call sub.msvcrt.dll_fwrite
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x1a
mov dword [esp + 4], 1
mov dword [esp], str.____XkbGeometryPtr__tgeom__n
call sub.msvcrt.dll_fwrite
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x1c
mov dword [esp + 4], 1
mov dword [esp], str.____XkbSectionPtr__tsection__n
call sub.msvcrt.dll_fwrite
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 2
mov dword [esp + 4], 1
mov dword [esp], 0x43eeb0
call sub.msvcrt.dll_fwrite
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x13
mov dword [esp + 4], 1
mov dword [esp], str.XkbOverlayPtr_tol__n_n
call sub.msvcrt.dll_fwrite
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x1b
mov dword [esp + 4], 1
mov dword [esp], str.____ol_section__overlays__n
call sub.msvcrt.dll_fwrite
mov eax, dword [esp + 0x44]
cmp word [eax + 0x14], 0
mov esi, dword [eax + 0x2c]
mov edi, esi
mov esi, dword [esp + 0x4c]
je 0x420f84
mov dword [esp + 8], 1
mov eax, dword [edi]
add edi, 0x14
mov dword [esp + 4], eax
mov eax, dword [esi]
mov dword [esp], eax
call fcn.004295c0
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.____ol__2d_.name_GET_ATOM_dpy___s____n
mov dword [esp], ebp
call sub.msvcrt.dll_fprintf
mov dword [esp + 8], ebx
mov dword [esp + 4], str.____ol__2d_.section_under_section__n
add ebx, 1
mov dword [esp], ebp
call sub.msvcrt.dll_fprintf
mov eax, dword [esp + 0x44]
movzx eax, word [eax + 0x14]
cmp ebx, eax
jl 0x420f2e
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 2
mov dword [esp + 4], 1
mov dword [esp], 0x43eeeb
call sub.msvcrt.dll_fwrite
jmp 0x41fc75
xor eax, eax
jmp 0x41f8cc
xor eax, eax
jmp 0x41fc93