Function at 0x456a70
Capabilities:
Get graphical window text
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x138
push ebx
push esi
push edi
push 3
pop ebx
mov dword [ebp - 0x14], 0x125d16df
lea ecx, [ebp - 0x54]
mov dword [ebp - 0xc], 0x88a137b1
mov dword [ebp - 0x10], 0x8a1bab0
push ebx
mov dword [ebp - 0x24], edx
call fcn.004113a6
xor eax, eax
mov dword [ebp - 0xc], eax
jmp 0x456ab4
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x54]
or dword [ecx + edx*4], 0xffffffff
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ebx
jl 0x456aa7
mov ecx, dword [ebp - 0x14]
add ecx, dword [ebp - 0x14]
push 1
mov dword [ebp - 0xc], ecx
pop edi
je 0x456b0d
mov dword [ebp - 0xc], eax
jmp 0x456add
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0x12c], 0x1836ccb0
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ebx
jl 0x456acc
mov dword [ebp - 0xc], eax
jmp 0x456b02
mov dword [ebp - 0x10], 7
mov dword [ebp - 0x14], eax
jmp 0x456af9
dec dword [ebp - 0x10]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jle 0x456af3
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jle 0x456ae7
jmp 0x456c1e
mov dword [ebp - 0x1c], edi
lea ecx, [ebp - 0xb8]
push 4
call fcn.004113a6
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x456b2e
mov ecx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x30], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jl 0x456b24
mov dword [ebp - 0x10], eax
jmp 0x456b4b
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xb8]
mov dword [ecx + edx*4], 0x2840cc74
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x456b38
mov dword [ebp - 0x14], eax
jmp 0x456b72
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x456b6f
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
xor eax, eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], eax
jle 0x456b56
mov dword [ebp - 0x14], 0xfffffff3
jmp 0x456c07
mov dword [ebp - 0x10], 4
xor edx, edx
mov dword [ebp - 0xc], 0x5860bc23
mov ecx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x1c]
add ecx, 0x4bb3
cmp ecx, 0xfffffffe
mov ecx, 0xfffc
setle dl
cmp ecx, edx
mov ecx, dword [ebp - 0x14]
sbb esi, esi
xor edx, edx
inc esi
cmp ecx, esi
setg dl
cmp edx, 0xfffffffc
jle 0x456be0
mov esi, edi
cmp dword [ebp - 0x10], eax
jne 0x456be2
mov esi, eax
mov ecx, dword [ebp - 0x14]
xor edx, edx
cmp esi, ecx
sete dl
xor ebx, ebx
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x10]
cmp ecx, edx
mov ecx, dword [ebp - 0xb8]
setle bl
mov dword [ecx], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xa
jne 0x456b83
lea ecx, [ebp - 0xb8]
call fcn.00411478
xor eax, eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 2
jg 0x456cb5
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x54]
cmp dword [ecx + edx*4], eax
jne 0x456c46
mov ecx, dword [ebp - 0xc]
mov edx, eax
imul ecx, dword [ebp - 0x14], 0x4191
test ecx, ecx
je 0x456c48
mov edx, edi
mov esi, dword [ebp - 0x10]
xor ebx, ebx
mov ecx, dword [ebp - 0x14]
cmp edx, ecx
mov ecx, dword [ebp - 0x54]
setl bl
xor edx, edx
cmp dword [ecx + esi*4], ebx
setne dl
cmp edx, 0xfffffffb
jne 0x456c6c
mov esi, eax
cmp dword [ebp - 0x14], eax
je 0x456c6e
mov esi, edi
mov edi, dword [ebp - 0x10]
xor ebx, ebx
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x20], ecx
imul ecx, esi, 0x5481
mov esi, dword [ebp - 0x54]
cmp ecx, dword [esi + edx*4]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x10]
setg bl
imul ebx, dword [esi + edi*4]
neg ebx
mov dword [esi + ecx*4], ebx
mov ecx, dword [ebp - 0x54]
cmp dword [ecx + edx*4], eax
jne 0x456cb2
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
push 1
pop edi
jle 0x456c2b
xor edi, edi
inc edi
lea ecx, [ebp - 0x54]
call fcn.00411478
push edi
lea ecx, [ebp - 0x7c]
call fcn.004113a6
mov dword [ebp - 0x18], 0xfffffff7
lea ecx, [ebp - 0xec]
push 2
call fcn.004113a6
xor esi, esi
mov dword [ebp - 0x10], esi
jmp 0x456cf1
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x7c]
mov dword [eax + ecx*4], 0x53b26bdd
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jl 0x456ce1
mov dword [ebp - 0x10], esi
jmp 0x456d0e
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xec]
mov dword [eax + ecx*4], 0x5a60d005
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x456cfb
mov eax, dword [ebp - 0x7c]
mov dword [eax], esi
mov dword [ebp - 0x20], edi
lea ecx, [ebp - 0xe0]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x18], 0xee28fdeb
mov dword [ebp - 0x18], 3
push edi
call fcn.004113a6
xor eax, eax
mov dword [ebp - 0x18], 5
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xc], eax
jmp 0x456d5c
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xe0]
mov dword [ecx + edx*4], eax
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x456d4d
cmp dword [ebp - 0x20], eax
je 0x456da2
mov byte [ebp - 5], al
cmp byte [ebp - 5], al
je 0x456d87
push 0x928
push 0xeea
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_CheckDlgButton]
xor eax, eax
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x456daf
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_ValidateRect]
xor eax, eax
jmp 0x456daf
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x18], edi
inc dword [ebp - 0x1c]
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x456dc5
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_IsIconic]
lea ecx, [ebp - 0xe0]
call fcn.00411478
mov eax, dword [ebp - 0x7c]
push 0
pop esi
dec dword [eax]
cmp dword [eax], 0xfffffff2
jg 0x456d19
lea ecx, [ebp - 0xec]
call fcn.00411478
lea ecx, [ebp - 0x7c]
call fcn.00411478
push edi
lea ecx, [ebp - 0xa0]
call fcn.004113a6
push dword [ebp - 0x24]
movdqa xmm0, xmmword [0xa5c860]
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x120]
mov dword [ebp - 0x48], esi
push eax
push esi
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x44], esi
movdqu xmmword [ebp - 0x120], xmm0
mov dword [ebp - 0x40], esi
call fcn.004114da
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0xc], esi
jmp 0x456e4e
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0xa0]
mov dword [eax + ecx*4], 0x9102071b
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x456e3b
mov ebx, dword [ebp - 0x48]
mov dword [ebp - 0x20], ebx
mov dword [ebx + 8], esi
or esi, 0xffffffff
mov dword [ebp - 0xc], esi
lea ecx, [ebp - 0xac]
mov dword [ebp - 0x1c], 0xe35fe57b
push 4
call fcn.004113a6
xor eax, eax
mov dword [ebp - 0xc], eax
jmp 0x456e8c
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xac]
mov dword [ecx + edx*4], edi
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 4
jl 0x456e7d
mov byte [ebp - 5], al
cmp byte [ebp - 5], al
je 0x456eaf
push 0x588
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowTextW]
xor eax, eax
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], eax
jg 0x456f97
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0xac]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x10], 0x9d43467
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x14], eax
jmp 0x456ee3
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x28], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x456ed9
dec dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
cmp dword [edx + 0xc], ecx
jl 0x456efd
mov edx, edi
cmp dword [ebp - 0xc], eax
je 0x456eff
mov edx, eax
mov dword [ebp - 0x1c], 0xabb7
xor ebx, ebx
mov ecx, dword [ebp - 0x10]
cmp edx, ecx
mov ecx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
setne bl
xor edx, edx
dec ebx
cmp ebx, ecx
mov ecx, dword [ebp - 0x1c]
setge dl
sub esi, edx
xor edx, edx
cmp ecx, esi
mov ecx, dword [ebp - 0x20]
setl dl
add edx, dword [ecx + 8]
xor ecx, ecx
cmp edx, 9
setne cl
xor ebx, ebx
mov dword [ebp - 0x1c], ecx
mov esi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x1c]
imul ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
sub edx, ecx
mov ecx, dword [ebp - 0xa0]
cmp dword [ecx + esi*4], edx
setge bl
xor edx, edx
mov dword [ebp - 0x1c], ebx
mov ecx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x28]
test ecx, ecx
mov ecx, dword [ebp - 0x28]
setns dl
xor ebx, ebx
cmp edx, ecx
mov ecx, dword [ebp - 0x28]
setl bl
xor edx, edx
cmp ebx, ecx
mov ecx, dword [ebp - 0x2c]
setg dl
mov dword [ecx + 4], edx
inc dword [ebp - 0xc]
mov edx, dword [ebp - 0x18]
cmp dword [ebp - 0xc], eax
jle 0x456eca
mov ebx, dword [ebp - 0x20]
or esi, 0xffffffff
lea ecx, [ebp - 0xac]
call fcn.00411478
inc dword [ebx + 8]
cmp dword [ebx + 8], 0
jle 0x456e5f
lea ecx, [ebp - 0x48]
call fcn.00411478
lea ecx, [ebp - 0xa0]
call fcn.00411478
cmp byte [ebp + 0x10], 0
je 0x45738a
mov eax, 0x5bb2c213
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
xor eax, eax
mov dword [ebp - 0x18], 0x5010f7a7
mov dword [ebp - 0x18], 0x443ac46d
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x18], 0x34bdac84
mov dword [ebp - 0x18], 0x96753f3a
mov dword [ebp - 0x18], 0x1ae9a07b
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], 3
mov dword [ebp - 0x10], eax
jmp 0x45702e
mov ecx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x58], 9
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jl 0x457020
push 2
mov dword [ebp - 0x10], eax
pop ebx
jmp 0x457048
mov ecx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x94], esi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x45703b
cmp dword [ebp - 0x80], eax
je 0x457116
mov dword [ebp - 0x18], edi
lea ecx, [ebp - 0xd4]
mov dword [ebp - 0x18], 0xfbd6c3f0
mov dword [ebp - 0x18], 0x1c3a23fe
mov dword [ebp - 0x20], 0x52d0da0b
push ebx
call fcn.004113a6
xor esi, esi
mov dword [ebp - 0x20], 0xf34ffdea
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xc], esi
jmp 0x45709e
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0xd4]
mov dword [eax + ecx*4], 0xd95da228
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ebx
jl 0x45708b
mov ecx, dword [ebp - 0x94]
xor edx, edx
mov eax, dword [ebp - 0x18]
add ecx, 0x9b6d5beb
cmp eax, ecx
setg dl
sub edx, dword [ebp - 0x20]
jne 0x4570c5
mov ebx, esi
cmp dword [ebp - 0x1c], esi
je 0x4570c7
mov ebx, edi
dec dword [ebp - 0x14]
xor edx, edx
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x80]
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x94]
setle cl
xor edx, edx
cmp ecx, ebx
setg dl
xor ecx, ecx
cmp edx, eax
setle cl
cmp dword [ebp - 0x14], ecx
jge 0x457101
mov eax, edi
cmp dword [ebp - 0x10], esi
jne 0x457103
mov eax, esi
lea ecx, [ebp - 0xd4]
mov dword [ebp - 0x1c], eax
call fcn.00411478
push 2
pop ebx
jmp 0x457146
mov byte [ebp - 5], al
cmp byte [ebp - 5], al
je 0x457133
push eax
push eax
push 0x1969
push 0x8e0
push eax
call dword [sym.imp.USER32.dll_ModifyMenuW]
xor eax, eax
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x457144
push eax
push eax
call dword [sym.imp.GDI32.dll_CopyEnhMetaFileA]
xor esi, esi
push 3
lea ecx, [ebp - 0x64]
call fcn.004113a6
push dword [ebp - 0x58]
movdqa xmm0, xmmword [0xa5c810]
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0x110]
mov dword [ebp - 0xc], 4
push eax
push esi
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x70], esi
movdqu xmmword [ebp - 0x110], xmm0
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x68], esi
call fcn.004114da
xor eax, eax
push 3
mov dword [ebp - 0x10], eax
pop esi
jmp 0x4571a5
mov ecx, dword [ebp - 0x10]
mov dword [ebp + ecx*4 - 0x138], 5
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x457194
mov dword [ebp - 0x10], eax
jmp 0x4571bc
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x64]
or dword [ecx + edx*4], 0xffffffff
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x4571af
mov ecx, dword [ebp - 0x64]
mov dword [ecx], eax
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x10], ebx
cmp dword [ebp - 0x10], eax
jl 0x4571f5
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x4571e9
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceW]
xor eax, eax
mov dword [ebp - 0xc], 0xfffffffc
dec dword [ebp - 0x10]
jns 0x4571d5
mov ecx, dword [ebp - 0x64]
inc dword [ecx]
cmp dword [ecx], ebx
jle 0x4571c6
mov dword [ebp - 0xc], 0xffffffee
jmp 0x457237
mov dword [ebp - 0x18], 0x31d2
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x64]
mov dword [ecx], edx
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x457234
push 0x588
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowTextW]
xor eax, eax
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x16
jl 0x457207
lea ecx, [ebp - 0x70]
call fcn.00411478
lea ecx, [ebp - 0x64]
call fcn.00411478
mov dword [ebp - 0x14], 0xd1454bcd
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0xc], 0xfffffffb
mov dword [ebp - 0x10], edi
push edi
call fcn.004113a6
mov dword [ebp - 0x18], 0x5fef4072
mov eax, 0x1af53c8c
mov dword [ebp - 0xc], 0x4f5fdfda
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], eax
xor eax, eax
mov dword [ebp - 0xc], eax
jmp 0x4572a9
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x3c]
mov dword [ecx + edx*4], 0x73ed1322
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x457299
mov byte [ebp - 5], al
cmp byte [ebp - 5], al
je 0x4572c0
push eax
push eax
call dword [sym.imp.USER32.dll_LoadIconA]
xor eax, eax
mov ecx, dword [ebp - 0x14]
xor ebx, ebx
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
cmp edx, ecx
setge bl
xor edx, edx
mov dword [ebp - 0xc], ebx
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
cmp ecx, 0xfffffffd
setge dl
sub edx, dword [ebp - 0x14]
cmp edx, 0x87b35f19
sbb ecx, ecx
xor ebx, ebx
inc ecx
imul ecx, dword [ebp - 0x14]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
cmp edx, ecx
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x3c]
setl bl
add edx, 0x6c7a
add edx, ebx
mov dword [ecx], edx
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x3c]
cmp dword [ecx], edi
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x3c]
sub edx, dword [ecx]
je 0x45733c
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0xc], eax
jne 0x457350
mov ecx, dword [ebp - 0x3c]
cmp dword [ecx], eax
jne 0x457350
mov edi, eax
mov dword [ebp - 0xc], edi
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0x14]
add ecx, dword [ebp - 0xc]
jne 0x457361
mov ecx, dword [ebp - 0xc]
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0xc0], eax
call fcn.00411478
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx]
test eax, eax
jns 0x45763d
add eax, 0x100
js 0x45737c
mov dword [ecx], eax
jmp 0x45763d
mov dword [ebp - 0x14], 0xfffffffc
xor eax, eax
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xc], eax
jmp 0x4573ab
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0xf0], edi
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x45739e
cmp dword [ebp - 0x14], eax
je 0x4573d3
mov byte [ebp - 5], al
cmp byte [ebp - 5], al
je 0x457472
push eax
push 0xd22
push eax
call dword [sym.imp.OLEAUT32.dll_SafeArrayLock]
jmp 0x457472
mov dword [ebp - 0xc], 0xb441791e
mov dword [ebp - 0x24], 3
cmp dword [ebp - 0x14], eax
je 0x45740e
mov ecx, dword [ebp - 0x14]
add ecx, 0x8068
imul ecx, dword [ebp - 0x14]
sub ecx, 0x478c9dff
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x10], edi
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
xor ebx, ebx
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0xc]
imul edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
cmp edx, ecx
setl bl
xor ecx, ecx
cmp ebx, esi
setne cl
xor edx, edx
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x24], ecx
setle dl
xor ecx, ecx
test edx, edx
setns cl
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x14], eax
jmp 0x45746c
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x457469
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
xor eax, eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x1a
jg 0x457458
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], eax
jl 0x45749e
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x457499
mov ebx, dword [sym.imp.USER32.dll_GetDesktopWindow]
call ebx
push eax
call ebx
push eax
call dword [sym.imp.USER32.dll_SetParent]
xor eax, eax
dec dword [ebp - 0x14]
jns 0x45747c
mov dword [ebp - 0x10], 0xdb3ae355
mov dword [ebp - 0x10], eax
jmp 0x45750f
mov dword [ebp - 0xc], 0xa473eb90
mov dword [ebp - 0x24], 7
mov dword [ebp - 0xc], eax
jmp 0x4574e8
mov dword [ebp - 0x24], esi
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x4574df
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_RealizePalette]
xor eax, eax
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x24], ecx
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xffffffeb
jl 0x4574bd
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x45750c
push eax
push 0x563
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetScrollInfo]
xor eax, eax
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xe
jge 0x4574aa
push 2
pop edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x20], 0x780eec29
mov dword [ebp - 0x24], 0xdc509ca4
mov dword [ebp - 0xc], eax
jmp 0x45753b
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0x100], edx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 4
jl 0x45752e
mov dword [ebp - 0x10], eax
jmp 0x45760e
mov dword [ebp - 0xc], 0xfffffff8
mov dword [ebp - 0x24], 0x7b187b35
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x457569
push eax
call dword [sym.imp.USER32.dll_ShowCursor]
xor eax, eax
mov edx, dword [ebp - 0x10]
xor ebx, ebx
mov ecx, dword [ebp - 0x10]
cmp edx, ecx
setl bl
mov dword [ebp - 0x20], ebx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0xf8], ecx
cmp ecx, 0x3e75
jge 0x457599
cmp dword [ebp - 0xc], eax
jne 0x457599
mov esi, eax
cmp dword [ebp - 0xf8], eax
je 0x45759b
mov esi, edi
mov ecx, dword [ebp - 0xc]
xor edx, edx
cmp esi, ecx
setg dl
cmp edx, 0xffffffff
sbb ecx, ecx
neg ecx
cmp ecx, 0xfff9
jne 0x4575bb
mov edx, edi
cmp dword [ebp - 0xc], eax
jne 0x4575bd
mov edx, eax
xor ecx, ecx
cmp edx, 0x75ff
setle cl
cmp edi, ecx
mov ecx, dword [ebp - 0x10]
sbb edx, edx
xor ebx, ebx
neg edx
cmp ecx, edx
setle bl
sub ebx, dword [ebp - 0x10]
neg ebx
sbb ebx, ebx
xor edx, edx
inc ebx
sub ebx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
cmp ebx, ecx
setl dl
sub edx, dword [ebp - 0x10]
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x24], edx
mov edx, 0xbf5cd53b
mov ecx, dword [ebp - 0xf8]
cmp edx, ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x24], ecx
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xfffffff8
jl 0x457549
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x457634
push eax
push eax
push 0x1dae
push 0x32e
push eax
call dword [sym.imp.USER32.dll_InsertMenuA]
mov eax, dword [ebp + 8]
mov dword [eax], 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret