Function at 0x40bdb7
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
movsx eax, byte [0x415813]
push ebx
push esi
push edi
push eax
movsx eax, byte [0x415816]
mov esi, ecx
push eax
call fcn.00402f26
mov word [0x41582a], ax
mov eax, dword [esi + 8]
mov ebx, dword [esi + 4]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0xc]
mov edi, dword [esi]
mov dword [ebp - 0xc], eax
push 0xffe1ffff
movsx eax, byte [0x415816]
push eax
mov dword [ebp - 4], ebx
call fcn.00402eda
add esp, 0x10
mov dword [0x41584c], eax
lea eax, [ebp - 0x4c]
mov ecx, esi
push 0x40
push dword [ebp + 8]
push eax
call fcn.0040cd3b
movsx eax, byte [0x415818]
push 0xcc5bffff
push eax
call fcn.00403002
add dword [0x415850], eax
pop ecx
mov eax, ebx
pop ecx
mov ecx, dword [ebp - 8]
not eax
and eax, dword [ebp - 0xc]
and ecx, ebx
or eax, ecx
mov ecx, dword [ebp - 0xc]
add eax, dword [ebp - 0x4c]
lea eax, [edi + eax - 0x28955b88]
mov edi, eax
shr edi, 0x19
shl eax, 7
or edi, eax
add edi, ebx
mov eax, edi
and ebx, edi
not eax
and eax, dword [ebp - 8]
or eax, ebx
add eax, dword [ebp - 0x48]
lea eax, [ecx + eax - 0x173848aa]
mov ebx, eax
shr ebx, 0x14
shl eax, 0xc
or ebx, eax
mov al, byte [0x415810]
push eax
add ebx, edi
call dword [sym.imp.USER32.dll_IsCharAlphaNumericA]
mov byte [0x415819], al
mov eax, ebx
not eax
and eax, dword [ebp - 4]
mov ecx, ebx
and ecx, edi
or eax, ecx
mov ecx, dword [ebp - 8]
add eax, dword [ebp - 0x44]
lea ecx, [ecx + eax + 0x242070db]
mov eax, ecx
shr eax, 0xf
shl ecx, 0x11
or eax, ecx
add eax, ebx
mov dword [ebp - 8], eax
mov ecx, eax
mov edx, ebx
not ecx
and ecx, edi
and edx, eax
or ecx, edx
mov edx, dword [ebp - 4]
add ecx, dword [ebp - 0x40]
mov byte [0x415818], 0xfe
lea edx, [edx + ecx - 0x3e423112]
mov ecx, edx
shl ecx, 0x16
shr edx, 0xa
or ecx, edx
add ecx, eax
dec byte [0x415810]
mov edx, ecx
and eax, ecx
not edx
and edx, ebx
mov dword [ebp - 4], ecx
or edx, eax
add edx, dword [ebp - 0x3c]
lea eax, [edi + edx - 0xa83f051]
mov edi, eax
shr edi, 0x19
shl eax, 7
or edi, eax
movsx eax, byte [0x415811]
push eax
add edi, ecx
push dword [0x41584c]
call fcn.00402eda
mov ecx, dword [ebp - 4]
mov dword [0x415848], eax
mov eax, edi
and ecx, edi
not eax
and eax, dword [ebp - 8]
push 0xc6ddffff
push dword [0x415844]
or eax, ecx
add eax, dword [ebp - 0x38]
lea eax, [ebx + eax + 0x4787c62a]
mov ebx, eax
shr ebx, 0x14
shl eax, 0xc
or ebx, eax
add ebx, edi
call fcn.004030d8
mov word [0x415822], ax
mov eax, ebx
not eax
and eax, dword [ebp - 4]
mov ecx, ebx
and ecx, edi
or eax, ecx
mov ecx, dword [ebp - 8]
add eax, dword [ebp - 0x34]
lea eax, [ecx + eax - 0x57cfb9ed]
mov ecx, eax
shr ecx, 0xf
shl eax, 0x11
or ecx, eax
movsx eax, word [0x41581e]
add ecx, ebx
push eax
push 0xe2f9ffff
mov dword [ebp - 8], ecx
call fcn.00402f26
add word [0x41581c], ax
mov eax, dword [ebp - 8]
mov ecx, ebx
and ecx, dword [ebp - 8]
not eax
and eax, edi
or eax, ecx
mov ecx, dword [ebp - 4]
add eax, dword [ebp - 0x30]
lea eax, [ecx + eax - 0x2b96aff]
mov ecx, eax
shl ecx, 0x16
shr eax, 0xa
or ecx, eax
push 0x36adffff
add ecx, dword [ebp - 8]
push dword [0x415840]
mov dword [ebp - 4], ecx
call fcn.00402eda
add word [0x415820], ax
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 8]
push 0x98d9ffff
and ecx, dword [ebp - 4]
push 0x8f03ffff
not eax
and eax, ebx
or eax, ecx
add eax, dword [ebp - 0x2c]
lea eax, [edi + eax + 0x698098d8]
mov edi, eax
shr edi, 0x19
shl eax, 7
or edi, eax
add edi, dword [ebp - 4]
call fcn.0040309f
mov ecx, dword [ebp - 4]
mov byte [0x415814], al
mov eax, edi
and ecx, edi
not eax
and eax, dword [ebp - 8]
or eax, ecx
add eax, dword [ebp - 0x28]
lea eax, [ebx + eax - 0x74bb0851]
mov ebx, eax
shr ebx, 0x14
shl eax, 0xc
or ebx, eax
movsx eax, byte [0x415812]
push eax
push 0xdfb5ffff
add ebx, edi
call fcn.00403002
add byte [0x415810], al
mov eax, ebx
not eax
and eax, dword [ebp - 4]
mov ecx, ebx
and ecx, edi
push 0x6135ffff
or eax, ecx
mov ecx, dword [ebp - 8]
add eax, dword [ebp - 0x24]
push dword [0x41584c]
lea eax, [ecx + eax - 0xa44f]
mov ecx, eax
shr ecx, 0xf
shl eax, 0x11
or ecx, eax
add ecx, ebx
mov dword [ebp - 8], ecx
call fcn.00403002
mov byte [0x415819], al
mov eax, dword [ebp - 8]
mov ecx, ebx
push 0x17d3ffff
and ecx, dword [ebp - 8]
push 0x11e3ffff
not eax
and eax, edi
or eax, ecx
mov ecx, dword [ebp - 4]
add eax, dword [ebp - 0x20]
lea eax, [ecx + eax - 0x76a32842]
mov ecx, eax
shl ecx, 0x16
shr eax, 0xa
or ecx, eax
add ecx, dword [ebp - 8]
mov dword [ebp - 4], ecx
call fcn.00403002
mov ecx, dword [ebp - 8]
mov dword [0x415834], eax
mov eax, dword [ebp - 4]
and ecx, dword [ebp - 4]
not eax
and eax, ebx
add esp, 0x40
or eax, ecx
add eax, dword [ebp - 0x1c]
push 0xe27ffff
push dword [0x41584c]
lea eax, [edi + eax + 0x6b901122]
mov edi, eax
shr edi, 0x19
shl eax, 7
or edi, eax
add edi, dword [ebp - 4]
mov dword [ebp + 8], edi
call fcn.00402fbe
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
mov byte [0x415818], al
mov eax, edi
not eax
and eax, ecx
and edx, edi
or eax, edx
push 0xfe9ffff
add eax, dword [ebp - 0x18]
push 0x2a5bffff
lea ebx, [ebx + eax - 0x2678e6d]
mov eax, ebx
shr eax, 0x14
shl ebx, 0xc
or eax, ebx
add eax, edi
mov edi, eax
mov ebx, eax
and ebx, dword [ebp + 8]
mov dword [ebp - 0xc], eax
not edi
mov edx, edi
and edx, dword [ebp - 4]
or edx, ebx
add edx, dword [ebp - 0x14]
lea ecx, [ecx + edx - 0x5986bc72]
mov ebx, ecx
shr ebx, 0xf
shl ecx, 0x11
or ebx, ecx
add ebx, eax
mov dword [ebp - 8], ebx
call fcn.00402fbe
mov ecx, dword [ebp - 0xc]
mov word [0x415822], ax
and ecx, dword [ebp - 8]
not ebx
mov eax, ebx
and eax, dword [ebp + 8]
or eax, ecx
mov ecx, dword [ebp - 4]
add eax, dword [ebp - 0x10]
lea eax, [ecx + eax + 0x49b40821]
mov ecx, eax
shl ecx, 0x16
shr eax, 0xa
or ecx, eax
movsx eax, byte [0x415814]
add ecx, dword [ebp - 8]
push eax
movsx eax, word [0x41582a]
push eax
mov dword [ebp - 4], ecx
call fcn.004030d8
and edi, dword [ebp - 8]
mov byte [0x415816], al
mov eax, dword [ebp - 0xc]
and eax, dword [ebp - 4]
or edi, eax
mov eax, dword [ebp + 8]
add edi, dword [ebp - 0x48]
lea eax, [eax + edi - 0x9e1da9e]
mov edi, eax
shr edi, 0x1b
shl eax, 5
or edi, eax
movsx eax, word [0x41582a]
add edi, dword [ebp - 4]
push eax
movsx eax, byte [0x415810]
push eax
call fcn.00403002
add dword [0x41584c], eax
mov eax, dword [ebp - 8]
and ebx, dword [ebp - 4]
and eax, edi
mov ecx, dword [0x41584c]
add esp, 0x20
or ebx, eax
mov eax, dword [ebp - 0xc]
add ebx, dword [ebp - 0x34]
push 0xffffffffffffffff
mov dword [0x415840], 0xefffffff
lea eax, [eax + ebx - 0x3fbf4cc0]
mov ebx, eax
shr ebx, 0x17
shl eax, 9
or ebx, eax
mov eax, dword [0x415838]
add eax, ecx
add ebx, edi
mov word [0x41581e], ax
mov eax, dword [ebp - 4]
mov ecx, ebx
and ecx, dword [ebp - 4]
not eax
and eax, edi
or eax, ecx
mov ecx, dword [ebp - 8]
add eax, dword [ebp - 0x20]
lea ecx, [ecx + eax + 0x265e5a51]
mov eax, ecx
shr eax, 0x12
shl ecx, 0xe
or eax, ecx
mov ecx, edi
add eax, ebx
not ecx
mov edx, eax
and ecx, ebx
and edx, edi
mov dword [ebp - 8], eax
or ecx, edx
mov edx, dword [ebp - 4]
add ecx, dword [ebp - 0x4c]
lea ecx, [edx + ecx - 0x16493856]
mov edx, ecx
shl edx, 0x14
shr ecx, 0xc
or edx, ecx
add edx, eax
mov dword [ebp - 4], edx
call dword [sym.imp.USER32.dll_IsCharUpperA]
add dword [0x415848], eax
mov eax, ebx
not eax
and eax, dword [ebp - 8]
mov ecx, ebx
and ecx, dword [ebp - 4]
push dword [0x41584c]
or eax, ecx
add eax, dword [ebp - 0x38]
lea eax, [edi + eax - 0x29d0efa3]
mov edi, eax
shr edi, 0x1b
shl eax, 5
or edi, eax
movsx eax, word [0x41581c]
add edi, dword [ebp - 4]
push eax
call fcn.00402f26
add dword [0x41584c], eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 8]
not eax
and eax, dword [ebp - 4]
and ecx, edi
or eax, ecx
add eax, dword [ebp - 0x24]
lea eax, [ebx + eax + 0x2441453]
mov ebx, eax
shr ebx, 0x17
shl eax, 9
or ebx, eax
movsx eax, word [0x415824]
push eax
add ebx, edi
movsx eax, byte [0x415818]
push eax
call fcn.00402eff
add dword [0x415834], eax
mov eax, dword [ebp - 4]
mov ecx, ebx
push 0xadf1ffff
and ecx, dword [ebp - 4]
push 0x526dffff
not eax
and eax, edi
mov dword [0x415830], 1
or eax, ecx
mov ecx, dword [ebp - 8]
add eax, dword [ebp - 0x10]
lea ecx, [ecx + eax - 0x275e197f]
mov eax, ecx
shr eax, 0x12
shl ecx, 0xe
or eax, ecx
mov ecx, edi
add eax, ebx
not ecx
mov edx, eax
and ecx, ebx
and edx, edi
mov dword [ebp - 8], eax
or ecx, edx
mov edx, dword [ebp - 4]
add ecx, dword [ebp - 0x3c]
lea ecx, [edx + ecx - 0x182c0438]
mov edx, ecx
shl edx, 0x14
shr ecx, 0xc
or edx, ecx
add edx, eax
mov dword [ebp - 4], edx
call fcn.00402f26
add byte [0x415814], al
mov ecx, dword [ebp - 4]
mov eax, ebx
mov edx, ebx
not eax
and eax, dword [ebp - 8]
and edx, ecx
or eax, edx
mov edx, dword [ebp - 8]
add eax, dword [ebp - 0x28]
lea eax, [edi + eax + 0x21e1cde6]
mov edi, eax
shr edi, 0x1b
shl eax, 5
or edi, eax
mov eax, dword [ebp - 8]
add edi, ecx
not eax
and eax, ecx
and edx, edi
or eax, edx
add eax, dword [ebp - 0x14]
lea eax, [ebx + eax - 0x3cc8f82a]
mov ebx, eax
shr ebx, 0x17
shl eax, 9
or ebx, eax
add ebx, edi
mov eax, ecx
mov edx, ebx
not eax
and eax, edi
and edx, ecx
mov ecx, dword [ebp - 8]
or eax, edx
add eax, dword [ebp - 0x40]
push dword [0x415840]
mov word [0x41582c], 1
lea eax, [ecx + eax - 0xb2af279]
mov ecx, eax
shr ecx, 0x12
shl eax, 0xe
or ecx, eax
movsx eax, word [0x415826]
add ecx, ebx
push eax
mov dword [ebp - 8], ecx
call fcn.00402f6c
add word [0x415822], ax
mov ecx, dword [ebp - 8]
mov eax, edi
and ecx, edi
not eax
and eax, ebx
push 0xa7a7ffff
or eax, ecx
mov ecx, dword [ebp - 4]
add eax, dword [ebp - 0x2c]
push 0x37a5ffff
lea eax, [ecx + eax + 0x455a14ed]
mov ecx, eax
shl ecx, 0x14
shr eax, 0xc
or ecx, eax
add ecx, dword [ebp - 8]
mov dword [ebp - 4], ecx
call fcn.00402eff
add word [0x415828], ax
mov eax, ebx
not eax
and eax, dword [ebp - 8]
mov ecx, ebx
and ecx, dword [ebp - 4]
add esp, 0x28
or eax, ecx
add eax, dword [ebp - 0x18]
lea eax, [edi + eax - 0x561c16fb]
mov edi, eax
shr edi, 0x1b
shl eax, 5
or edi, eax
add edi, dword [ebp - 4]
call dword [sym.imp.USER32.dll_GetActiveWindow]
add byte [0x415810], al
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 8]
push 0x7567ffff
not eax
and eax, dword [ebp - 4]
and ecx, edi
or eax, ecx
add eax, dword [ebp - 0x44]
lea eax, [ebx + eax - 0x3105c08]
mov ebx, eax
shr ebx, 0x17
shl eax, 9
or ebx, eax
movsx eax, word [0x41581e]
push eax
add ebx, edi
call fcn.00402fbe
mov word [0x415828], ax
mov eax, dword [ebp - 4]
mov ecx, ebx
and ecx, dword [ebp - 4]
not eax
and eax, edi
or eax, ecx
add eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 8]
push 0xdd53ffff
push 0xb367ffff
lea ecx, [ecx + eax + 0x676f02d9]
mov eax, ecx
shr eax, 0x12
shl ecx, 0xe
or eax, ecx
movsx cx, byte [0x415815]
imul ecx, dword [0x415838]
add word [0x41582a], cx
add eax, ebx
mov ecx, edi
mov edx, eax
not ecx
and ecx, ebx
and edx, edi
or ecx, edx
mov edx, dword [ebp - 4]
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 8], eax
lea ecx, [edx + ecx - 0x72d5b376]
mov edx, ecx
shl edx, 0x14
shr ecx, 0xc
or edx, ecx
add edx, eax
mov dword [ebp - 4], edx
call fcn.00402eff
mov word [0x41581e], ax
mov eax, ebx
xor eax, dword [ebp - 8]
add esp, 0x10
xor eax, dword [ebp - 4]
add eax, dword [ebp - 0x38]
lea eax, [edi + eax - 0x5c6be]
mov edi, eax
shr edi, 0x1c
shl eax, 4
or edi, eax
add edi, dword [ebp - 4]
cmp word [0x41581a], 0
je 0x40c597
cmp word [0x415826], 0
je 0x40c597
mov byte [0x415814], 1
jmp 0x40c59e
and byte [0x415814], 0
mov eax, dword [ebp - 8]
push 0x94a9ffff
xor eax, dword [ebp - 4]
xor eax, edi
add eax, dword [ebp - 0x2c]
lea eax, [ebx + eax - 0x788e097f]
mov ebx, eax
shr ebx, 0x15
shl eax, 0xb
or ebx, eax
movsx eax, byte [0x415819]
add ebx, edi
push eax
mov dword [ebp - 0xc], ebx
call fcn.00402f6c
add word [0x415826], ax
pop ecx
pop ecx
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 4]
mov eax, ebx
xor eax, ecx
xor eax, edi
add eax, dword [ebp - 0x20]
lea eax, [edx + eax + 0x6d9d6122]
mov edx, eax
shr edx, 0x10
shl eax, 0x10
or edx, eax
mov eax, ebx
add edx, ebx
xor eax, edx
mov dword [ebp - 8], edx
mov ebx, eax
xor ebx, edi
add ebx, dword [ebp - 0x14]
lea ebx, [ecx + ebx - 0x21ac7f4]
mov ecx, ebx
shl ecx, 0x17
shr ebx, 9
or ecx, ebx
xor ebx, ebx
add ecx, edx
cmp word [0x415828], bx
mov dword [ebp - 4], ecx
jne 0x40c63a
cmp dword [0x415840], ebx
mov word [0x415824], bx
je 0x40c643
mov word [0x415824], 1
xor eax, ecx
xor edx, ecx
add eax, dword [ebp - 0x48]
push 0x763bffff
push dword [0x415854]
lea eax, [edi + eax - 0x5b4115bc]
mov ebx, eax
shr ebx, 0x1c
shl eax, 4
or ebx, eax
mov al, byte [0x415815]
sub al, byte [0x41581e]
add ebx, ecx
xor edx, ebx
add edx, dword [ebp - 0x3c]
mov byte [0x415817], al
mov eax, dword [ebp - 0xc]
lea eax, [eax + edx + 0x4bdecfa9]
mov edi, eax
shr edi, 0x15
shl eax, 0xb
or edi, eax
add edi, ebx
mov dword [ebp - 0xc], edi
call fcn.00403002
mov word [0x41581e], ax
mov eax, edi
xor eax, dword [ebp - 4]
pop ecx
pop ecx
mov ecx, dword [ebp - 8]
xor eax, ebx
add eax, dword [ebp - 0x30]
lea eax, [ecx + eax - 0x944b4a0]
mov ecx, eax
shr ecx, 0x10
shl eax, 0x10
or ecx, eax
add ecx, edi
mov dword [ebp - 8], ecx
call dword [sym.imp.USER32.dll_GetInputState]
xor edi, dword [ebp - 8]
add byte [0x415819], al
mov ecx, dword [ebp - 4]
mov eax, edi
xor eax, ebx
add eax, dword [ebp - 0x24]
lea eax, [ecx + eax - 0x41404390]
mov ecx, eax
shl ecx, 0x17
shr eax, 9
or ecx, eax
movsx eax, byte [0x415817]
add ecx, dword [ebp - 8]
push eax
push dword [0x415830]
mov dword [ebp - 4], ecx
call fcn.00402eda
xor edi, dword [ebp - 4]
push 0x943bffff
push 0x7059ffff
mov dword [0x415848], eax
add edi, dword [ebp - 0x18]
lea edi, [ebx + edi + 0x289b7ec6]
mov ebx, edi
shr ebx, 0x1c
shl edi, 4
or ebx, edi
add ebx, dword [ebp - 4]
call fcn.00402eff
mov ecx, dword [ebp - 8]
add byte [0x415815], al
mov edx, dword [ebp - 4]
mov edi, dword [ebp - 0xc]
mov eax, ecx
xor eax, edx
xor eax, ebx
add eax, dword [ebp - 0x4c]
lea eax, [edi + eax - 0x155ed806]
mov edi, eax
shr edi, 0x15
shl eax, 0xb
or edi, eax
or word [0x41582c], 0xffff
add edi, ebx
push 0xe0e3ffff
mov eax, edi
mov dword [ebp - 0xc], edi
xor eax, edx
mov byte [0x415817], 0xfe
xor eax, ebx
add eax, dword [ebp - 0x40]
lea ecx, [ecx + eax - 0x2b10cf7b]
mov eax, ecx
shr eax, 0x10
shl ecx, 0x10
or eax, ecx
add eax, edi
xor edi, eax
mov dword [ebp - 8], eax
mov ecx, edi
xor ecx, ebx
add ecx, dword [ebp - 0x34]
lea ecx, [edx + ecx + 0x4881d05]
mov edx, ecx
shl edx, 0x17
shr ecx, 9
or edx, ecx
add edx, eax
movsx eax, word [0x415826]
push eax
mov dword [ebp - 4], edx
call fcn.0040309f
xor edi, dword [ebp - 4]
add esp, 0x18
mov byte [0x415818], al
add edi, dword [ebp - 0x28]
lea edi, [ebx + edi - 0x262b2fc7]
mov ebx, edi
shr ebx, 0x1c
shl edi, 4
or ebx, edi
add ebx, dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov edx, dword [ebp - 8]
add word [0x41581e], ax
mov eax, edx
mov ecx, dword [ebp - 0xc]
xor eax, dword [ebp - 4]
movsx edi, byte [0x415814]
xor eax, ebx
add eax, dword [ebp - 0x1c]
lea ecx, [ecx + eax - 0x1924661b]
mov eax, ecx
shr eax, 0x15
shl ecx, 0xb
or eax, ecx
movsx ecx, word [0x41582c]
imul ecx, edi
add eax, ebx
mov dword [0x415850], ecx
mov ecx, eax
xor ecx, dword [ebp - 4]
xor ecx, ebx
add ecx, dword [ebp - 0x10]
lea ecx, [edx + ecx + 0x1fa27cf8]
mov edx, dword [ebp - 4]
mov edi, ecx
shr edi, 0x10
shl ecx, 0x10
or edi, ecx
movsx ecx, byte [0x415810]
imul ecx, ecx, 0x6f0fffff
add dword [0x415834], ecx
add edi, eax
mov ecx, eax
xor ecx, edi
xor ecx, ebx
add ecx, dword [ebp - 0x44]
lea edx, [edx + ecx - 0x3b53a99b]
mov ecx, edx
shl ecx, 0x17
shr edx, 9
or ecx, edx
mov dl, byte [0x415818]
mov byte [0x415811], dl
mov edx, eax
add ecx, edi
not edx
or edx, ecx
mov dword [ebp - 4], ecx
xor edx, edi
add edx, dword [ebp - 0x4c]
lea edx, [ebx + edx - 0xbd6ddbc]
mov ebx, edx
shr ebx, 0x1a
shl edx, 6
or ebx, edx
mov dx, word [0x415824]
add ebx, ecx
dec dx
mov word [0x415826], dx
mov edx, edi
not edx
or edx, ebx
xor edx, ecx
add edx, dword [ebp - 0x30]
lea eax, [eax + edx + 0x432aff97]
mov ecx, eax
shr ecx, 0x16
shl eax, 0xa
or ecx, eax
add ecx, ebx
mov dword [ebp - 0xc], ecx
call dword [sym.imp.USER32.dll_GetInputState]
mov dword [0x415848], eax
mov eax, dword [ebp - 4]
not eax
or eax, dword [ebp - 0xc]
xor eax, ebx
add eax, dword [ebp - 0x14]
lea eax, [edi + eax - 0x546bdc59]
mov edi, eax
shr edi, 0x11
shl eax, 0xf
or edi, eax
movsx eax, word [0x41581e]
add edi, dword [ebp - 0xc]
push eax
push 0x7b99ffff
call fcn.00402f6c
mov dword [0x415834], eax
mov eax, ebx
not eax
mov ecx, dword [ebp - 4]
or eax, edi
xor eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x38]
lea ecx, [ecx + eax - 0x36c5fc7]
mov eax, ecx
shl eax, 0x15
shr ecx, 0xb
or eax, ecx
mov cx, word [0x415824]
add cx, word [0x41581c]
add eax, edi
mov dword [ebp - 4], eax
add word [0x415828], cx
mov ecx, dword [ebp - 0xc]
not ecx
or ecx, eax
xor ecx, edi
add ecx, dword [ebp - 0x1c]
lea ecx, [ebx + ecx + 0x655b59c3]
mov ebx, ecx
shr ebx, 0x1a
shl ecx, 6
or ebx, ecx
add ebx, eax
movsx eax, byte [0x415813]
push eax
push 0x65c1ffff
call fcn.00403002
mov byte [0x415816], al
mov eax, edi
not eax
mov ecx, dword [ebp - 0xc]
or eax, ebx
xor eax, dword [ebp - 4]
add esp, 0x10
add eax, dword [ebp - 0x40]
lea eax, [ecx + eax - 0x70f3336e]
mov ecx, eax
shr ecx, 0x16
shl eax, 0xa
or ecx, eax
add ecx, ebx
mov dword [ebp - 0xc], ecx
call dword [sym.imp.USER32.dll_GetFocus]
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
mov byte [0x415817], al
mov eax, ecx
not eax
or eax, edx
or word [0x415828], 0xffff
xor eax, ebx
push 0x6967ffff
add eax, dword [ebp - 0x24]
push 0xea1bffff
lea eax, [edi + eax - 0x100b83]
mov edi, eax
shr edi, 0x11
shl eax, 0xf
or edi, eax
mov eax, ebx
add edi, edx
not eax
or eax, edi
xor eax, edx
add eax, dword [ebp - 0x48]
lea ecx, [ecx + eax - 0x7a7ba22f]
mov eax, ecx
shl eax, 0x15
shr ecx, 0xb
or eax, ecx
xor ecx, ecx
add eax, edi
cmp byte [0x415812], cl
mov dword [ebp - 4], eax
setne cl
mov dword [0x415840], ecx
mov ecx, edx
not ecx
or ecx, eax
xor ecx, edi
add ecx, dword [ebp - 0x2c]
lea ecx, [ebx + ecx + 0x6fa87e4f]
mov ebx, ecx
shr ebx, 0x1a
shl ecx, 6
or ebx, ecx
mov ecx, edi
add ebx, eax
inc word [0x415820]
not ecx
or ecx, ebx
xor ecx, eax
add ecx, dword [ebp - 0x10]
lea eax, [edx + ecx - 0x1d31920]
mov ecx, eax
shr ecx, 0x16
shl eax, 0xa
or ecx, eax
add ecx, ebx
mov dword [ebp - 0xc], ecx
call fcn.00402f6c
mov edx, dword [ebp - 4]
mov ecx, edx
not ecx
or ecx, dword [ebp - 0xc]
xor ecx, ebx
add ecx, dword [ebp - 0x34]
lea ecx, [edi + ecx - 0x5cfebcec]
mov edi, ecx
shr edi, 0x11
shl ecx, 0xf
or edi, ecx
movsx cx, byte [0x415813]
add cx, word [0x415828]
add edi, dword [ebp - 0xc]
add ax, cx
mov word [0x415826], ax
mov eax, ebx
not eax
or eax, edi
xor eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x18]
lea eax, [edx + eax + 0x4e0811a1]
mov ecx, eax
shl ecx, 0x15
shr eax, 0xb
or ecx, eax
movsx eax, byte [0x415817]
push eax
add ecx, edi
push dword [0x41584c]
mov dword [ebp - 4], ecx
call fcn.00402f6c
mov word [0x41582c], ax
mov eax, dword [ebp - 0xc]
not eax
or eax, dword [ebp - 4]
push dword [0x415840]
xor eax, edi
push 0x7033ffff
add eax, dword [ebp - 0x3c]
lea eax, [ebx + eax - 0x8ac817e]
mov ebx, eax
shr ebx, 0x1a
shl eax, 6
or ebx, eax
add ebx, dword [ebp - 4]
call fcn.004030d8
add dword [0x415850], eax
mov eax, edi
not eax
mov ecx, dword [ebp - 0xc]
or eax, ebx
xor eax, dword [ebp - 4]
add esp, 0x18
add eax, dword [ebp - 0x20]
lea eax, [ecx + eax - 0x42c50dcb]
mov ecx, eax
shr ecx, 0x16
shl eax, 0xa
or ecx, eax
add ecx, ebx
mov dword [ebp - 0xc], ecx
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
add dword [0x415840], eax
mov eax, dword [ebp - 4]
not eax
or eax, dword [ebp - 0xc]
push 0xd8c7ffff
xor eax, ebx
add eax, dword [ebp - 0x44]
lea eax, [edi + eax + 0x2ad7d2bb]
mov edi, eax
shr edi, 0x11
shl eax, 0xf
or edi, eax
movsx eax, word [0x415822]
add edi, dword [ebp - 0xc]
push eax
call fcn.00402f26
add dword [0x415850], eax
mov eax, ebx
not eax
or eax, edi
pop ecx
xor eax, dword [ebp - 0xc]
pop ecx
mov ecx, dword [ebp - 4]
add eax, dword [ebp - 0x28]
push dword [0x415830]
lea eax, [ecx + eax - 0x14792c6f]
mov dword [ebp - 4], eax
movsx eax, word [0x415828]
push eax
push 0xf2e5ffff
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov byte [0x415815], al
add dword [esi], ebx
movsx eax, word [0x415824]
push 0x1eb7ffff
push eax
call fcn.00402f6c
mov byte [0x415810], al
mov eax, dword [ebp - 4]
mov ecx, eax
push 0xa9edffff
shl ecx, 0x15
shr eax, 0xb
or ecx, eax
add ecx, edi
add dword [esi + 4], ecx
movsx eax, byte [0x415815]
push eax
call fcn.00403002
mov dword [0x41584c], eax
add dword [esi + 8], edi
xor eax, eax
add esp, 0x10
cmp word [0x41581a], ax
setne al
add byte [0x415818], al
mov eax, dword [ebp - 0xc]
add dword [esi + 0xc], eax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
add word [0x415826], ax
pop edi
movsx ax, byte [0x415815]
movsx cx, byte [0x415816]
sub ecx, eax
pop esi
add word [0x415822], cx
pop ebx
leave
ret 4