Function at 0x10046cf9
Capabilities:
Get keyboard layout

Disassembly:
mov eax, 0x100898fc
call fcn.10088158
sub esp, 0x288
mov dword [ebp - 0x28], 5
push esi
push edi
mov esi, 0x2c5b641b
mov dword [ebp - 0x140], edx
mov dword [ebp - 0x14], esi
or edi, 0xffffffff
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x30], 0x6de6
mov dword [ebp - 0x1c], 0xe50714ba
mov dword [ebp - 0x34], 0x6d56a426
mov dword [ebp - 0x1c], 0x971cf717
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x118], ecx
mov dword [ebp - 0x24], 0
jmp 0x10046d62
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x80], 0x83bc1b0f
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 3
jl 0x10046d54
mov eax, dword [ebp - 0x78]
xor edx, edx
mov dword [ebp - 0x14], 0
mov ecx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x28]
cmp eax, ecx
mov eax, dword [ebp - 0x14]
setl dl
push ebx
xor ebx, ebx
cmp eax, edx
mov eax, dword [ebp - 0x78]
setl bl
xor ecx, ecx
sub ebx, eax
mov eax, dword [ebp - 0x28]
cmp ebx, eax
setge cl
xor ebx, ebx
imul ecx, dword [ebp - 0x28]
neg ecx
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x30], ebx
je 0x10046db2
mov eax, dword [ebp - 0x28]
imul eax, dword [ebp - 0x80], 0xffff
test eax, eax
je 0x10046dc7
cmp dword [ebp - 0x78], ebx
je 0x10046dc7
xor eax, eax
inc eax
jmp 0x10046dc9
mov eax, ebx
mov dword [ebp - 0x1c], eax
xor ecx, ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x78]
mov eax, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x14]
sub edx, eax
mov eax, dword [ebp - 0x30]
cmp edx, eax
setg cl
xor edx, edx
inc edx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x1c], ebx
je 0x10046dfc
mov ecx, edx
cmp dword [ebp - 0x28], ebx
jne 0x10046dfe
mov ecx, ebx
mov eax, dword [ebp - 0x78]
add eax, 0xffffe6fc
add eax, ecx
mov ecx, dword [ebp - 0x28]
add ecx, eax
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x24], 0xdfe4d9ed
mov dword [ebp - 0x20], 0x1289
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x1c], 0x7f4a1d2d
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x34], 0xb281
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x2c], 0xffff
mov dword [ebp - 0x30], 0x48fb8aaa
mov dword [ebp - 0x18], ebx
jmp 0x10046e5c
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xc4], 0xbf58
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10046e4b
mov dword [ebp - 0x18], ebx
jmp 0x10046e78
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x22c], 0xc44d9964
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x10046e67
mov dword [ebp - 0x18], ebx
jmp 0x10046e8d
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x58], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edx
jl 0x10046e83
mov eax, dword [ebp - 0x20]
xor edx, edx
add eax, 0xdfddae9
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0x14]
cmp eax, ecx
mov eax, dword [ebp - 0x20]
setle dl
xor ecx, ecx
inc edx
cmp edx, eax
setle cl
imul eax, ecx, 0xfffffff8
sub eax, dword [ebp - 0xc4]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0xfffffff8
mov dword [ebp - 0x22c], eax
mov eax, dword [ebp - 0xc4]
sete cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x24]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0xbc]
sete cl
xor edx, edx
cmp ecx, 0xfffffff6
setne dl
sub edx, eax
cmp edx, dword [ebp - 0xc0]
jne 0x10046f0c
cmp dword [ebp - 0x24], ebx
jne 0x10046f0c
mov eax, ebx
jmp 0x10046f0f
xor eax, eax
inc eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x14], ebx
jne 0x10046f29
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp eax, 0x839bf5bf
setne cl
xor edx, edx
add ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x24]
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setg dl
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x58]
cmp eax, 0xf58a
mov eax, dword [ebp - 0x58]
setge dl
xor ecx, ecx
cmp eax, edx
setl cl
inc ecx
cmp ecx, 0x7e942faf
je 0x10046f76
mov eax, dword [ebp - 0x22c]
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x1c], 0x58b0
mov dword [ebp - 0x28], edi
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x10046f95
push ebx
call dword [sym.imp.GDI32.dll_CreatePenIndirect]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x58]
jne 0x10046fa6
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x22c]
xor edx, edx
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x28]
add ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0xc4]
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x28]
setl cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x28]
setne dl
xor ecx, ecx
cmp edx, eax
setge cl
xor ebx, ebx
cmp ecx, 0x50ed
setge bl
imul ebx, dword [ebp - 0x28]
sub ebx, dword [ebp - 0x30]
sub ebx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
neg ebx
sbb ebx, ebx
xor edx, edx
inc ebx
cmp eax, ebx
setg dl
sub edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x22c]
setne cl
xor edx, edx
cmp ecx, eax
setle dl
add edx, 7
je 0x1004702b
mov eax, dword [ebp - 0x30]
xor ebx, ebx
cmp dword [ebp - 0x18], ebx
jne 0x1004703b
cmp dword [ebp - 0x28], ebx
jne 0x1004703b
mov eax, ebx
jmp 0x1004703e
xor eax, eax
inc eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], 1
push 4
mov dword [ebp - 0x40], 0x23ed15de
mov dword [ebp - 0x24], ebx
pop ecx
jmp 0x10047064
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x294], edi
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ecx
jl 0x10047057
mov dword [ebp - 0x24], ecx
jmp 0x1004708f
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x28], ebx
jmp 0x10047087
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x294], 0x5816210b
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ecx
jl 0x10047076
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0x18
jge 0x1004706e
mov dword [ebp - 0x28], 5
lea ecx, [ebp - 0x200]
mov dword [ebp - 0x14], esi
push 2
call fcn.10010227
mov dword [ebp - 0x20], ebx
jmp 0x100470bb
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x44], edi
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 1
jl 0x100470b1
mov dword [ebp - 0x20], ebx
jmp 0x100470d9
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x200]
mov dword [eax + ecx*4], 0xfffffffb
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x100470c6
mov esi, dword [sym.imp.GDI32.dll_CreateFontIndirectA]
mov edi, dword [sym.imp.USER32.dll_GetKeyboardLayout]
mov dword [ebp - 0x44], ebx
jmp 0x10047132
mov dword [ebp - 0x24], 0x457102d1
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x10047102
push ebx
call esi
mov dword [ebp - 0x24], 0xffffffe3
jmp 0x10047129
mov eax, dword [ebp - 0x200]
mov dword [eax], 0x33c63384
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x10047126
push 0x1e40
call edi
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 1
jl 0x1004710b
inc dword [ebp - 0x44]
cmp dword [ebp - 0x44], 0xd
je 0x100470f0
lea ecx, [ebp - 0x200]
call fcn.10010442
mov dword [ebp - 0x1c], 0xffffffff
push 3
mov dword [ebp - 0x30], 0x6de6
mov dword [ebp - 0x24], ebx
pop ecx
jmp 0x10047166
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x134], ecx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ecx
jl 0x10047159
mov dword [ebp - 0x130], ebx
cmp dword [ebp - 0x130], 0xfffffff8
jg 0x1004720d
push 1
lea ecx, [ebp - 0x240]
call fcn.10010227
mov dword [ebp - 0x14], 8
mov dword [ebp - 0x24], ebx
jmp 0x100471aa
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x240]
mov dword [eax + ecx*4], 0x683c8fc5
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 1
jl 0x10047197
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], ebx
jl 0x100471ec
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x100471c7
push ebx
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x100471e7
push ebx
push 0x1339
push ebx
push ebx
push 0x1850
push 0x1f45
call dword [sym.imp.USER32.dll_ToAsciiEx]
dec dword [ebp - 0x14]
jns 0x100471b8
lea ecx, [ebp - 0x240]
call fcn.10010442
dec dword [ebp - 0x130]
cmp dword [ebp - 0x130], 0xfffffff8
jle 0x1004717e
push 3
pop ecx
mov dword [ebp - 0x1c], 0xe50714ba
mov dword [ebp - 0x2c], 0x6d56a426
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x1c], 0xfffffffd
push 0xfffffffffffffff6
pop edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x1c], 7
mov dword [ebp - 0x20], 0xe7374489
mov dword [ebp - 0x1c], 5
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x14], ebx
jmp 0x10047259
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x284], edx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x1004724c
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x1004726e
push ebx
push ebx
call dword [sym.imp.USER32.dll_LoadIconA]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x20]
neg eax
sbb eax, eax
inc eax
cmp eax, 0xffff
jbe 0x100472ae
cmp dword [ebp - 0x24], ebx
je 0x100472ae
xor edx, edx
inc edx
jmp 0x100472b0
mov edx, ebx
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
push 2
setle cl
xor edx, edx
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
mov ecx, 0xaee51190
setge dl
mov dword [ebp - 0x280], edx
mov eax, dword [ebp - 0x24]
add eax, edx
sub eax, dword [ebp - 0x18]
neg eax
sbb eax, eax
inc eax
cmp ecx, eax
mov ecx, 0x12b57e8b
sbb eax, eax
neg eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
sub ecx, eax
imul ecx, dword [ebp - 0x24]
mov dword [ebp - 0x2c], ecx
lea ecx, [ebp - 0x17c]
mov dword [ebp - 0x1c], 0x971cf717
mov dword [ebp - 0x2c], 0xffffffff
call fcn.10010227
mov dword [ebp - 0x20], ebx
jmp 0x1004732a
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x4c], 0xffffffff
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 1
jl 0x1004731c
mov dword [ebp - 0x20], ebx
jmp 0x10047348
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x17c]
mov dword [eax + ecx*4], 0xfffffffb
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x10047335
mov dword [ebp - 0x4c], ebx
jmp 0x10047395
mov dword [ebp - 0x14], 0x457102d1
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x10047365
push ebx
call esi
mov dword [ebp - 0x14], 0xffffffe3
jmp 0x1004738c
mov eax, dword [ebp - 0x17c]
mov dword [eax], 0x33c63384
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x10047389
push 0x1e40
call edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x1004736e
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 0xd
je 0x10047353
lea ecx, [ebp - 0x17c]
call fcn.10010442
push 4
xor ecx, ecx
pop edx
inc ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x1c], ecx
push 0xfffffffffffffff6
mov dword [ebp - 0x3c], 0x88f4f368
pop edi
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x14], ebx
jmp 0x100473d8
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x24c], 0x2bd7b1c2
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x100473c7
cmp dword [ebp - 0x24], ebx
je 0x100473ec
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x24c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24c]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x14], ebx
jmp 0x1004741a
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x8c], 0x83bc1b0f
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10047409
mov dword [ebp - 0x20], 0x5c68ec0a
mov dword [ebp - 0x1c], 3
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x14], ebx
jmp 0x10047447
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x270], 5
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x10047436
mov dword [ebp - 0x20], 0xffffffe7
jmp 0x100475bc
push 3
lea ecx, [ebp - 0x110]
call fcn.10010227
push 1
lea ecx, [ebp - 0x164]
mov dword [ebp - 4], ebx
call fcn.10010227
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x20c]
mov dword [ebp - 0x14], 0xffffffff
push 3
call fcn.10010227
mov dword [ebp - 0x2c], 0xf5b50694
mov dword [ebp - 0x18], ebx
jmp 0x100474ac
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x110]
mov dword [eax + ecx*4], 0xe75cb554
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10047499
xor edx, edx
mov dword [ebp - 0x18], ebx
inc edx
jmp 0x100474cd
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x164]
mov dword [eax + ecx*4], 0xfffd
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edx
jl 0x100474ba
mov dword [ebp - 0x18], ebx
jmp 0x100474e6
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20c]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x100474d7
mov eax, dword [ebp - 0x110]
xor edx, edx
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0x164]
cmp ecx, dword [eax]
mov eax, dword [ebp - 0x20]
setg dl
xor ecx, ecx
cmp edx, eax
mov edx, 0xffff
setg cl
xor eax, eax
cmp ecx, 1
mov ecx, dword [ebp - 0x110]
setle al
cmp edx, eax
sbb eax, eax
inc eax
sub eax, dword [ecx]
je 0x10047532
cmp dword [ecx + 4], ebx
je 0x10047532
xor eax, eax
inc eax
jmp 0x10047534
mov eax, ebx
cmp eax, dword [ebp - 0x14]
jg 0x1004753c
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x110]
cmp dword [eax], edx
jb 0x1004754e
cmp dword [ebp - 0x20], ebx
je 0x10047551
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov edx, dword [ebp - 0x20c]
test eax, eax
setg cl
imul eax, ecx, 0xa88f
sub eax, dword [ebp - 0x20]
neg eax
sbb eax, eax
inc eax
mov dword [edx + 8], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x164]
mov ecx, dword [eax]
mov eax, dword [edx + 8]
add ecx, 0xffffd399
add eax, ecx
lea ecx, [ebp - 0x20c]
mov dword [ebp - 0x2c], eax
call fcn.10010442
lea ecx, [ebp - 0x164]
call fcn.10010442
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x110]
call fcn.10010442
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xffffffe9
jne 0x10047458
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x268]
mov eax, dword [ebp - 0x264]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x268]
neg eax
sbb eax, eax
add eax, 4
sub ecx, eax
neg ecx
sbb ecx, ecx
xor edx, edx
add ecx, 2
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x14], ebx
mov ecx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x28]
cmp eax, ecx
mov eax, dword [ebp - 0x14]
setl dl
xor ebx, ebx
cmp eax, edx
mov eax, dword [ebp - 0x84]
setl bl
xor ecx, ecx
sub ebx, eax
mov eax, dword [ebp - 0x28]
cmp ebx, eax
setge cl
xor ebx, ebx
imul ecx, dword [ebp - 0x28]
neg ecx
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x30], ebx
je 0x10047645
mov eax, dword [ebp - 0x28]
imul eax, dword [ebp - 0x8c], 0xffff
test eax, eax
je 0x10047660
cmp dword [ebp - 0x84], ebx
je 0x10047660
xor eax, eax
inc eax
jmp 0x10047662
mov eax, ebx
mov dword [ebp - 0x1c], eax
xor ecx, ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x84]
mov eax, dword [ebp - 0x88]
mov eax, dword [ebp - 0x88]
mov edx, dword [ebp - 0x14]
sub edx, eax
mov eax, dword [ebp - 0x30]
cmp edx, eax
setg cl
xor edx, edx
inc edx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x1c], ebx
je 0x1004769e
mov ecx, edx
cmp dword [ebp - 0x28], ebx
jne 0x100476a0
mov ecx, ebx
mov eax, dword [ebp - 0x84]
add eax, 0xffffe6fc
add eax, ecx
mov ecx, dword [ebp - 0x28]
add ecx, eax
mov dword [ebp - 0x2c], ecx
lea ecx, [ebp - 0x1ac]
mov dword [ebp - 0x18], 0x5595
mov dword [ebp - 0x14], 0x40c3f30
mov dword [ebp - 0x1c], 0xabebf3b8
push edx
call fcn.10010227
mov dword [ebp - 0x1c], 0x633933b8
xor edx, edx
mov dword [ebp - 0x1c], ebx
inc edx
mov dword [ebp - 0x2c], 0x121f2059
mov dword [ebp - 0x20], ebx
jmp 0x100476fe
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1ac]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edx
jl 0x100476ef
push 2
mov dword [ebp - 0x20], ebx
pop esi
jmp 0x1004771c
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x278], 5
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x1004770b
cmp dword [ebp - 0x18], 0xfff7
sbb eax, eax
neg eax
neg eax
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
sub edx, 0x1ee4
neg edx
sbb edx, edx
add edx, 0xea3383bd
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setg cl
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1ac]
dec ecx
mov dword [eax], ecx
lea eax, [ecx + 0x8bbe]
test eax, eax
jne 0x10047772
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], 1
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 0x18]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x278], eax
add eax, 0xc653dda
cmp eax, 7
setg cl
mov dword [ebp - 0x2c], ecx
lea ecx, [ebp - 0x1ac]
call fcn.10010442
mov dword [ebp - 0x1c], 5
mov dword [ebp - 0x1c], 0xc6578637
mov dword [ebp - 0x2c], 4
mov dword [ebp - 0x20], ebx
jmp 0x100477e4
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x68], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x100477da
mov dword [ebp - 0x20], ebx
jmp 0x10047800
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xd8], 0xffffffff
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x100477ef
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp - 0x60]
sub eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0xd8]
neg eax
push 0xfffffffffffffffa
sbb eax, eax
xor edx, edx
inc eax
imul ecx, eax
mov eax, dword [ebp - 0xd8]
pop esi
push 3
cmp ecx, eax
mov eax, dword [ebp - 0xd4]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x60]
setne cl
add eax, ecx
mov ecx, dword [ebp - 0x60]
add ecx, eax
cmp ecx, 0x816f93bd
mov ecx, esi
sbb eax, eax
xor edx, edx
neg eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp - 0x64]
sub ecx, eax
mov eax, dword [ebp - 0xd4]
add ecx, eax
mov eax, dword [ebp - 0x2c]
cmp ecx, eax
mov eax, dword [ebp - 0x60]
setle dl
xor ecx, ecx
cmp eax, edx
setne cl
mov dword [ebp - 0x60], ecx
lea ecx, [ebp - 0x1b8]
call fcn.10010227
mov dword [ebp - 0x2c], 0xa4d0
mov dword [ebp - 0x1c], 0x2a727599
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x14], ebx
jmp 0x100478b5
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1b8]
mov dword [eax + ecx*4], 0xe9d05ba7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x100478a2
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x100478d0
push ebx
push 0x1138
push ebx
call dword [sym.imp.GDI32.dll_ExtCreateRegion]
mov ecx, dword [ebp - 0x1b8]
xor edx, edx
mov eax, dword [ecx + 8]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x2c]
cmp dword [ecx + 8], eax
mov eax, dword [ebp - 0x1c]
setl dl
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x3c], ecx
lea ecx, [ebp - 0x1b8]
call fcn.10010442
mov ebx, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [ebp - 0x28], 0xfffffffd
mov dword [ebp - 0x28], 0xffffffed
jmp 0x100479e4
mov dword [ebp - 0x24], esi
xor edx, edx
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
cmp ecx, eax
setge dl
xor ecx, ecx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
cmp eax, 0xa82a
mov eax, dword [ebp - 0x28]
setl cl
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x24]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x24]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x24]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x28]
setne cl
add eax, ecx
jne 0x10047974
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x28], 0
je 0x100479a7
cmp dword [ebp - 0x14], 0
je 0x100479a7
mov dword [ebp - 0x2c], 0x62f63069
mov byte [ebp - 0xd], 0
cmp byte [ebp - 0xd], 0
je 0x100479a2
push 0x24fb
call ebx
push eax
call dword [sym.imp.USER32.dll_IsDlgButtonChecked]
mov eax, dword [ebp - 0x2c]
jmp 0x100479e1
mov byte [ebp - 0xd], 0
cmp byte [ebp - 0xd], 0
je 0x100479c1
push 0
push 0x1829
call ebx
push eax
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov byte [ebp - 0xd], 0
cmp byte [ebp - 0xd], 0
je 0x100479e1
push 0
push 0
push 0x1586
push 0x23c
push 0
call dword [sym.imp.USER32.dll_InsertMenuA]
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xfffffffb
jle 0x10047918
mov dword [ebp - 0x20], 0xdfe4d9ed
xor ebx, ebx
mov dword [ebp - 0x24], 0x1289
xor ecx, ecx
mov dword [ebp - 0x14], ebx
inc ecx
mov dword [ebp - 0x1c], 0x7f4a1d2d
mov eax, 0xffff
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x2c], 0xb281
mov dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x30], 0x48fb8aaa
mov dword [ebp - 0x18], ebx
jmp 0x10047a44
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xd0], 0xbf58
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10047a33
mov dword [ebp - 0x18], ebx
jmp 0x10047a60
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x21c], 0xc44d9964
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x10047a4f
mov dword [ebp - 0x18], ebx
jmp 0x10047a79
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x5c], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ecx
jl 0x10047a6b
mov eax, dword [ebp - 0x24]
xor edx, edx
add eax, 0xdfddae9
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xd0]
cmp ecx, eax
mov eax, dword [ebp - 0x24]
setle dl
xor ecx, ecx
inc edx
cmp edx, eax
setle cl
imul eax, ecx, 0xfffffff8
sub eax, dword [ebp - 0xd0]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0xfffffff8
mov dword [ebp - 0x21c], eax
mov eax, dword [ebp - 0xd0]
sete cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0xc8]
sete cl
xor edx, edx
cmp ecx, edi
setne dl
sub edx, eax
cmp edx, dword [ebp - 0xcc]
jne 0x10047af7