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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x55c
mov eax, dword [esp + 0x574]
mov ebx, dword [esp + 0x570]
mov esi, dword [esp + 0x578]
mov eax, dword [eax + 8]
mov edx, dword [ebx + 0x18]
mov ecx, esi
mov edi, eax
mov dword [esp + 0x48], eax
lea eax, [esp + 0x68]
call fcn.004086c0
mov eax, dword [edi]
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], ebx
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x68]
mov dword [esp + 0xc], eax
call fcn.0040bab0
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x4c], 0
test ecx, ecx
je 0x40dc63
mov eax, dword [esp + 0x4c]
add esp, 0x55c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [esp + 0x80]
lea eax, [esp + 0x58]
mov dword [esp + 0x64], 0
mov dword [esp + 0x58], 0x3f
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov word [esp + 0x5c], dx
mov edx, 8
mov word [esp + 0x5e], dx
mov edx, dword [esp + 0x84]
mov dword [esp], eax
mov word [esp + 0x60], dx
mov edx, dword [esp + 0x88]
mov word [esp + 0x62], dx
mov edx, dword [esp + 0x8c]
mov word [esp + 0x64], dx
call sub.libX11_6.dll_XkbAllocGeometry
test eax, eax
mov dword [esp + 0x4c], eax
jne 0x40e42d
mov esi, dword [esp + 0x48]
mov eax, dword [esi + 0x24]
mov edi, eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xa0]
mov word [edi + 4], ax
mov eax, dword [esp + 0xa4]
mov word [edi + 6], ax
mov eax, dword [esp + 0x68]
test eax, eax
je 0x40dd44
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [esi]
mov dword [esp], eax
call fcn.00422360
mov dword [edi], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 2
mov dword [esp], esi
call sub.libX11_6.dll_XkbAllocNames
test eax, eax
jne 0x40dd44
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
mov eax, dword [eax + 0x1c]
mov edx, dword [ecx]
mov dword [eax + 4], edx
mov eax, dword [esp + 0xc4]
test eax, eax
jne 0x40dfa1
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xb0]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
mov eax, dword [esp + 0xa8]
call fcn.004082a0
mov ecx, dword [esp + 0x40]
mov dword [ecx + 8], eax
mov edi, dword [esp + 0x40]
movzx eax, word [edi + 0x22]
mov dword [esp + 4], 0x437463
mov dword [esp], edi
mov dword [esp + 8], eax
call sub.libX11_6.dll_XkbAddGeomColor
movzx eax, word [edi + 0x22]
mov dword [esp + 4], 0x438332
mov dword [esp], edi
mov dword [esp + 8], eax
call sub.libX11_6.dll_XkbAddGeomColor
mov ebp, dword [esp + 0xc8]
test ebp, ebp
je 0x40e4f6
mov edi, dword [esp + 0xcc]
test edi, edi
je 0x40e4ce
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0xc8]
movzx ebx, word [edi + 0x22]
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.00422310
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call sub.libX11_6.dll_XkbAddGeomColor
movzx ebx, word [edi + 0x22]
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0xcc]
mov dword [esp], 0
mov dword [esp + 4], eax
call fcn.00422310
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.libX11_6.dll_XkbAddGeomColor
mov dword [edi + 0xc], eax
mov ebx, dword [esp + 0x90]
mov esi, dword [esp + 0x40]
test ebx, ebx
je 0x40de85
mov eax, dword [ebx + 0xc]
mov dword [esp + 8], eax
mov eax, dword [ebx + 8]
mov dword [esp], esi
mov dword [esp + 4], eax
call sub.libX11_6.dll_XkbAddGeomProperty
test eax, eax
je 0x40dc54
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x40de60
mov edi, dword [esp + 0x94]
test edi, edi
je 0x40e01f
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x40]
mov eax, dword [eax]
mov esi, eax
mov dword [esp + 0x30], eax
movzx eax, word [ebx + 0x24]
mov word [edi + 0xc], ax
mov eax, dword [edi + 8]
mov dword [esp], 0
mov dword [esp + 4], eax
call fcn.00422310
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00422360
movzx edx, word [edi + 0xe]
mov dword [esp + 4], eax
mov dword [esp], ebx
mov dword [esp + 8], edx
call sub.libX11_6.dll_XkbAddGeomShape
test eax, eax
mov dword [esp + 0x2c], eax
je 0x40e452
xor esi, esi
cmp word [edi + 0xe], 0
mov ebx, dword [edi + 0x14]
jne 0x40df42
jmp 0x40dfe0
mov ecx, dword [eax + 8]
movzx eax, word [ebx]
add esi, 1
mov edx, dword [ebx + 8]
add ebx, 0xc
mov dword [esp], ecx
shl eax, 2
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
movzx eax, word [ebx - 0xc]
mov word [ebp], ax
movzx eax, word [ebx - 8]
mov word [ebp + 4], ax
movzx eax, word [edi + 0xe]
cmp esi, eax
jge 0x40dfe0
movzx eax, word [ebx]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call sub.libX11_6.dll_XkbAddGeomOutline
test eax, eax
mov ebp, eax
jne 0x40df04
mov dword [esp], str.Couldnt_allocate_outline_in_shape_n
call fcn.0041adb0
mov dword [esp + 8], 3
mov eax, dword [edi + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.004295c0
mov dword [esp], str.Shape__s_is_incomplete_n
mov dword [esp + 4], eax
call fcn.0041ab00
mov eax, dword [esp + 0x4c]
add esp, 0x55c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.00422310
test eax, eax
je 0x40dfd4
mov eax, dword [esp + 0xc4]
mov dword [esp], 0
mov dword [esp + 4], eax
call fcn.00422310
mov dword [esp], eax
call fcn.00431618
mov edi, dword [esp + 0x40]
mov dword [edi + 8], eax
jmp 0x40dd9f
mov eax, dword [edi + 0x18]
test eax, eax
je 0x40dff4
mov ecx, dword [esp + 0x2c]
sub eax, dword [edi + 0x14]
add eax, dword [ecx + 8]
mov dword [ecx + 0xc], eax
mov eax, dword [edi + 0x1c]
test eax, eax
je 0x40e008
mov ecx, dword [esp + 0x2c]
sub eax, dword [edi + 0x14]
add eax, dword [ecx + 8]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call sub.libX11_6.dll_XkbComputeShapeBounds
mov edi, dword [edi + 4]
test edi, edi
jne 0x40de94
mov eax, dword [esp + 0x98]
test eax, eax
mov dword [esp + 0x44], eax
je 0x40e5d6
mov edi, dword [esp + 0x44]
mov eax, dword [edi + 8]
mov dword [esp], 0
mov dword [esp + 4], eax
call fcn.00422310
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.00422360
movzx edx, word [edi + 0x1a]
mov dword [esp + 0x10], edx
movzx edx, word [edi + 0x18]
mov dword [esp + 0xc], edx
movzx edx, word [edi + 0x16]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 8], edx
mov dword [esp], eax
call sub.libX11_6.dll_XkbAddGeomSection
test eax, eax
mov dword [esp + 0x34], eax
je 0x40e48e
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x34]
movzx eax, word [ecx + 0xc]
mov word [esi + 6], ax
movzx eax, word [ecx + 0xe]
mov word [esi + 8], ax
movzx eax, word [ecx + 0x10]
mov word [esi + 0xa], ax
movzx eax, word [ecx + 0x12]
mov word [esi + 0xc], ax
movzx eax, word [ecx + 0x14]
mov word [esi + 0xe], ax
movzx eax, byte [ecx + 0x1c]
mov byte [esi + 4], al
mov eax, dword [ecx + 0x20]
test eax, eax
mov dword [esp + 0x30], eax
je 0x40e226
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x30]
movzx eax, word [eax + 0x14]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call sub.libX11_6.dll_XkbAddGeomRow
test eax, eax
mov edi, eax
je 0x40e657
mov ecx, dword [esp + 0x30]
movzx eax, word [ecx + 8]
mov word [edi], ax
movzx eax, word [ecx + 0xa]
mov word [edi + 2], ax
mov eax, dword [ecx + 0x10]
mov dword [edi + 8], eax
mov ebp, dword [ecx + 0x18]
test ebp, ebp
jne 0x40e1a9
jmp 0x40e213
cmp byte [ebp + 8], 0
mov edx, 0x43710e
mov dword [esp], 0x437286
cmove eax, edx
mov edx, dword [esp + 0x94]
mov dword [esp + 4], eax
lea eax, [esp + 0x6c]
call fcn.00408920
test eax, eax
je 0x40dc54
movzx eax, word [eax + 0xc]
mov byte [ebx + 6], al
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x40e1eb
movzx edx, word [esi + 0x22]
mov dword [esp + 4], eax
mov dword [esp], 0
mov dword [esp + 0x2c], edx
call fcn.00422310
mov edx, dword [esp + 0x2c]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 8], edx
call sub.libX11_6.dll_XkbAddGeomColor
sub eax, dword [esi + 0x30]
sar eax, 3
mov byte [ebx + 7], al
mov ebp, dword [ebp + 4]
test ebp, ebp
je 0x40e213
test byte [ebp], 2
je 0x40e3ba
mov dword [esp], edi
call sub.libX11_6.dll_XkbAddGeomKey
test eax, eax
mov ebx, eax
je 0x40e370
mov edx, dword [ebp + 8]
lea eax, [ebp + 8]
mov dword [ebx], edx
movzx edx, word [ebp + 0x10]
mov word [ebx + 4], dx
mov ecx, dword [ebp + 0x14]
test ecx, ecx
jne 0x40e130
mov byte [ebx + 6], 0
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x40e16d
movzx eax, word [esi + 0x22]
mov dword [esp + 4], 0x438332
mov dword [esp], esi
mov dword [esp + 8], eax
call sub.libX11_6.dll_XkbAddGeomColor
sub eax, dword [esi + 0x30]
sar eax, 3
mov byte [ebx + 7], al
mov ebp, dword [ebp + 4]
test ebp, ebp
jne 0x40e1a9
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 4]
test eax, eax
mov dword [esp + 0x30], eax
jne 0x40e0df
mov eax, dword [esp + 0x44]
mov ebx, dword [eax + 0x24]
test ebx, ebx
je 0x40e25d
lea edx, [esp + 0x68]
mov eax, ebx
call fcn.00409600
test eax, eax
je 0x40e256
lea eax, [esp + 0x68]
mov edx, dword [esp + 0x34]
mov ecx, ebx
mov dword [esp], eax
mov eax, dword [esp + 0x40]
call fcn.0040add0
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x40e231
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x6c]
test eax, eax
mov dword [esp + 0x38], eax
je 0x40e57d
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x10]
test eax, eax
mov dword [esp + 0x30], eax
je 0x40e6d4
mov edi, dword [esp + 0x30]
movsx ecx, byte [edi + 0x11]
movsx edx, byte [edi + 0xc]
movsx eax, byte [edi + 0xd]
movsx esi, byte [edi + 0xf]
shl ecx, 0x18
shl edx, 0x18
mov ebp, ecx
movsx ecx, byte [edi + 0x12]
shl eax, 0x10
or eax, edx
or eax, esi
movsx esi, byte [edi + 0xe]
mov edx, eax
shl ecx, 0x10
or ecx, ebp
movsx ebp, byte [edi + 0x14]
mov eax, esi
mov esi, edx
shl eax, 8
or ecx, ebp
movsx ebp, byte [edi + 0x13]
mov ebx, ebp
shl ebx, 8
or ecx, ebx
or esi, eax
mov ebp, ecx
mov ecx, dword [esp + 0x34]
mov edi, dword [ecx + 0x1c]
je 0x40e671
movzx eax, word [ecx + 0x10]
mov dword [esp + 0x2c], 0
test eax, eax
mov dword [esp + 0x3c], eax
je 0x40e671
lea esi, [esi]
lea edi, [edi]
cmp word [edi + 4], 0
mov ebx, dword [edi + 0xc]
je 0x40e860
test esi, esi
je 0x40e671
add ebx, 8
mov ecx, 1
nop
movsx eax, byte [ebx - 8]
shl eax, 0x18
mov edx, eax
movsx eax, byte [ebx - 7]
shl eax, 0x10
or eax, edx
movsx edx, byte [ebx - 5]
or eax, edx
movsx edx, byte [ebx - 6]
shl edx, 8
or eax, edx
cmp eax, esi
je 0x40e663
cmp ebp, eax
je 0x40e730
movzx eax, word [edi + 4]
cmp ecx, eax
jge 0x40e860
add ecx, 1
add ebx, 8
test esi, esi
jne 0x40e320
jmp 0x40e671
mov dword [esp], str.Couldnt_allocate_key_in_row_n
call fcn.0041adb0
mov eax, dword [esp + 0x44]
mov dword [esp + 8], 3
mov eax, dword [eax + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.004295c0
mov dword [esp], str.Section__s_is_incomplete_n
mov dword [esp + 4], eax
call fcn.0041ab00
mov eax, dword [esp + 0x4c]
add esp, 0x55c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [esp + 0x44]
mov dword [esp + 8], 3
mov eax, dword [edi + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.004295c0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x30]
movsx eax, word [eax + 0xc]
mov dword [esp + 8], eax
movsx eax, word [ebp + 0x12]
mov dword [esp], str.Key__d_of_row__d_in_section__s_has_no_name_n
mov dword [esp + 4], eax
call fcn.0041ac30
mov dword [esp + 8], 3
mov eax, dword [edi + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.004295c0
mov dword [esp], str.Section__s_ignored_n
mov dword [esp + 4], eax
call fcn.0041ab00
jmp 0x40dc54
mov dword [esp], str.Couldnt_allocate_GeometryRec_n
call fcn.0041adb0
mov dword [esp], str.Geometry_not_compiled_n
call fcn.0041ab00
mov dword [esp + 0x4c], 0
jmp 0x40dc54
mov dword [esp], str.Couldnt_allocate_shape_in_geometry_n
call fcn.0041adb0
mov dword [esp + 8], 3
mov eax, dword [edi + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.004295c0
mov dword [esp], str.Shape__s_not_compiled_n
mov dword [esp + 4], eax
call fcn.0041ab00
jmp 0x40dc54
mov dword [esp], str.Couldnt_allocate_section_in_geometry_n
call fcn.0041adb0
mov eax, dword [esp + 0x44]
mov dword [esp + 8], 3
mov eax, dword [eax + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.004295c0
mov dword [esp], str.Section__s_not_compiled_n
mov dword [esp + 4], eax
call fcn.0041ab00
jmp 0x40dc54
mov dword [esp + 8], 0
mov dword [esp + 4], 0x437463
mov dword [esp], 0
call fcn.00422360
mov dword [esp + 0xcc], eax
jmp 0x40ddf1
mov dword [esp + 8], 0
mov dword [esp + 4], 0x438332
mov dword [esp], 0
call fcn.00422360
mov dword [esp + 0xc8], eax
jmp 0x40dde2
mov eax, dword [esp + 0x34]
mov dword [esp + 8], 3
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.004295c0
mov ebx, eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 8], 3
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004295c0
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], str.Couldnt_add_overlay___s__to_section___s__n
call fcn.0041adb0
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 4]
test eax, eax
mov dword [esp + 0x38], eax
jne 0x40e270
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call sub.libX11_6.dll_XkbComputeSectionBounds
test eax, eax
je 0x40e5c3
mov eax, dword [esp + 0x44]
movzx eax, word [eax]
test al, 0x10
jne 0x40e5b3
mov ecx, dword [esp + 0x34]
movzx eax, word [ecx + 0x28]
mov word [ecx + 0xa], ax
mov eax, dword [esp + 0x44]
movzx eax, word [eax]
test al, 0x20
jne 0x40e5c3
mov ecx, dword [esp + 0x34]
movzx eax, word [ecx + 0x2a]
mov word [ecx + 0xc], ax
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 4]
test eax, eax
mov dword [esp + 0x44], eax
jne 0x40e032
mov ebx, dword [esp + 0x9c]
test ebx, ebx
je 0x40e617
lea edx, [esp + 0x68]
mov eax, ebx
call fcn.00409600
test eax, eax
je 0x40dc54
lea eax, [esp + 0x68]
xor edx, edx
mov ecx, ebx
mov dword [esp], eax
mov eax, dword [esp + 0x40]
call fcn.0040add0
test eax, eax
je 0x40dc54
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x40e5e1
mov eax, dword [esp + 0x14c]
test eax, eax
je 0x40e641
lea eax, [esp + 0x14c]
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call fcn.00404300
lea eax, [esp + 0x68]
call fcn.0040b2f0
mov dword [esp + 0x4c], 1
jmp 0x40dc54
mov dword [esp], str.Couldnt_allocate_row_in_section_n
jmp 0x40e377
mov esi, dword [0x434ec8]
test esi, esi
jne 0x40e7e0
mov eax, dword [esp + 0x30]
cmp word [eax + 8], 0xffff
je 0x40e74c
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 4]
test eax, eax
mov dword [esp + 0x30], eax
jne 0x40e283
mov esi, dword [esp + 0x38]
mov eax, dword [esi + 0x10]
test eax, eax
je 0x40e6d4
cmp word [eax + 8], 0xffff
je 0x40e6bd
jmp 0x40ea52
cmp word [ebx + 8], 0xffff
mov eax, ebx
jne 0x40ea54
mov ebx, dword [eax + 4]
mov dword [esp], eax
call fcn.0041a750
sub word [esi + 0xe], 1
test ebx, ebx
mov dword [esi + 0x10], ebx
jne 0x40e6b0
mov edi, dword [esp + 0x38]
xor ebx, ebx
test ebx, ebx
je 0x40e885
mov esi, dword [ebx + 4]
test esi, esi
je 0x40e885
cmp word [esi + 8], 0xffff
jne 0x40e702
jmp 0x40eb16
mov esi, eax
mov eax, dword [esi + 4]
test eax, eax
je 0x40e885
cmp word [eax + 8], 0xffff
jne 0x40e700
mov edx, dword [eax + 4]
mov dword [esi + 4], edx
sub word [edi + 0xe], 1
mov dword [esp], eax
call fcn.0041a750
mov ebx, dword [esi + 4]
jmp 0x40e6da
movzx edi, word [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov word [eax + 8], di
mov eax, dword [esp + 0x30]
cmp word [eax + 8], 0xffff
jne 0x40e680
mov ebx, dword [0x434ec8]
test ebx, ebx
je 0x40e680
mov eax, dword [esp + 0x38]
mov dword [esp + 8], 3
mov eax, dword [eax + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.004295c0
mov esi, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 8], 3
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.004295c0
mov ebx, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], 3
add eax, 0x11
mov dword [esp], eax
call fcn.00428730
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], str.Key__s_not_in___s___but_has_an_overlay_key_in___s__n
call fcn.0041ab80
mov dword [esp], 0x437d52
call fcn.0041ab00
jmp 0x40e680
mov eax, dword [esp + 0x38]
mov dword [esp + 8], 3
sub ebx, 8
mov eax, dword [eax + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.004295c0
mov edi, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 8], 3
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.004295c0
mov dword [esp + 4], 3
mov esi, eax
mov dword [esp], ebx
call fcn.00428730
mov dword [esp + 0xc], edi
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], str.Key__s_in_section___s__and_overlay___s__n
call fcn.0041ab80
mov dword [esp], str.Overlay_definition_ignored_n
call fcn.0041ab00
jmp 0x40e671
add dword [esp + 0x2c], 1
add edi, 0x18
test esi, esi
mov eax, dword [esp + 0x2c]
je 0x40e671
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
jl 0x40e300
jmp 0x40e671
mov eax, dword [esp + 0x38]
cmp word [eax + 0xe], 0
je 0x40ea5d
lea edi, [esp + 0x350]
xor eax, eax
mov ecx, pe_nt_image_headers32
rep stosd dword es:[edi], eax
lea eax, [esp + 0x150]
nop
lea esi, [esi]
mov ecx, 0xffffffff
add eax, 2
mov word [eax - 2], cx
lea ecx, [esp + 0x350]
cmp eax, ecx
jne 0x40e8b0
mov eax, dword [esp + 0x38]
xor edx, edx
mov word [eax + 0xc], dx
mov edx, dword [eax + 0x10]
test edx, edx
je 0x40e924
mov ebx, eax
jmp 0x40e8f4
mov word [edx + 0xa], ax
mov edx, dword [edx + 4]
add word [esp + eax*2 + 0x350], 1
test edx, edx
je 0x40e924
movsx eax, word [edx + 8]
lea ecx, [esp + eax*2 + 0x150]
movsx eax, word [ecx]
cmp ax, 0xffff
jne 0x40e8e0
movzx eax, word [ebx + 0xc]
lea esi, [eax + 1]
mov word [ecx], ax
mov word [ebx + 0xc], si
movsx eax, word [edx + 8]
movsx eax, word [esp + eax*2 + 0x150]
jmp 0x40e8e0
mov ebp, dword [esp + 0x38]
mov eax, dword [ebp + 8]
mov dword [esp], 0
mov dword [esp + 4], eax
call fcn.00422310
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.00422360
mov esi, eax
movzx eax, word [ebp + 0xc]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call sub.libX11_6.dll_XkbAddGeomOverlay
test eax, eax
mov edi, eax
je 0x40e51e
mov eax, ebp
xor ebx, ebx
mov ebp, dword [esp + 0x38]
cmp word [eax + 0xc], 0
je 0x40e9db
mov eax, dword [esp + 0x34]
movzx ecx, word [eax + 0x10]
xor eax, eax
test ecx, ecx
je 0x40e9a7
movsx edx, word [esp + eax*2 + 0x150]
cmp edx, ebx
je 0x40e9b0
add eax, 1
cmp eax, ecx
jl 0x40e994
mov eax, 0xffffffff
lea esi, [esi]
movsx edx, word [esp + ebx*2 + 0x350]
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 8], edx
call sub.libX11_6.dll_XkbAddGeomOverlayRow
test eax, eax
je 0x40eac1
movzx eax, word [ebp + 0xc]
add ebx, 1
cmp ebx, eax
jl 0x40e986
mov eax, dword [esp + 0x38]
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x40e56a
movsx eax, word [ebx + 0xa]
lea edx, [eax + eax*2]
mov eax, dword [edi + 0xc]
lea edx, [eax + edx*4]
movzx eax, word [edx + 2]
mov ecx, dword [edx + 8]
lea esi, [eax + 1]
mov word [edx + 2], si
lea esi, [ecx + eax*8]
lea eax, [ebx + 0xc]
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esp], esi
mov dword [esp + 8], 4
add esi, 4
mov dword [esp + 4], eax
call sub.msvcrt.dll_strncpy
lea eax, [ebx + 0x11]
mov dword [esp + 8], 4
mov dword [esp], esi
mov dword [esp + 4], eax
call sub.msvcrt.dll_strncpy
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x40e9ea
jmp 0x40e56a
mov ebx, eax
mov edi, dword [esp + 0x38]
jmp 0x40e6da
mov eax, dword [esp + 0x34]
mov dword [esp + 8], 3
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.004295c0
mov ebx, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 8], 3
mov eax, dword [eax + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.004295c0
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], str.Overlay___s__for_section___s__has_no_legal_keys_n
call fcn.0041ac30
mov dword [esp], str.Overlay_definition_ignored_n
call fcn.0041ab00
jmp 0x40e56a
mov eax, dword [esp + 0x34]
mov dword [esp + 8], 3
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call fcn.004295c0
mov edi, eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 8], 3
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.004295c0
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], str.Cant_add_row__d_to_overlay___s__of_section___s__n
call fcn.0041adb0
jmp 0x40e56a
mov eax, esi
mov esi, ebx
jmp 0x40e714