Function at 0x10026d80
Capabilities:
Check for time delay via gettickcount
Identify system language via api

Disassembly:
sub esp, 0x48
mov ax, word [0x10047bac]
push ebx
movsx edx, word [0x10047bb2]
sub word [0x10047bae], ax
push ebp
push esi
mov esi, ecx
push edi
push 0xf095ffff
mov ecx, dword [esi]
mov edi, dword [esi + 4]
mov ebp, dword [esi + 8]
mov ebx, dword [esi + 0xc]
push edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], ecx
call fcn.10007740
mov cl, byte [0x10047ba9]
add esp, 8
add cl, al
mov al, byte [0x10047ba8]
add al, 0xfe
mov byte [0x10047ba9], cl
mov byte [0x10047ba8], al
mov eax, dword [esp + 0x5c]
push 0x40
lea ecx, [esp + 0x1c]
push eax
push ecx
mov ecx, esi
call fcn.10028310
mov esi, dword [esp + 0x18]
mov edx, edi
mov ecx, dword [esp + 0x10]
mov eax, ebp
not edx
and edx, ebx
and eax, edi
or edx, eax
mov word [0x10047baa], 1
add edx, esi
lea eax, [ecx + edx - 0x28955b88]
mov dl, byte [0x10047ba8]
mov esi, eax
mov ecx, edi
shr esi, 0x19
shl eax, 7
or esi, eax
add esi, edi
dec dl
mov eax, esi
and ecx, esi
not eax
and eax, ebp
mov byte [0x10047ba3], dl
mov edx, dword [esp + 0x1c]
or eax, ecx
add eax, edx
lea eax, [ebx + eax - 0x173848aa]
mov ebx, eax
shr ebx, 0x14
shl eax, 0xc
or ebx, eax
add ebx, esi
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov cl, byte [0x10047ba1]
mov edx, ebx
add cl, al
mov eax, ebx
not edx
and edx, edi
and eax, esi
or edx, eax
mov eax, dword [esp + 0x20]
add edx, eax
mov byte [0x10047ba1], cl
lea eax, [edx + ebp + 0x242070db]
mov ebp, eax
shr ebp, 0xf
shl eax, 0x11
or ebp, eax
mov dl, byte [0x10047ba6]
add ebp, ebx
movsx ecx, cl
or ecx, 0x223ffff
inc dl
mov byte [0x10047ba6], dl
mov edx, ebp
not edx
mov eax, ebx
and edx, esi
and eax, ebp
push 0xd643ffff
or edx, eax
mov eax, dword [esp + 0x28]
add edx, eax
push 0xad21ffff
mov dword [0x10047bd8], ecx
lea eax, [edi + edx - 0x3e423112]
mov edi, eax
shl edi, 0x16
shr eax, 0xa
or edi, eax
add edi, ebp
call fcn.10007650
mov ecx, edi
mov edx, ebp
not ecx
and ecx, ebx
and edx, edi
or ecx, edx
mov edx, dword [esp + 0x30]
add ecx, edx
mov dword [0x10047bc0], eax
lea eax, [esi + ecx - 0xa83f051]
mov esi, eax
shr esi, 0x19
shl eax, 7
or esi, eax
movsx eax, byte [0x10047ba5]
push eax
push 0xe2c5ffff
add esi, edi
call fcn.10007650
mov ecx, dword [0x10047bd0]
mov edx, edi
add ecx, eax
mov eax, dword [esp + 0x3c]
mov dword [0x10047bd0], ecx
mov ecx, esi
not ecx
and ecx, ebp
and edx, esi
or ecx, edx
push 0x39efffff
add ecx, eax
push 0x8a6dffff
lea eax, [ebx + ecx + 0x4787c62a]
mov ebx, eax
shr ebx, 0x14
shl eax, 0xc
or ebx, eax
add ebx, esi
call fcn.100076b0
mov byte [0x10047ba2], al
push 0xa35ffff
movsx eax, word [0x10047bb8]
push eax
call fcn.10007700
mov ecx, ebx
mov edx, ebx
not ecx
and ecx, edi
and edx, esi
mov dword [0x10047bc4], eax
mov eax, dword [esp + 0x50]
or ecx, edx
add ecx, eax
lea eax, [ecx + ebp - 0x57cfb9ed]
mov ebp, eax
shr ebp, 0xf
shl eax, 0x11
mov dl, byte [0x10047ba8]
or ebp, eax
mov al, byte [0x10047ba3]
add ebp, ebx
inc al
dec dl
mov ecx, ebp
mov byte [0x10047ba8], dl
mov byte [0x10047ba3], al
mov ax, word [0x10047bae]
add word [0x10047bb0], ax
mov eax, dword [esp + 0x54]
not ecx
mov edx, ebx
and ecx, esi
and edx, ebp
push 0xaae1ffff
or ecx, edx
add ecx, eax
lea eax, [edi + ecx - 0x2b96aff]
mov edi, eax
shl edi, 0x16
shr eax, 0xa
or edi, eax
mov eax, dword [0x10047bd4]
push eax
add edi, ebp
call fcn.100076b0
movsx ecx, byte [0x10047ba4]
mov edx, dword [0x10047bd4]
push ecx
push edx
mov byte [0x10047ba8], al
call fcn.10007740
mov dword [0x10047bc4], eax
mov eax, dword [0x10047be0]
push eax
push 0xfeabffff
call fcn.10007740
mov ecx, edi
mov edx, ebp
not ecx
and ecx, ebx
and edx, edi
or ecx, edx
mov edx, dword [esp + 0x70]
add ecx, edx
mov word [0x10047bb6], ax
mov edx, edi
add esp, 0x38
lea eax, [esi + ecx + 0x698098d8]
mov esi, eax
shr esi, 0x19
shl eax, 7
or esi, eax
movsx ax, byte [0x10047ba0]
add esi, edi
sub ax, word [0x10047bac]
mov ecx, esi
and edx, esi
not ecx
and ecx, ebp
mov word [0x10047bb4], ax
or ecx, edx
mov edx, dword [esp + 0x3c]
add ecx, edx
inc word [0x10047bb8]
lea eax, [ebx + ecx - 0x74bb0851]
mov ebx, eax
shr ebx, 0x14
shl eax, 0xc
or ebx, eax
add ebx, esi
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov cl, byte [0x10047ba2]
add cl, al
mov eax, ebx
not eax
mov byte [0x10047ba2], cl
and eax, edi
mov ecx, ebx
and ecx, esi
push 0x4c9fffff
or eax, ecx
mov ecx, dword [esp + 0x44]
add eax, ecx
mov ecx, dword [0x10047bdc]
movsx edx, word [0x10047bb0]
lea eax, [eax + ebp - 0xa44f]
push 0x6d67ffff
mov ebp, eax
shr ebp, 0xf
shl eax, 0x11
or ebp, eax
mov eax, dword [0x10047bc8]
and edx, eax
add ebp, ebx
add ecx, edx
mov dword [0x10047bdc], ecx
call fcn.100078b0
mov edx, dword [esp + 0x4c]
mov byte [0x10047ba6], al
mov eax, ebp
mov ecx, ebx
not eax
and eax, esi
and ecx, ebp
or eax, ecx
mov cl, byte [0x10047ba1]
add eax, edx
mov edx, dword [0x10047bc4]
mov dword [0x10047bcc], 0x7073fffe
lea eax, [edi + eax - 0x76a32842]
mov edi, eax
shl edi, 0x16
shr eax, 0xa
or edi, eax
add edi, ebp
test edx, edx
mov edx, dword [0x10047bd4]
setne al
add al, cl
push edx
mov byte [0x10047ba0], al
movsx eax, byte [0x10047ba8]
push eax
call fcn.100078b0
mov ecx, dword [0x10047bd8]
mov edx, ebp
add ecx, eax
mov eax, dword [esp + 0x58]
mov dword [0x10047bd8], ecx
mov ecx, edi
not ecx
and ecx, ebx
and edx, edi
or ecx, edx
push 0x425fffff
add ecx, eax
lea eax, [esi + ecx + 0x6b901122]
mov esi, eax
shr esi, 0x19
shl eax, 7
or esi, eax
movsx eax, word [0x10047bb6]
push eax
add esi, edi
call fcn.10007780
mov ecx, esi
mov edx, edi
not ecx
and ecx, ebp
and edx, esi
or ecx, edx
mov edx, dword [esp + 0x64]
add ecx, edx
mov word [0x10047bb2], ax
lea eax, [ebx + ecx - 0x2678e6d]
mov ebx, eax
shr ebx, 0x14
shl eax, 0xc
or ebx, eax
mov al, byte [0x10047baa]
push 0x5437ffff
neg al
push 0xd2c1ffff
add ebx, esi
mov byte [0x10047ba1], al
call fcn.10007700
mov ecx, ebx
mov dword [0x10047bc4], eax
not ecx
mov edx, ecx
mov eax, ebx
and edx, edi
and eax, esi
or edx, eax
mov eax, dword [esp + 0x70]
add edx, eax
add esp, 0x20
mov byte [0x10047ba0], 1
lea eax, [edx + ebp - 0x5986bc72]
mov edx, ebx
mov ebp, eax
shr ebp, 0xf
shl eax, 0x11
or ebp, eax
mov al, byte [0x10047ba4]
add ebp, ebx
inc al
mov byte [0x10047ba4], al
mov eax, ebp
not eax
mov dword [esp + 0x5c], eax
and eax, esi
and edx, ebp
or eax, edx
mov edx, dword [esp + 0x54]
add eax, edx
mov dl, byte [0x10047bc4]
lea eax, [edi + eax + 0x49b40821]
mov edi, eax
shl edi, 0x16
shr eax, 0xa
or edi, eax
mov al, byte [0x10047ba8]
sub al, dl
mov dl, byte [0x10047ba2]
add edi, ebp
add dl, al
mov byte [0x10047ba2], dl
mov dx, word [0x10047bb2]
je 0x1002727e
test dx, dx
mov word [0x10047bbc], 1
jne 0x10027287
mov word [0x10047bbc], 0
mov eax, ebx
and ecx, ebp
and eax, edi
mov byte [0x10047ba3], 0
or ecx, eax
mov eax, dword [esp + 0x1c]
add ecx, eax
mov eax, dword [esp + 0x5c]
and eax, edi
lea ecx, [esi + ecx - 0x9e1da9e]
mov esi, ecx
shr esi, 0x1b
shl ecx, 5
or esi, ecx
movsx cx, byte [0x10047ba7]
neg ecx
mov word [0x10047bb0], cx
add esi, edi
mov ecx, ebp
mov dword [esp + 0x10], esi
and ecx, esi
or eax, ecx
mov ecx, dword [esp + 0x30]
add eax, ecx
movsx edx, dx
lea eax, [ebx + eax - 0x3fbf4cc0]
push edx
mov ebx, eax
push 0
shr ebx, 0x17
shl eax, 9
or ebx, eax
add ebx, esi
call fcn.100078b0
mov byte [0x10047ba6], al
mov eax, edi
not eax
mov ecx, ebx
and eax, esi
and ecx, edi
or eax, ecx
mov ecx, dword [esp + 0x4c]
add eax, ecx
movsx dx, byte [0x10047ba0]
lea eax, [eax + ebp + 0x265e5a51]
mov ebp, eax
shr ebp, 0x12
shl eax, 0xe
or ebp, eax
mov eax, dword [0x10047bc4]
add ebp, ebx
inc edx
push eax
push 0xb18bffff
mov dword [esp + 0x6c], ebp
mov word [0x10047bba], dx
call fcn.10007830
mov ecx, esi
mov edx, ebp
not ecx
and ecx, ebx
and edx, esi
or ecx, edx
mov edx, dword [esp + 0x28]
add ecx, edx
mov dword [0x10047bd8], eax
mov eax, ebx
mov edx, ebx
lea edi, [edi + ecx - 0x16493856]
mov cl, byte [0x10047ba3]
mov esi, edi
shl esi, 0x14
shr edi, 0xc
or esi, edi
add esi, ebp
dec cl
not eax
and eax, ebp
and edx, esi
mov byte [0x10047ba3], cl
or eax, edx
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x20]
add eax, edi
lea eax, [edx + eax - 0x29d0efa3]
mov edi, eax
shr edi, 0x1b
shl eax, 5
or edi, eax
movsx eax, cl
movsx ecx, byte [0x10047ba8]
push eax
push ecx
add edi, esi
call fcn.10007740
add esp, 0x18
mov dword [0x10047bcc], eax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov edx, dword [0x10047bd4]
push 0x20edffff
add edx, eax
mov eax, dword [0x10047be4]
mov dword [0x10047bd4], edx
mov edx, ebp
not edx
and edx, esi
and ebp, edi
or edx, ebp
mov ebp, dword [esp + 0x44]
add edx, ebp
push eax
lea ebx, [ebx + edx + 0x2441453]
mov ebp, ebx
shr ebp, 0x17
shl ebx, 9
or ebp, ebx
add ebp, edi
call fcn.100076b0
mov ecx, dword [0x10047be4]
push 0x83d5ffff
add ecx, eax
mov dword [0x10047be4], ecx
movsx ecx, byte [0x10047ba7]
push ecx
call fcn.10007650
mov ebx, dword [esp + 0x64]
mov edx, esi
mov ecx, dword [esp + 0x6c]
mov dword [0x10047bc0], eax
not edx
mov eax, ebp
and edx, edi
and eax, esi
or edx, eax
add edx, ebx
lea eax, [ecx + edx - 0x275e197f]
mov edx, dword [0x10047be4]
mov ebx, eax
push edx
shr ebx, 0x12
shl eax, 0xe
or ebx, eax
movsx eax, byte [0x10047ba0]
push eax
add ebx, ebp
call fcn.100078b0
mov al, byte [0x10047ba0]
add esp, 0x18
test al, al
je 0x10027484
cmp word [0x10047bb0], 0
mov word [0x10047bba], 1
jne 0x1002748d
mov word [0x10047bba], 0
mov edx, edi
mov eax, ebx
not edx
and edx, ebp
and eax, edi
or edx, eax
mov eax, dword [esp + 0x28]
mov cx, word [0x10047bb2]
add edx, eax
dec cx
add word [0x10047bbc], cx
lea eax, [esi + edx - 0x182c0438]
mov esi, eax
shl esi, 0x14
shr eax, 0xc
or esi, eax
add esi, ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add word [0x10047bae], ax
mov edx, ebp
not edx
mov eax, ebp
and edx, ebx
and eax, esi
mov cx, word [0x10047bc0]
or edx, eax
mov eax, dword [esp + 0x3c]
sub cx, word [0x10047bba]
add edx, eax
push 0xa44fffff
push 0x6587ffff
lea eax, [edi + edx + 0x21e1cde6]
mov word [0x10047bb2], cx
mov edi, eax
shr edi, 0x1b
shl eax, 5
or edi, eax
add edi, esi
call fcn.100077d0
mov ecx, dword [0x10047bd4]
mov dl, byte [0x10047ba4]
add ecx, eax
mov eax, ebx
mov dword [0x10047bd4], ecx
xor ecx, ecx
test dl, dl
mov edx, ebx
not edx
setne cl
and edx, esi
and eax, edi
or edx, eax
mov eax, dword [esp + 0x58]
add edx, eax
mov dword [0x10047be4], ecx
mov ecx, dword [0x10047bc8]
lea eax, [edx + ebp - 0x3cc8f82a]
push ecx
mov ebp, eax
push 0x6849ffff
shr ebp, 0x17
shl eax, 9
or ebp, eax
add ebp, edi
call fcn.10007880
movsx edx, word [0x10047bb4]
mov ecx, dword [0x10047bdc]
mov byte [0x10047ba9], al
movsx eax, word [0x10047bb2]
and edx, eax
mov eax, dword [esp + 0x34]
add ecx, edx
mov edx, ebp
mov dword [0x10047bdc], ecx
mov ecx, esi
not ecx
and ecx, edi
and edx, esi
or ecx, edx
add ecx, eax
lea eax, [ebx + ecx - 0xb2af279]
mov ebx, eax
push 0xe3bdffff
shr ebx, 0x12
shl eax, 0xe
or ebx, eax
mov eax, dword [0x10047bc0]
push eax
add ebx, ebp
call fcn.100078b0
mov ecx, edi
mov edx, ebx
not ecx
and ecx, ebp
and edx, edi
or ecx, edx
mov edx, dword [esp + 0x50]
add ecx, edx
mov byte [0x10047ba4], al
movsx edx, byte [0x10047ba7]
lea eax, [esi + ecx + 0x455a14ed]
mov ecx, ebp
mov esi, eax
push edx
shl esi, 0x14
shr eax, 0xc
or esi, eax
mov eax, ebp
add esi, ebx
mov byte [0x10047ba8], 1
not eax
and eax, ebx
and ecx, esi
or eax, ecx
mov ecx, dword [esp + 0x68]
add eax, ecx
lea eax, [edi + eax - 0x561c16fb]
mov edi, eax
shr edi, 0x1b
shl eax, 5
or edi, eax
mov eax, dword [0x10047bc8]
push eax
add edi, esi
call fcn.10007830
mov cl, byte [0x10047ba3]
mov word [0x10047baa], 0
add cl, al
mov byte [0x10047ba3], cl
mov ecx, dword [0x10047bc0]
push ecx
push 0x8b65ffff
call fcn.100075f0
mov edx, ebx
mov dword [0x10047bd0], eax
not edx
mov eax, ebx
and edx, esi
and eax, edi
mov ecx, dword [0x10047bc4]
or edx, eax
mov eax, dword [esp + 0x48]
add edx, eax
add esp, 0x28
lea eax, [edx + ebp - 0x3105c08]
push ecx
mov ebp, eax
shr ebp, 0x17
shl eax, 9
or ebp, eax
add ebp, edi
call dword [sym.imp.USER32.dll_IsMenu]
mov cl, byte [0x10047ba7]
mov edx, dword [0x10047bcc]
add cl, al
or edx, 0xfd55ffff
push 0xe79ffff
push 0xe7edffff
mov byte [0x10047ba7], cl
mov dword [0x10047bc0], edx
call fcn.10007880
mov ecx, dword [0x10047bcc]
mov edx, dword [esp + 0x3c]
add ecx, eax
mov eax, esi
mov dword [0x10047bcc], ecx
not eax
mov ecx, ebp
and eax, edi
and ecx, esi
or eax, ecx
mov ecx, dword [0x10047bdc]
add eax, edx
mov edx, edi
not edx
lea eax, [ebx + eax + 0x676f02d9]
and edx, ebp
mov ebx, eax
push ecx
shr ebx, 0x12
shl eax, 0xe
or ebx, eax
add ebx, ebp
inc word [0x10047bb0]
mov eax, ebx
and eax, edi
or edx, eax
mov eax, dword [esp + 0x54]
add edx, eax
lea eax, [esi + edx - 0x72d5b376]
movsx edx, byte [0x10047ba2]
mov esi, eax
push edx
shl esi, 0x14
shr eax, 0xc
or esi, eax
add esi, ebx
call fcn.10007880
mov word [0x10047baa], ax
mov eax, dword [0x10047be4]
push 0xb1a7ffff
push eax
call fcn.10007780
mov edx, dword [0x10047be4]
mov ecx, ebp
xor ecx, ebx
add edx, eax
mov eax, dword [esp + 0x44]
xor ecx, esi
add ecx, eax
dec word [0x10047bac]
mov dword [0x10047be4], edx
xor edx, edx
lea eax, [edi + ecx - 0x5c6be]
mov ecx, ebx
mov edi, eax
shr edi, 0x1c
shl eax, 4
or edi, eax
mov al, byte [0x10047ba8]
add edi, esi
test al, al
mov al, byte [0x10047ba3]
setne dl
dec al
xor ecx, esi
mov byte [0x10047ba4], al
mov eax, dword [esp + 0x50]
xor ecx, edi
mov word [0x10047bb6], dx
mov edx, dword [0x10047bcc]
add ecx, eax
imul edx, dword [0x10047bdc]
lea eax, [ecx + ebp - 0x788e097f]
add word [0x10047bae], dx
mov ebp, eax
shr ebp, 0x15
shl eax, 0xb
or ebp, eax
add ebp, edi
mov eax, ebp
xor eax, esi
xor eax, edi
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x68]
add eax, ecx
push 0xaecfffff
push 0xdb23ffff
lea eax, [ebx + eax + 0x6d9d6122]
mov ebx, eax
shr ebx, 0x10
shl eax, 0x10
or ebx, eax
mov eax, ebp
add ebx, ebp
inc word [0x10047bb4]
xor eax, ebx
mov dword [esp + 0x7c], eax
xor eax, edi
add eax, edx
lea eax, [esi + eax - 0x21ac7f4]
mov esi, eax
shl esi, 0x17
shr eax, 9
or esi, eax
add esi, ebx
call fcn.10007740
add word [0x10047baa], ax
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x3c]
xor eax, esi
mov ecx, dword [0x10047be0]
add eax, edx
movsx edx, byte [0x10047ba2]
imul ecx, ecx, 0xd127ffff
lea eax, [edi + eax - 0x5b4115bc]
push ecx
mov edi, eax
mov dword [0x10047bc8], ecx
shr edi, 0x1c
shl eax, 4
or edi, eax
mov eax, dword [0x10047bc0]
and edx, eax
mov eax, dword [0x10047bd0]
add eax, edx
mov word [0x10047bbc], 1
mov dword [0x10047bd0], eax
add edi, esi
movsx eax, byte [0x10047ba9]
push eax
call fcn.10007880
mov edx, dword [esp + 0x50]
add word [0x10047bac], ax
mov ecx, ebx
add esp, 0x28
xor ecx, esi
xor ecx, edi
add ecx, edx
lea eax, [ecx + ebp + 0x4bdecfa9]
mov ebp, eax
shr ebp, 0x15
shl eax, 0xb
or ebp, eax
add ebp, edi
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov edx, ebp
mov byte [0x10047ba7], al
mov eax, dword [esp + 0x34]
xor edx, esi
xor edx, edi
inc word [0x10047bb6]
add edx, eax
push 0xf75ffff
push 0xa529ffff
lea eax, [ebx + edx - 0x944b4a0]
mov ebx, eax
shr ebx, 0x10
shl eax, 0x10
or ebx, eax
add ebx, ebp
call fcn.10007830
mov edx, dword [0x10047bc0]
add edx, eax
movsx eax, word [0x10047bba]
movsx ecx, byte [0x10047ba6]
push eax
push ecx
mov dword [0x10047bc0], edx
call fcn.10007880
mov dl, byte [0x10047ba5]
push 0xcb43ffff
add dl, al
push 0x137bffff
mov byte [0x10047ba5], dl
call fcn.100078b0
mov cl, byte [0x10047ba4]
mov edx, dword [esp + 0x58]
add cl, al
mov eax, ebp
xor eax, ebx
push 0x9b77ffff
mov dword [esp + 0x78], eax
xor eax, edi
add eax, edx
mov edx, dword [0x10047be0]
mov byte [0x10047ba4], cl
lea eax, [esi + eax - 0x41404390]
mov esi, eax
shl esi, 0x17
shr eax, 9
or esi, eax
add esi, ebx
inc edx
mov dword [0x10047be0], edx
movsx edx, word [0x10047baa]
push edx
call fcn.10007830
mov dl, byte [0x10047ba5]
add esp, 0x20
add dl, al
mov eax, dword [esp + 0x5c]
mov byte [0x10047ba5], dl
mov edx, dword [esp + 0x4c]
xor eax, esi
add eax, edx
lea eax, [edi + eax + 0x289b7ec6]
mov edi, eax
shr edi, 0x1c
shl eax, 4
or edi, eax
add edi, esi
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov word [0x10047baa], ax
mov eax, dword [0x10047bc4]
push eax
push 0xd1ffff
call fcn.10007650
mov ecx, dword [0x10047bd8]
mov edx, dword [esp + 0x20]
add ecx, eax
mov al, byte [0x10047ba7]
mov dword [0x10047bd8], ecx
sub al, cl
mov ecx, ebx
mov byte [0x10047ba7], al
xor ecx, esi
add esp, 8
xor ecx, edi
add ecx, edx
lea eax, [ecx + ebp - 0x155ed806]
mov ebp, eax
shr ebp, 0x15
shl eax, 0xb
or ebp, eax
add ebp, edi
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov ecx, dword [0x10047bc8]
mov edx, ebp
xor edx, esi
add ecx, eax
mov eax, dword [esp + 0x24]
xor edx, edi
mov dword [0x10047bc8], ecx
add edx, eax
lea eax, [ebx + edx - 0x2b10cf7b]
push 0x6427ffff
mov ebx, eax
push ecx
shr ebx, 0x10
shl eax, 0x10
or ebx, eax
add ebx, ebp
call fcn.10007700
mov cl, byte [0x10047ba1]
add cl, al
mov eax, dword [0x10047bd0]
sub eax, 0x2740002
mov byte [0x10047ba1], cl
push eax
push 0x7ecbffff
mov dword [0x10047bd0], eax
call fcn.100078b0
mov edx, dword [esp + 0x40]
mov word [0x10047bb2], ax
mov eax, ebp
mov ecx, dword [0x10047bc4]
xor eax, ebx
add esp, 0x10
mov dword [esp + 0x5c], eax
xor eax, edi
add eax, edx
push 0xf28dffff
lea eax, [esi + eax + 0x4881d05]
mov esi, eax
shl esi, 0x17
shr eax, 9
or esi, eax
mov eax, dword [0x10047bdc]
or eax, 0x96c9ffff
add esi, ebx
add ecx, eax
mov dword [0x10047bc4], ecx
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov ecx, dword [esp + 0x3c]
mov dword [0x10047bc0], eax
mov eax, dword [esp + 0x5c]
xor eax, esi
movsx edx, word [0x10047bae]
add eax, ecx
movsx ecx, byte [0x10047ba5]
lea eax, [edi + eax - 0x262b2fc7]
and ecx, edx
mov edi, eax
shr edi, 0x1c
shl eax, 4
or edi, eax
mov eax, dword [0x10047be4]
add eax, ecx
add edi, esi
mov dword [0x10047be4], eax
call dword [sym.imp.USER32.dll_GetForegroundWindow]
add word [0x10047bb6], ax
mov ecx, dword [esp + 0x48]
mov eax, ebx
push 0x7d9ffff
xor eax, esi
push 0x4bafffff
xor eax, edi
add eax, ecx
lea eax, [eax + ebp - 0x1924661b]
mov ebp, eax
shr ebp, 0x15
shl eax, 0xb
or ebp, eax
add ebp, edi
call fcn.10007740
mov ecx, ebp
mov word [0x10047bb4], ax
mov eax, dword [esp + 0x5c]
xor ecx, esi
xor ecx, edi
add ecx, eax
lea eax, [ebx + ecx + 0x1fa27cf8]
mov ebx, eax
shr ebx, 0x10
movsx edx, byte [0x10047ba7]
shl eax, 0x10
or ebx, eax
mov eax, dword [0x10047bd0]
push edx
push eax
add ebx, ebp
call fcn.10007650
mov cl, byte [0x10047bb8]
mov dl, byte [0x10047bd8]
sub cl, dl
mov edx, ebp
xor edx, ebx
mov byte [0x10047ba7], al
mov eax, dword [esp + 0x30]
xor edx, edi
add edx, eax
mov byte [0x10047ba8], cl
mov ecx, ebp
lea eax, [esi + edx - 0x3b53a99b]
mov edx, dword [esp + 0x28]
mov esi, eax
shl esi, 0x17
shr eax, 9
or esi, eax
mov ax, word [0x10047bc8]
add esi, ebx
mov word [0x10047bb4], ax
not ecx
or ecx, esi
xor ecx, ebx
add ecx, edx
lea eax, [edi + ecx - 0xbd6ddbc]
mov edi, eax
shr edi, 0x1a
shl eax, 6
or edi, eax
movsx eax, word [0x10047bae]
push eax
push eax
add edi, esi
call fcn.100076b0
mov edx, dword [0x10047bd8]
push 0x9f27ffff
add edx, eax
mov eax, dword [esp + 0x50]
mov dword [0x10047bd8], edx
mov edx, ebx
not edx
or edx, edi
push 0xe7e5ffff
xor edx, esi
mov byte [0x10047ba8], 0xff
add edx, eax
lea eax, [edx + ebp + 0x432aff97]
mov ebp, eax
shr ebp, 0x16
shl eax, 0xa
or ebp, eax
add ebp, edi
call fcn.10007830
mov word [0x10047bba], ax
mov eax, dword [0x10047bd8]
add esp, 0x20
inc eax
mov ecx, dword [esp + 0x50]
mov dword [0x10047bd8], eax
mov eax, esi
push 0x8cddffff
not eax
or eax, ebp
xor eax, edi
add eax, ecx
lea eax, [ebx + eax - 0x546bdc59]
mov ebx, eax
shr ebx, 0x11
shl eax, 0xf
or ebx, eax
add ebx, ebp
call dword [sym.imp.USER32.dll_IsMenu]
mov ecx, dword [0x10047bc8]
mov edx, edi
add ecx, eax
mov eax, dword [esp + 0x2c]
push 0x8ae7ffff
not edx
or edx, ebx
push ecx
xor edx, ebp
mov dword [0x10047bc8], ecx
add edx, eax
lea eax, [esi + edx - 0x36c5fc7]
mov esi, eax
shl esi, 0x15
shr eax, 0xb
or esi, eax
add esi, ebx
call fcn.10007830
add esp, 8
mov dword [0x10047bc8], eax
call dword [sym.imp.USER32.dll_GetCapture]
mov edx, dword [esp + 0x48]
mov word [0x10047bb4], ax
mov eax, ebp
not eax
or eax, esi
movsx ecx, word [0x10047bac]
xor eax, ebx
push ecx
add eax, edx
movsx edx, byte [0x10047ba2]
lea eax, [edi + eax + 0x655b59c3]
push edx
mov edi, eax
shr edi, 0x1a
shl eax, 6
or edi, eax
add edi, esi
call fcn.100076b0
add esp, 8
mov dword [0x10047bc8], eax
call dword [sym.imp.USER32.dll_GetInputState]
mov edx, dword [esp + 0x24]
mov dword [0x10047bc4], eax
mov eax, ebx
mov ecx, dword [0x10047bcc]
not eax
or eax, edi
push ecx
xor eax, esi
mov word [0x10047bb4], 1
add eax, edx
mov edx, dword [0x10047bc8]
push edx
lea eax, [eax + ebp - 0x70f3336e]
mov ebp, eax
shr ebp, 0x16
shl eax, 0xa
or ebp, eax
add ebp, edi
call fcn.10007780
mov cl, byte [0x10047ba9]
mov edx, dword [0x10047be0]
add cl, al
mov eax, dword [0x10047be4]
inc edx
push eax
push 0x6b2fffff
mov byte [0x10047ba9], cl
mov dword [0x10047be0], edx
call fcn.10007880
mov edx, dword [esp + 0x50]
mov ecx, esi
not ecx
or ecx, ebp
mov dword [0x10047be0], eax
xor ecx, edi
add esp, 0x10
add ecx, edx
lea eax, [ebx + ecx - 0x100b83]
mov ebx, eax
shr ebx, 0x11
shl eax, 0xf
or ebx, eax
add ebx, ebp
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov dl, byte [0x10047ba6]
push 0xe10dffff
add dl, al
mov byte [0x10047ba6], dl
mov edx, dword [0x10047be0]
push edx
call fcn.10007780
movsx ecx, byte [0x10047ba7]
mov dword [0x10047bd0], eax
movsx eax, byte [0x10047ba9]
push eax
push ecx
call fcn.10007880
mov dl, byte [0x10047ba7]
add esp, 0x10
add dl, al
mov eax, dword [esp + 0x1c]
mov byte [0x10047ba7], dl
mov edx, edi
not edx
or edx, ebx
xor edx, ebp
add edx, eax
lea eax, [esi + edx - 0x7a7ba22f]
mov esi, eax
shl esi, 0x15
shr eax, 0xb
or esi, eax
add esi, ebx
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
and eax, 0xffff
inc word [0x10047bb6]
mov dword [0x10047be0], eax
movsx eax, word [0x10047bbc]
push eax
push 0x2a9fffff
call fcn.10007740
mov edx, dword [esp + 0x40]
mov ecx, ebp
not ecx
or ecx, esi
mov word [0x10047bb0], ax
xor ecx, ebx
push 0x4e39ffff
add ecx, edx
push 0x1953ffff
lea eax, [edi + ecx + 0x6fa87e4f]
mov edi, eax
shr edi, 0x1a
shl eax, 6
or edi, eax
add edi, esi
call fcn.10007700
mov edx, ebx
mov word [0x10047bb0], ax
mov eax, dword [esp + 0x64]
add esp, 0x10
not edx
or edx, edi
xor edx, esi
add edx, eax
lea eax, [edx + ebp - 0x1d31920]
mov ebp, eax
shr ebp, 0x16
shl eax, 0xa
or ebp, eax
mov ax, word [0x10047bb6]
add ebp, edi
dec ax
add word [0x10047bac], ax
cmp word [0x10047bb4], 0
je 0x10027ebe
cmp word [0x10047bae], 0
je 0x10027ebe
mov eax, 1
jmp 0x10027ec0
xor eax, eax
mov cl, byte [0x10047ba6]
add cl, al
mov eax, dword [esp + 0x30]
mov byte [0x10047ba6], cl
mov ecx, esi
not ecx
or ecx, ebp
movsx edx, word [0x10047baa]
xor ecx, edi
push edx
add ecx, eax
push 0xc417ffff
lea eax, [ebx + ecx - 0x5cfebcec]
mov ebx, eax
shr ebx, 0x11
shl eax, 0xf
or ebx, eax
add ebx, ebp
call fcn.10007650
mov edx, dword [0x10047bd8]
mov byte [0x10047ba2], 0xff
add edx, eax
mov eax, edi
not eax
or eax, ebx
mov dword [0x10047bd8], edx
mov edx, dword [esp + 0x54]
xor eax, ebp
movsx ecx, word [0x10047bac]
add eax, edx
push ecx
push 0x1c93ffff
lea eax, [esi + eax + 0x4e0811a1]
mov esi, eax
shl esi, 0x15
shr eax, 0xb
or esi, eax
add esi, ebx
call fcn.100075f0
mov cl, byte [0x10047ba6]
mov dx, word [0x10047bac]
add cl, al
mov eax, ebp
not eax
or eax, esi
mov byte [0x10047ba6], cl
mov ecx, dword [esp + 0x38]
xor eax, ebx
add eax, ecx
dec dx
push 0x56c3ffff
push 0x53afffff
lea eax, [edi + eax - 0x8ac817e]
mov word [0x10047bba], dx
mov edi, eax
shr edi, 0x1a
shl eax, 6
or edi, eax
add edi, esi
call fcn.10007780
push 0x8045ffff
push 0x5557ffff
mov dword [0x10047be4], eax
call fcn.100075f0
mov word [0x10047bb6], ax
mov eax, dword [0x10047bd8]
mov ecx, ebx
add eax, 0x7895ffff
not ecx
or ecx, edi
mov dword [0x10047bd8], eax
mov eax, dword [esp + 0x64]
xor ecx, esi
add ecx, eax
add esp, 0x20
lea eax, [ecx + ebp - 0x42c50dcb]
mov ebp, eax
shr ebp, 0x16
shl eax, 0xa
or ebp, eax
add ebp, edi
movsx edx, byte [0x10047ba0]
push edx
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov edx, dword [0x10047be0]
mov ecx, dword [0x10047bc8]
add edx, eax
push 0x655dffff
movsx eax, word [0x10047bb4]
imul eax, eax, 0x511dffff
add ecx, eax
mov dword [0x10047be0], edx
mov edx, dword [esp + 0x24]
mov dword [0x10047bc8], ecx
mov ecx, esi
not ecx
or ecx, ebp
xor ecx, edi
add ecx, edx
movsx edx, word [0x10047bac]
lea eax, [ebx + ecx + 0x2ad7d2bb]
push edx
mov ebx, eax
shr ebx, 0x11
shl eax, 0xf
or ebx, eax
add ebx, ebp
call fcn.10007700
mov edx, dword [0x10047bdc]
mov ecx, dword [0x10047bd4]
add edx, eax
mov eax, dword [0x10047bc4]
push eax
push ecx
mov dword [0x10047bdc], edx
call fcn.10007880
mov edx, dword [0x10047be4]
mov dword [0x10047bcc], eax
mov eax, dword [0x10047bdc]
add esp, 0x10
or edx, eax
mov eax, edi
not eax
or eax, ebx
mov dword [0x10047bd0], edx
mov edx, dword [esp + 0x3c]
xor eax, ebp
add eax, edx
lea ecx, [esi + eax - 0x14792c6f]
mov dword [esp + 0x5c], ecx
call dword [sym.imp.USER32.dll_GetInputState]
mov cl, byte [0x10047ba9]
add cl, al
inc word [0x10047baa]
mov byte [0x10047ba9], cl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [esp + 0x14]
add word [0x10047bb2], ax
push 0xa503ffff
push 0x152bffff
add dword [esi], edi
call fcn.10007740
mov ecx, dword [0x10047be0]
mov dl, byte [0x10047bd0]
add ecx, eax
mov al, byte [0x10047ba0]
sub dl, al
mov eax, dword [esp + 0x64]
mov dword [0x10047be0], ecx
mov ecx, eax
shl ecx, 0x15
shr eax, 0xb
or ecx, eax
mov byte [0x10047ba1], dl
mov edx, dword [esi + 4]
mov eax, dword [esi + 8]
add ecx, ebx
add esp, 8
add edx, ecx
mov dword [esi + 4], edx
add eax, ebx
mov dword [esi + 8], eax
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov bl, byte [0x10047ba5]
movsx edx, word [0x10047bb0]
add bl, al
push edx
movsx eax, word [0x10047bb2]
push eax
mov byte [0x10047ba5], bl
call fcn.10007780
mov edi, dword [0x10047be0]
mov cl, byte [0x10047bbc]
add esp, 8
add edi, eax
mov dword [0x10047be0], edi
push ecx
call dword [sym.imp.USER32.dll_IsCharAlphaNumericA]
mov dword [0x10047bcc], eax
mov ecx, dword [esi + 0xc]
add ecx, ebp
pop edi
mov dword [esi + 0xc], ecx
mov eax, dword [0x10047bdc]
inc eax
pop esi
pop ebp
mov dword [0x10047bdc], eax
pop ebx
add esp, 0x48
ret 4