Function at 0x426d93
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
movsx eax, word [0x438c28]
push ebx
push esi
push edi
mov ebx, ecx
push eax
mov dword [ebp - 0xc], ebx
call dword [sym.imp.USER32.dll_IsMenu]
add word [0x438c24], ax
mov al, byte [0x438c44]
dec al
push 0x40
push dword [ebp + 8]
mov byte [0x438c1e], al
mov eax, dword [ebx]
mov edi, dword [ebx + 4]
mov esi, dword [ebx + 8]
mov dword [ebp - 8], eax
mov eax, dword [ebx + 0xc]
or byte [0x438c1a], 0xff
mov dword [ebp - 4], eax
lea eax, [ebp - 0x4c]
push eax
mov ecx, ebx
call fcn.00427d99
xor eax, eax
push 0x2f2dffff
cmp word [0x438c32], ax
push 0xfebffff
setne al
add word [0x438c2a], ax
call fcn.0040a9de
pop ecx
mov byte [0x438c18], al
mov eax, edi
pop ecx
not eax
and eax, dword [ebp - 4]
mov ecx, esi
and ecx, edi
or eax, ecx
mov ecx, dword [ebp - 8]
add eax, dword [ebp - 0x4c]
lea eax, [ecx + eax - 0x28955b88]
mov ecx, edi
mov ebx, eax
shr ebx, 0x19
shl eax, 7
or ebx, eax
add ebx, edi
mov eax, ebx
and ecx, ebx
not eax
and eax, esi
or eax, ecx
mov ecx, dword [ebp - 4]
add eax, dword [ebp - 0x48]
lea eax, [ecx + eax - 0x173848aa]
mov ecx, eax
shr ecx, 0x14
shl eax, 0xc
or ecx, eax
add ecx, ebx
cmp dword [0x438c4c], 0
mov dword [ebp - 4], ecx
je 0x426e7f
cmp byte [0x438c1c], 0
je 0x426e7f
mov dword [0x438c48], 1
jmp 0x426e86
and dword [0x438c48], 0
mov ax, word [0x438c38]
mov edx, ecx
sub ax, word [0x438c32]
and edx, ebx
mov word [0x438c30], ax
mov eax, ecx
not eax
and eax, edi
or eax, edx
add eax, dword [ebp - 0x44]
lea eax, [esi + eax + 0x242070db]
mov esi, eax
shr esi, 0xf
shl eax, 0x11
or esi, eax
add esi, ecx
mov eax, esi
and ecx, esi
not eax
and eax, ebx
or eax, ecx
add eax, dword [ebp - 0x40]
lea eax, [edi + eax - 0x3e423112]
mov edi, eax
shl edi, 0x16
shr eax, 0xa
or edi, eax
add edi, esi
call dword [sym.imp.USER32.dll_GetActiveWindow]
add word [0x438c22], ax
mov word [0x438c24], 1
movsx eax, word [0x438c2c]
push eax
push 0x5819ffff
call fcn.0040a9a5
mov dword [0x438c48], eax
mov eax, edi
not eax
and eax, dword [ebp - 4]
mov ecx, esi
and ecx, edi
push 0x68fffff
or eax, ecx
mov ecx, edi
add eax, dword [ebp - 0x3c]
push dword [0x438c44]
lea eax, [ebx + eax - 0xa83f051]
mov ebx, eax
shr ebx, 0x19
shl eax, 7
or ebx, eax
add ebx, edi
mov eax, ebx
and ecx, ebx
not eax
and eax, esi
or eax, ecx
mov ecx, dword [ebp - 4]
add eax, dword [ebp - 0x38]
lea eax, [ecx + eax + 0x4787c62a]
mov ecx, eax
shr ecx, 0x14
shl eax, 0xc
or ecx, eax
add ecx, ebx
mov dword [ebp - 4], ecx
call fcn.0040ab0e
push 0x3431ffff
push 0x6a03ffff
mov byte [0x438c1d], al
call fcn.0040aac5
mov word [0x438c22], ax
push 0xa895ffff
movsx eax, word [0x438c32]
push eax
call fcn.0040aa18
mov ecx, dword [ebp - 4]
mov word [0x438c32], ax
mov eax, ecx
not eax
and eax, edi
mov edx, ecx
and edx, ebx
or eax, edx
add eax, dword [ebp - 0x34]
lea eax, [esi + eax - 0x57cfb9ed]
mov esi, eax
shr esi, 0xf
shl eax, 0x11
or esi, eax
add esi, ecx
mov eax, esi
and ecx, esi
not eax
and eax, ebx
or eax, ecx
add eax, dword [ebp - 0x30]
lea eax, [edi + eax - 0x2b96aff]
mov edi, eax
shl edi, 0x16
shr eax, 0xa
or edi, eax
movsx eax, word [0x438c2e]
push eax
push 0xaec9ffff
add edi, esi
call fcn.0040a9a5
add word [0x438c2a], ax
mov ax, word [0x438c24]
push dword [0x438c3c]
dec ax
add word [0x438c30], ax
movsx eax, word [0x438c32]
push eax
call fcn.0040ab0e
add dword [0x438c3c], eax
mov ecx, dword [ebp - 4]
mov eax, edi
mov edx, esi
not eax
and eax, ecx
and edx, edi
or eax, edx
mov edx, edi
add eax, dword [ebp - 0x2c]
push 0x5939ffff
push 0xbf5bffff
lea eax, [ebx + eax + 0x698098d8]
mov ebx, eax
shr ebx, 0x19
shl eax, 7
or ebx, eax
add ebx, edi
mov eax, ebx
and edx, ebx
not eax
and eax, esi
or eax, edx
add eax, dword [ebp - 0x28]
lea eax, [ecx + eax - 0x74bb0851]
mov ecx, eax
shr ecx, 0x14
shl eax, 0xc
or ecx, eax
movsx eax, byte [0x438c1f]
add ecx, ebx
or eax, 0x5237ffff
mov dword [ebp - 4], ecx
mov dword [0x438c38], eax
call fcn.0040a8f9
mov edx, dword [ebp - 4]
add dword [0x438c38], eax
mov eax, edx
mov ecx, edx
not eax
and eax, edi
and ecx, ebx
or eax, ecx
add eax, dword [ebp - 0x24]
lea esi, [esi + eax - 0xa44f]
mov eax, esi
shr eax, 0xf
shl esi, 0x11
or eax, esi
mov esi, edx
add eax, edx
push 0x9b93ffff
mov ecx, eax
and esi, eax
not ecx
and ecx, ebx
mov dword [ebp + 8], eax
or ecx, esi
mov esi, eax
add ecx, dword [ebp - 0x20]
push 0xab1fffff
lea ecx, [edi + ecx - 0x76a32842]
mov edi, ecx
shl edi, 0x16
shr ecx, 0xa
or edi, ecx
mov cx, word [0x438c50]
add word [0x438c24], cx
add edi, eax
mov ecx, edi
and esi, edi
not ecx
and ecx, edx
mov dword [ebp - 8], edi
or ecx, esi
add ecx, dword [ebp - 0x1c]
lea ecx, [ebx + ecx + 0x6b901122]
mov ebx, ecx
shr ebx, 0x19
shl ecx, 7
or ebx, ecx
add ebx, edi
mov ecx, ebx
not ecx
and ecx, eax
mov eax, edi
and eax, ebx
or ecx, eax
add ecx, dword [ebp - 0x18]
lea eax, [edx + ecx - 0x2678e6d]
mov esi, eax
shr esi, 0x14
shl eax, 0xc
or esi, eax
add esi, ebx
mov dword [ebp - 4], esi
call fcn.0040a9a5
mov ecx, dword [ebp - 4]
mov byte [0x438c19], al
not esi
mov eax, esi
and ecx, ebx
and eax, edi
mov edx, dword [ebp - 4]
or eax, ecx
mov ecx, dword [ebp + 8]
add eax, dword [ebp - 0x14]
add esp, 0x40
lea ecx, [ecx + eax - 0x5986bc72]
mov eax, ecx
shr eax, 0xf
shl ecx, 0x11
or eax, ecx
add eax, dword [ebp - 4]
mov edi, eax
and edx, eax
not edi
mov ecx, edi
mov dword [ebp + 8], eax
and ecx, ebx
or ecx, edx
mov edx, dword [ebp - 8]
add ecx, dword [ebp - 0x10]
lea ecx, [edx + ecx + 0x49b40821]
mov edx, ecx
shl edx, 0x16
shr ecx, 0xa
or edx, ecx
add edx, eax
push 0x6457ffff
push 0xed7dffff
mov dword [ebp - 8], edx
call fcn.0040aa18
add word [0x438c24], ax
mov eax, dword [ebp - 4]
and esi, dword [ebp + 8]
and eax, dword [ebp - 8]
pop ecx
or esi, eax
pop ecx
add esi, dword [ebp - 0x48]
lea esi, [ebx + esi - 0x9e1da9e]
mov ebx, esi
shr ebx, 0x1b
shl esi, 5
or ebx, esi
add ebx, dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
push 0x167ffff
push 0x9f0fffff
mov word [0x438c2a], ax
call fcn.0040aa4f
mov ecx, dword [ebp + 8]
and edi, dword [ebp - 8]
mov word [0x438c2e], ax
mov eax, ecx
and eax, ebx
push 0x4e57ffff
or edi, eax
mov eax, dword [ebp - 4]
add edi, dword [ebp - 0x34]
push 0x488dffff
lea eax, [eax + edi - 0x3fbf4cc0]
mov edi, eax
shr edi, 0x17
shl eax, 9
or edi, eax
mov eax, dword [ebp - 8]
add edi, ebx
mov edx, edi
and edx, dword [ebp - 8]
not eax
and eax, ebx
or eax, edx
add eax, dword [ebp - 0x20]
lea eax, [ecx + eax + 0x265e5a51]
mov esi, eax
shr esi, 0x12
shl eax, 0xe
or esi, eax
add esi, edi
call fcn.0040a9de
add word [0x438c22], ax
add esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
add word [0x438c22], ax
mov eax, ebx
not eax
mov ecx, esi
and eax, edi
and ecx, ebx
mov edx, edi
or eax, ecx
mov ecx, dword [ebp - 8]
add eax, dword [ebp - 0x4c]
lea ecx, [ecx + eax - 0x16493856]
mov eax, ecx
shl eax, 0x14
shr ecx, 0xc
or eax, ecx
mov ecx, edi
add eax, esi
not ecx
and ecx, esi
and edx, eax
or ecx, edx
mov dword [ebp - 8], eax
add ecx, dword [ebp - 0x38]
lea ecx, [ebx + ecx - 0x29d0efa3]
mov ebx, ecx
shr ebx, 0x1b
shl ecx, 5
or ebx, ecx
add ebx, eax
call dword [sym.imp.USER32.dll_GetActiveWindow]
add dword [0x438c5c], eax
mov eax, esi
not eax
and eax, dword [ebp - 8]
mov ecx, esi
and ecx, ebx
or eax, ecx
add eax, dword [ebp - 0x24]
lea eax, [edi + eax + 0x2441453]
mov edi, eax
shr edi, 0x17
shl eax, 9
or edi, eax
mov eax, dword [ebp - 8]
add edi, ebx
mov ecx, edi
and ecx, dword [ebp - 8]
not eax
and eax, ebx
or eax, ecx
add eax, dword [ebp - 0x10]
lea eax, [esi + eax - 0x275e197f]
mov esi, eax
shr esi, 0x12
shl eax, 0xe
or esi, eax
mov ax, word [0x438c30]
neg ax
add esi, edi
mov word [0x438c2e], ax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [0x438c5c], eax
call dword [sym.imp.USER32.dll_GetInputState]
add word [0x438c22], ax
mov eax, ebx
not eax
mov ecx, esi
and eax, edi
and ecx, ebx
mov edx, edi
or eax, ecx
mov ecx, dword [ebp - 8]
add eax, dword [ebp - 0x3c]
lea ecx, [ecx + eax - 0x182c0438]
mov eax, ecx
shl eax, 0x14
shr ecx, 0xc
or eax, ecx
mov ecx, edi
add eax, esi
not ecx
and ecx, esi
and edx, eax
or ecx, edx
mov dword [ebp - 8], eax
add ecx, dword [ebp - 0x28]
lea ecx, [ebx + ecx + 0x21e1cde6]
mov ebx, ecx
shr ebx, 0x1b
shl ecx, 5
or ebx, ecx
add ebx, eax
call dword [sym.imp.USER32.dll_GetActiveWindow]
add word [0x438c22], ax
mov ecx, dword [ebp - 8]
mov eax, esi
mov edx, esi
not eax
and eax, ecx
and edx, ebx
or eax, edx
add eax, dword [ebp - 0x14]
lea edi, [edi + eax - 0x3cc8f82a]
mov eax, edi
shr eax, 0x17
shl edi, 9
or eax, edi
mov edx, ecx
add eax, ebx
push dword [0x438c38]
not edx
mov edi, eax
and edx, ebx
and edi, ecx
mov word [0x438c26], 1
or edx, edi
add edx, dword [ebp - 0x40]
lea esi, [esi + edx - 0xb2af279]
xor edx, edx
mov edi, esi
shr edi, 0x12
shl esi, 0xe
or edi, esi
add edi, eax
inc word [0x438c28]
cmp byte [0x438c1e], dl
mov esi, edi
setne dl
mov dword [0x438c54], edx
mov edx, ebx
not edx
and edx, eax
and esi, ebx
or edx, esi
sub dword [0x438c58], 0x9000001
add edx, dword [ebp - 0x2c]
lea ecx, [ecx + edx + 0x455a14ed]
mov edx, eax
mov esi, ecx
shl esi, 0x14
shr ecx, 0xc
or esi, ecx
mov ecx, eax
add esi, edi
not ecx
and ecx, edi
and edx, esi
or ecx, edx
mov edx, edi
add ecx, dword [ebp - 0x18]
lea ecx, [ebx + ecx - 0x561c16fb]
mov ebx, ecx
shr ebx, 0x1b
shl ecx, 5
or ebx, ecx
mov ecx, edi
add ebx, esi
not ecx
and ecx, esi
and edx, ebx
or ecx, edx
add ecx, dword [ebp - 0x44]
lea eax, [eax + ecx - 0x3105c08]
mov ecx, eax
shr ecx, 0x17
shl eax, 9
or ecx, eax
mov eax, esi
add ecx, ebx
not eax
mov edx, ecx
and eax, ebx
and edx, esi
mov dword [ebp - 4], ecx
or eax, edx
add eax, dword [ebp - 0x30]
lea eax, [edi + eax + 0x676f02d9]
mov edi, eax
shr edi, 0x12
shl eax, 0xe
or edi, eax
movsx eax, byte [0x438c1c]
push eax
add edi, ecx
call fcn.0040aa83
pop ecx
add byte [0x438c1f], al
mov eax, dword [0x438c58]
or eax, 0xf93fffff
pop ecx
mov dword [0x438c54], eax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movzx eax, ax
add dword [0x438c38], eax
mov eax, ebx
not eax
and eax, dword [ebp - 4]
mov ecx, edi
and ecx, ebx
xor edx, edx
or eax, ecx
mov cl, byte [0x438c2a]
add eax, dword [ebp - 0x1c]
mov word [0x438c2a], 1
lea eax, [esi + eax - 0x72d5b376]
mov esi, eax
shl esi, 0x14
shr eax, 0xc
or esi, eax
mov eax, dword [0x438c58]
add cl, al
add esi, edi
add byte [0x438c1a], cl
mov ecx, dword [ebp - 4]
test eax, eax
mov eax, ecx
setne dl
xor eax, edi
xor eax, esi
add eax, dword [ebp - 0x38]
lea eax, [ebx + eax - 0x5c6be]
mov ebx, eax
shr ebx, 0x1c
shl eax, 4
or ebx, eax
mov eax, edi
add ebx, esi
xor eax, esi
xor eax, ebx
inc dword [0x438c40]
add eax, dword [ebp - 0x2c]
lea ecx, [ecx + eax - 0x788e097f]
mov eax, ecx
shr eax, 0x15
shl ecx, 0xb
or eax, ecx
add eax, ebx
mov ecx, eax
mov dword [ebp - 4], eax
xor ecx, esi
xor ecx, ebx
add ecx, dword [ebp - 0x20]
lea ecx, [edi + ecx + 0x6d9d6122]
mov edi, ecx
shr edi, 0x10
shl ecx, 0x10
or edi, ecx
add edi, eax
mov eax, dword [0x438c48]
lea eax, [eax + edx + 1]
mov dword [0x438c48], eax
movsx eax, word [0x438c26]
push eax
movsx eax, word [0x438c28]
push eax
call fcn.0040aa18
add word [0x438c2a], ax
mov eax, dword [ebp - 4]
xor eax, edi
mov ecx, eax
xor ecx, ebx
add ecx, dword [ebp - 0x14]
lea ecx, [esi + ecx - 0x21ac7f4]
mov esi, ecx
shl esi, 0x17
shr ecx, 9
or esi, ecx
add esi, edi
push 0xad21ffff
xor eax, esi
push 0xe59fffff
add eax, dword [ebp - 0x48]
lea eax, [ebx + eax - 0x5b4115bc]
mov ebx, eax
shr ebx, 0x1c
shl eax, 4
or ebx, eax
movsx ax, byte [0x438c1e]
neg eax
add ebx, esi
mov word [0x438c24], ax
call fcn.0040a96f
add dword [0x438c58], eax
mov ecx, dword [ebp - 4]
mov eax, edi
push 0x42bfffff
xor eax, esi
push 0xc1edffff
xor eax, ebx
add eax, dword [ebp - 0x3c]
lea ecx, [ecx + eax + 0x4bdecfa9]
mov eax, ecx
shr eax, 0x15
shl ecx, 0xb
or eax, ecx
add eax, ebx
mov ecx, eax
mov dword [ebp - 4], eax
xor ecx, esi
xor ecx, ebx
add ecx, dword [ebp - 0x30]
lea ecx, [edi + ecx - 0x944b4a0]
mov edi, ecx
shr edi, 0x10
shl ecx, 0x10
or edi, ecx
add edi, eax
call fcn.0040a8f9
add byte [0x438c1d], al
push 0xaf69ffff
push 0x499dffff
call fcn.0040aa4f
mov word [0x438c30], ax
movsx eax, word [0x438c32]
push eax
push dword [0x438c5c]
call fcn.0040aa4f
mov edx, dword [ebp - 4]
add dword [0x438c38], eax
mov eax, edx
sub dword [0x438c3c], 0x3d89ffff
xor eax, edi
add esp, 0x28
mov ecx, eax
xor ecx, ebx
add ecx, dword [ebp - 0x24]
lea ecx, [esi + ecx - 0x41404390]
mov esi, ecx
shl esi, 0x17
shr ecx, 9
or esi, ecx
add esi, edi
xor eax, esi
add eax, dword [ebp - 0x18]
lea eax, [ebx + eax + 0x289b7ec6]
mov ebx, eax
shr ebx, 0x1c
shl eax, 4
or ebx, eax
add ebx, esi
cmp byte [0x438c18], 0
je 0x4276c4
cmp byte [0x438c1f], 0
je 0x4276c4
mov word [0x438c2c], 1
jmp 0x4276cc
and word [0x438c2c], 0
mov al, byte [0x438c3c]
sub byte [0x438c18], al
mov eax, edi
xor eax, esi
xor eax, ebx
add eax, dword [ebp - 0x4c]
lea eax, [edx + eax - 0x155ed806]
mov ecx, eax
shr ecx, 0x15
shl eax, 0xb
or ecx, eax
add ecx, ebx
mov eax, ecx
mov dword [ebp - 4], ecx
xor eax, esi
xor eax, ebx
add eax, dword [ebp - 0x40]
lea eax, [edi + eax - 0x2b10cf7b]
mov edi, eax
shr edi, 0x10
shl eax, 0x10
or edi, eax
mov ax, word [0x438c5c]
sub ax, word [0x438c28]
add edi, ecx
inc dword [0x438c5c]
mov dword [ebp + 8], edi
mov word [0x438c28], ax
call dword [sym.imp.KERNEL32.dll_GetLastError]
add byte [0x438c1a], al
mov eax, dword [ebp - 4]
xor eax, edi
push 0x1923ffff
mov ecx, eax
push dword [0x438c3c]
xor ecx, ebx
add ecx, dword [ebp - 0x34]
lea ecx, [esi + ecx + 0x4881d05]
mov esi, ecx
shl esi, 0x17
shr ecx, 9
or esi, ecx
add esi, edi
xor eax, esi
add eax, dword [ebp - 0x28]
lea eax, [ebx + eax - 0x262b2fc7]
mov ebx, eax
shr ebx, 0x1c
shl eax, 4
or ebx, eax
add ebx, esi
call fcn.0040aa83
add byte [0x438c1e], al
mov eax, dword [ebp - 4]
xor edi, esi
mov ecx, dword [ebp + 8]
xor edi, ebx
add edi, dword [ebp - 0x1c]
lea eax, [eax + edi - 0x1924661b]
mov edi, eax
shr edi, 0x15
shl eax, 0xb
or edi, eax
add edi, ebx
mov eax, edi
xor eax, esi
xor eax, ebx
add eax, dword [ebp - 0x10]
lea ecx, [ecx + eax + 0x1fa27cf8]
mov eax, ecx
shr eax, 0x10
shl ecx, 0x10
or eax, ecx
mov ecx, edi
add eax, edi
dec byte [0x438c1f]
xor ecx, eax
mov dword [ebp + 8], eax
xor ecx, ebx
add ecx, dword [ebp - 0x44]
lea ecx, [esi + ecx - 0x3b53a99b]
mov esi, ecx
push 0x836fffff
shl esi, 0x17
shr ecx, 9
or esi, ecx
or cl, 0xff
sub cl, byte [0x438c32]
add esi, eax
mov byte [0x438c1a], cl
xor ecx, ecx
cmp byte [0x438c1e], cl
setne cl
add dword [0x438c48], ecx
mov ecx, edi
not ecx
or ecx, esi
xor ecx, eax
add ecx, dword [ebp - 0x4c]
not eax
lea ecx, [ebx + ecx - 0xbd6ddbc]
mov ebx, ecx
shr ebx, 0x1a
shl ecx, 6
or ebx, ecx
add ebx, esi
or eax, ebx
xor eax, esi
add eax, dword [ebp - 0x30]
lea eax, [edi + eax + 0x432aff97]
mov edi, eax
shr edi, 0x16
shl eax, 0xa
or edi, eax
movsx eax, word [0x438c2e]
push eax
add edi, ebx
call fcn.0040aac5
add byte [0x438c1d], al
mov eax, dword [0x438c38]
add eax, 0xea020001
add esp, 0x10
mov dword [0x438c44], eax
call dword [sym.imp.USER32.dll_GetInputState]
add word [0x438c26], ax
mov eax, esi
mov ecx, dword [ebp + 8]
or byte [0x438c19], 0xff
not eax
or eax, edi
xor eax, ebx
add eax, dword [ebp - 0x14]
lea ecx, [ecx + eax - 0x546bdc59]
mov eax, ecx
shr eax, 0x11
shl ecx, 0xf
or eax, ecx
mov ecx, ebx
add eax, edi
not ecx
or ecx, eax
mov dword [ebp + 8], eax
xor ecx, edi
add ecx, dword [ebp - 0x38]
lea ecx, [esi + ecx - 0x36c5fc7]
mov esi, ecx
shl esi, 0x15
shr ecx, 0xb
or esi, ecx
mov ecx, edi
add esi, eax
not ecx
or ecx, esi
xor ecx, eax
add ecx, dword [ebp - 0x1c]
lea eax, [ebx + ecx + 0x655b59c3]
mov ebx, eax
shr ebx, 0x1a
shl eax, 6
or ebx, eax
movsx eax, byte [0x438c1f]
add ebx, esi
push eax
movsx eax, byte [0x438c1a]
push eax
call fcn.0040aac5
mov byte [0x438c20], al
mov eax, dword [ebp + 8]
not eax
or eax, ebx
xor eax, esi
add eax, dword [ebp - 0x40]
lea eax, [edi + eax - 0x70f3336e]
mov edi, eax
shr edi, 0x16
shl eax, 0xa
or edi, eax
movsx eax, byte [0x438c21]
push eax
add edi, ebx
push dword [0x438c50]
call fcn.0040aa83
add byte [0x438c18], al
push 0x7e2fffff
movsx eax, byte [0x438c1f]
push eax
call fcn.0040aa18
add dword [0x438c38], eax
movsx eax, word [0x438c34]
push eax
push 0xba8dffff
call fcn.0040a933
mov dword [0x438c44], eax
mov eax, esi
mov ecx, dword [ebp + 8]
push 0xfbddffff
not eax
or eax, edi
push 0x344fffff
xor eax, ebx
add eax, dword [ebp - 0x24]
lea eax, [ecx + eax - 0x100b83]
mov ecx, eax
shr ecx, 0x11
shl eax, 0xf
or ecx, eax
mov eax, ebx
add ecx, edi
not eax
or eax, ecx
mov dword [ebp + 8], ecx
xor eax, edi
add eax, dword [ebp - 0x48]
lea eax, [esi + eax - 0x7a7ba22f]
mov esi, eax
shl esi, 0x15
shr eax, 0xb
or esi, eax
add esi, ecx
call fcn.0040aac5
add byte [0x438c21], al
push dword [0x438c58]
movsx eax, word [0x438c2c]
push eax
call fcn.0040aa4f
mov byte [0x438c18], al
push 0x325dffff
movsx eax, byte [0x438c1f]
push eax
call fcn.0040aa83
mov dword [0x438c5c], eax
mov eax, edi
not eax
or eax, esi
xor eax, dword [ebp + 8]
add eax, dword [ebp - 0x2c]
lea eax, [ebx + eax + 0x6fa87e4f]
mov ebx, eax
shr ebx, 0x1a
shl eax, 6
or ebx, eax
mov eax, dword [ebp + 8]
add ebx, esi
not eax
or eax, ebx
push 0x28e3ffff
xor eax, esi
push 0xb7fdffff
add eax, dword [ebp - 0x10]
movsx ecx, word [0x438c28]
lea eax, [edi + eax - 0x1d31920]
mov edi, eax
shr edi, 0x16
shl eax, 0xa
or edi, eax
movsx eax, word [0x438c32]
imul eax, ecx
add edi, ebx
inc dword [0x438c4c]
mov dword [0x438c50], eax
call fcn.0040ab0e
add word [0x438c2a], ax
mov eax, esi
mov ecx, dword [ebp + 8]
add esp, 0x40
not eax
or eax, edi
xor eax, ebx
add eax, dword [ebp - 0x34]
lea eax, [ecx + eax - 0x5cfebcec]
mov ecx, eax
shr ecx, 0x11
shl eax, 0xf
or ecx, eax
mov eax, ebx
add ecx, edi
not eax
or eax, ecx
mov dword [ebp + 8], ecx
xor eax, edi
add eax, dword [ebp - 0x18]
lea eax, [esi + eax + 0x4e0811a1]
mov esi, eax
shl esi, 0x15
shr eax, 0xb
or esi, eax
movsx eax, byte [0x438c1b]
push eax
add esi, ecx
movsx eax, byte [0x438c19]
push eax
call fcn.0040a96f
mov word [0x438c22], ax
push 0xee5bffff
movsx eax, byte [0x438c1c]
push eax
call fcn.0040a933
mov byte [0x438c20], al
mov eax, edi
not eax
or eax, esi
xor eax, dword [ebp + 8]
add eax, dword [ebp - 0x3c]
lea eax, [ebx + eax - 0x8ac817e]
mov ebx, eax
shr ebx, 0x1a
shl eax, 6
or ebx, eax
mov eax, dword [ebp + 8]
add ebx, esi
not eax
or eax, ebx
xor eax, esi
add eax, dword [ebp - 0x20]
lea eax, [edi + eax - 0x42c50dcb]
mov edi, eax
shr edi, 0x16
shl eax, 0xa
or edi, eax
movsx eax, word [0x438c24]
push eax
add edi, ebx
push dword [0x438c48]
call fcn.0040aa4f
movsx ecx, word [0x438c34]
imul ecx, ecx, 0x2021ffff
add esp, 0x18
mov word [0x438c26], ax
test ax, ax
mov dword [0x438c44], ecx
jne 0x427b51
cmp byte [0x438c20], al
jne 0x427b51
and dword [0x438c40], 0
jmp 0x427b5b
mov dword [0x438c40], 1
mov ecx, esi
mov edx, dword [ebp + 8]
not ecx
or ecx, edi
xor ecx, ebx
add ecx, dword [ebp - 0x44]
movsx eax, ax
lea ecx, [edx + ecx + 0x2ad7d2bb]
push eax
mov edx, ecx
shr edx, 0x11
shl ecx, 0xf
or edx, ecx
mov ecx, ebx
movsx eax, byte [0x438c19]
add edx, edi
push eax
not ecx
or ecx, edx
mov dword [ebp + 8], edx
xor ecx, edi
add ecx, dword [ebp - 0x28]
lea esi, [esi + ecx - 0x14792c6f]
call fcn.0040a9a5
add dword [0x438c5c], eax
mov eax, dword [ebp - 0xc]
pop ecx
mov edx, esi
add dword [eax], ebx
pop ecx
mov ecx, dword [ebp + 8]
shl edx, 0x15
shr esi, 0xb
or edx, esi
add edx, ecx
add dword [eax + 4], edx
mov dl, byte [0x438c28]
or dl, byte [0x438c30]
mov byte [0x438c1a], dl
add dword [eax + 8], ecx
add dword [eax + 0xc], edi
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
add dword [0x438c4c], eax
movsx eax, byte [0x438c20]
push eax
movsx eax, byte [0x438c21]
push eax
call fcn.0040a933
mov byte [0x438c1b], al
push 0x40
lea eax, [ebp - 0x4c]
push 0
push eax
call sub.MSVCRT.dll_memset
add esp, 0x14
call dword [sym.imp.USER32.dll_GetActiveWindow]
add dword [0x438c58], eax
push dword [0x438c58]
xor eax, eax
cmp word [0x438c30], ax
push 0xb2a5ffff
setne al
add byte [0x438c1e], al
call fcn.0040a9a5
add dword [0x438c3c], eax
pop ecx
pop ecx
pop edi
pop esi
pop ebx
leave
ret 4