Function at 0x424ce9
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
push ebx
push esi
push edi
mov ebx, ecx
push 0xb841ffff
push 0xf599ffff
mov dword [ebp - 0xc], ebx
call fcn.00410246
add word [0x438bfe], ax
mov eax, dword [0x438c1c]
pop ecx
add eax, 0x134bffff
pop ecx
mov dword [0x438c28], eax
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebx]
mov edi, dword [ebx + 4]
mov ebx, dword [ebx + 8]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 4], edi
mov dword [ebp - 8], eax
xor eax, eax
cmp word [0x438bf2], ax
mov byte [0x438bea], 1
jne 0x424d4c
cmp dword [0x438c08], eax
je 0x424d50
mov ax, 1
inc ax
push 0x40
push dword [ebp + 8]
mov word [0x438bfc], ax
lea eax, [ebp - 0x4c]
push eax
call fcn.00425c5a
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov byte [0x438beb], al
mov eax, edi
not eax
and eax, dword [ebp - 8]
mov ecx, ebx
and ecx, edi
push 0x7303ffff
or eax, ecx
mov ecx, dword [ebp - 8]
add eax, dword [ebp - 0x4c]
lea eax, [esi + eax - 0x28955b88]
mov esi, eax
shr esi, 0x19
shl eax, 7
or esi, eax
add esi, edi
mov eax, esi
and edi, esi
not eax
and eax, ebx
or eax, edi
add eax, dword [ebp - 0x48]
lea eax, [ecx + eax - 0x173848aa]
mov edi, eax
shr edi, 0x14
shl eax, 0xc
or edi, eax
movsx eax, word [0x438bfa]
push eax
add edi, esi
call fcn.00410092
add dword [0x438c08], eax
mov eax, edi
not eax
and eax, dword [ebp - 4]
mov ecx, edi
and ecx, esi
push 0x11e9ffff
or eax, ecx
mov ecx, edi
add eax, dword [ebp - 0x44]
push dword [0x438c0c]
lea eax, [ebx + eax + 0x242070db]
mov ebx, eax
shr ebx, 0xf
shl eax, 0x11
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 - 0x40]
lea eax, [ecx + eax - 0x3e423112]
mov ecx, eax
shl ecx, 0x16
shr eax, 0xa
or ecx, eax
add ecx, ebx
mov dword [ebp - 4], ecx
call fcn.00410246
mov ecx, dword [ebp - 4]
add dword [0x438c28], eax
mov eax, ecx
mov edx, ebx
not eax
and eax, edi
and edx, ecx
or eax, edx
add eax, dword [ebp - 0x3c]
lea eax, [esi + eax - 0xa83f051]
mov esi, eax
push 0x38b7ffff
shr esi, 0x19
shl eax, 7
or esi, eax
add esi, ecx
mov eax, esi
and ecx, esi
not eax
and eax, ebx
or eax, ecx
add eax, dword [ebp - 0x38]
lea eax, [edi + eax + 0x4787c62a]
mov edi, eax
shr edi, 0x14
shl eax, 0xc
or edi, eax
movsx eax, word [0x438bf4]
push eax
add edi, esi
call fcn.00410167
add dword [0x438c10], eax
mov ecx, dword [ebp - 4]
mov eax, edi
mov edx, edi
not eax
and eax, ecx
and edx, esi
or eax, edx
mov edx, edi
add eax, dword [ebp - 0x34]
push 0xed25ffff
push 0xd161ffff
lea eax, [ebx + eax - 0x57cfb9ed]
mov ebx, eax
shr ebx, 0xf
shl eax, 0x11
or ebx, eax
add ebx, edi
mov eax, ebx
and edx, ebx
not eax
and eax, esi
or eax, edx
add eax, dword [ebp - 0x30]
lea eax, [ecx + eax - 0x2b96aff]
mov ecx, eax
shl ecx, 0x16
shr eax, 0xa
or ecx, eax
add ecx, ebx
mov dword [ebp - 4], ecx
call fcn.004101be
mov ecx, dword [ebp - 4]
add dword [0x438c2c], eax
mov eax, ecx
mov edx, ebx
not eax
and eax, edi
and edx, ecx
or eax, edx
push 0xeb95ffff
add eax, dword [ebp - 0x2c]
lea eax, [esi + eax + 0x698098d8]
mov esi, eax
shr esi, 0x19
shl eax, 7
or esi, eax
add esi, ecx
mov eax, esi
and ecx, esi
not eax
and eax, ebx
or eax, ecx
add eax, dword [ebp - 0x28]
lea eax, [edi + eax - 0x74bb0851]
mov edi, eax
shr edi, 0x14
shl eax, 0xc
or edi, eax
add edi, esi
push 0xa3e1ffff
call fcn.00410285
mov ecx, dword [ebp - 4]
mov word [0x438c00], ax
mov eax, edi
mov edx, edi
not eax
and eax, ecx
and edx, esi
or eax, edx
mov edx, edi
add eax, dword [ebp - 0x24]
push 0x736dffff
push dword [0x438c2c]
lea eax, [ebx + eax - 0xa44f]
mov ebx, eax
shr ebx, 0xf
shl eax, 0x11
or ebx, eax
add ebx, edi
mov eax, ebx
and edx, ebx
not eax
and eax, esi
or eax, edx
add eax, dword [ebp - 0x20]
lea eax, [ecx + eax - 0x76a32842]
mov ecx, eax
shl ecx, 0x16
shr eax, 0xa
or ecx, eax
add ecx, ebx
mov dword [ebp - 4], ecx
call fcn.004100c8
mov word [0x438bfe], ax
mov al, byte [0x438bf6]
add esp, 0x30
inc al
mov byte [0x438bee], al
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ecx, dword [ebp - 4]
mov byte [0x438bf1], al
mov eax, ecx
mov edx, ebx
not eax
and eax, edi
and edx, ecx
or eax, edx
push 0xd7d1ffff
add eax, dword [ebp - 0x1c]
push dword [0x438c28]
lea esi, [esi + eax + 0x6b901122]
mov eax, esi
shr eax, 0x19
shl esi, 7
or eax, esi
add eax, ecx
mov edx, eax
and ecx, eax
not edx
and edx, ebx
mov dword [ebp + 8], eax
or edx, ecx
add edx, dword [ebp - 0x18]
lea ecx, [edi + edx - 0x2678e6d]
mov edi, ecx
shr edi, 0x14
shl ecx, 0xc
or edi, ecx
add edi, eax
mov dword [ebp - 8], edi
call fcn.004101be
mov ecx, dword [ebp - 4]
mov esi, edi
not esi
mov byte [0x438beb], al
mov edx, edi
and edx, dword [ebp + 8]
mov eax, esi
and eax, ecx
or eax, edx
add eax, dword [ebp - 0x14]
mov edx, dword [ebp - 8]
lea eax, [ebx + eax - 0x5986bc72]
mov ebx, eax
shr ebx, 0xf
shl eax, 0x11
or ebx, eax
add ebx, edi
mov edi, ebx
and edx, ebx
not edi
mov eax, edi
and eax, dword [ebp + 8]
or eax, edx
add eax, dword [ebp - 0x10]
lea eax, [ecx + eax + 0x49b40821]
mov ecx, eax
shl ecx, 0x16
shr eax, 0xa
or ecx, eax
movsx eax, word [0x438bfc]
push eax
add ecx, ebx
push dword [0x438c28]
mov dword [ebp - 4], ecx
call fcn.004101be
mov edx, dword [ebp - 8]
add word [0x438bf6], ax
mov ecx, dword [ebp - 4]
mov eax, edx
and esi, ebx
and eax, ecx
or esi, eax
mov eax, dword [ebp + 8]
add esi, dword [ebp - 0x48]
and edi, ecx
sub dword [0x438c20], 0x3060001
mov dword [0x438c24], 0xc613fffe
lea eax, [eax + esi - 0x9e1da9e]
mov esi, eax
shr esi, 0x1b
shl eax, 5
or esi, eax
mov eax, ebx
add esi, ecx
inc byte [0x438be9]
and eax, esi
or edi, eax
add edi, dword [ebp - 0x34]
lea eax, [edx + edi - 0x3fbf4cc0]
mov edi, eax
shr edi, 0x17
shl eax, 9
or edi, eax
mov eax, ecx
add edi, esi
not eax
mov edx, edi
and eax, esi
and edx, ecx
or eax, edx
add eax, dword [ebp - 0x20]
lea eax, [ebx + eax + 0x265e5a51]
mov ebx, eax
shr ebx, 0x12
shl eax, 0xe
or ebx, eax
movsx eax, byte [0x438bec]
push eax
add ebx, edi
movsx eax, word [0x438c02]
push eax
call fcn.00410285
add byte [0x438beb], al
inc byte [0x438bea]
push 0x4907ffff
push 0x64b9ffff
call fcn.00410246
mov eax, esi
not eax
and eax, edi
mov ecx, ebx
mov edx, edi
and ecx, esi
mov word [0x438bfa], 1
or eax, ecx
mov ecx, dword [ebp - 4]
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, ebx
not ecx
and ecx, ebx
and edx, eax
or ecx, edx
mov edx, ebx
add ecx, dword [ebp - 0x38]
lea ecx, [esi + ecx - 0x29d0efa3]
mov esi, ecx
shr esi, 0x1b
shl ecx, 5
or esi, ecx
mov ecx, ebx
add esi, eax
dec byte [0x438bf1]
not ecx
and ecx, eax
and edx, esi
or ecx, edx
mov edx, eax
add ecx, dword [ebp - 0x24]
not edx
and edx, esi
lea edi, [edi + ecx + 0x2441453]
mov ecx, edi
shr ecx, 0x17
shl edi, 9
or ecx, edi
add ecx, esi
mov edi, ecx
and edi, eax
or edx, edi
add edx, dword [ebp - 0x10]
lea ebx, [ebx + edx - 0x275e197f]
mov edx, esi
mov edi, ebx
shr edi, 0x12
shl ebx, 0xe
or edi, ebx
add edi, ecx
inc byte [0x438bef]
not edx
mov ebx, edi
and edx, ecx
and ebx, esi
or edx, ebx
add edx, dword [ebp - 0x3c]
lea eax, [eax + edx - 0x182c0438]
mov edx, ecx
mov ebx, eax
shl ebx, 0x14
shr eax, 0xc
or ebx, eax
mov eax, ecx
add ebx, edi
not eax
and eax, edi
and edx, ebx
or eax, edx
add eax, dword [ebp - 0x28]
lea eax, [esi + eax + 0x21e1cde6]
mov esi, eax
shr esi, 0x1b
shl eax, 5
or esi, eax
add esi, ebx
dec byte [0x438bea]
or word [0x438c04], 0xffff
mov eax, edi
mov edx, edi
not eax
and eax, ebx
and edx, esi
or eax, edx
add eax, dword [ebp - 0x14]
lea ecx, [ecx + eax - 0x3cc8f82a]
mov eax, ecx
shr eax, 0x17
shl ecx, 9
or eax, ecx
mov ecx, ebx
add eax, esi
not ecx
mov edx, eax
and ecx, esi
and edx, ebx
mov dword [ebp - 8], eax
or ecx, edx
add ecx, dword [ebp - 0x40]
lea ecx, [edi + ecx - 0xb2af279]
mov edi, ecx
shr edi, 0x12
shl ecx, 0xe
or edi, ecx
add edi, eax
movsx eax, byte [0x438bec]
push eax
movsx eax, byte [0x438beb]
push eax
call fcn.004101be
add dword [0x438c0c], eax
mov eax, esi
not eax
and eax, dword [ebp - 8]
mov ecx, edi
and ecx, esi
or eax, ecx
mov ecx, dword [ebp - 8]
add eax, dword [ebp - 0x2c]
lea eax, [ebx + eax + 0x455a14ed]
mov ebx, eax
shl ebx, 0x14
shr eax, 0xc
or ebx, eax
mov eax, dword [ebp - 8]
add ebx, edi
not eax
and eax, edi
and ecx, ebx
or eax, ecx
add eax, dword [ebp - 0x18]
lea eax, [esi + eax - 0x561c16fb]
mov esi, eax
shr esi, 0x1b
shl eax, 5
or esi, eax
movsx eax, byte [0x438be9]
push eax
add esi, ebx
movsx eax, byte [0x438bea]
push eax
call fcn.00410130
add dword [0x438c24], eax
push 0xedd5ffff
push 0x7e87ffff
mov byte [0x438bf0], 1
call fcn.004100f9
mov word [0x438bf4], ax
mov eax, edi
not eax
mov ecx, edi
and eax, ebx
and ecx, esi
or eax, ecx
mov ecx, dword [ebp - 8]
add eax, dword [ebp - 0x44]
lea ecx, [ecx + eax - 0x3105c08]
mov eax, ecx
shr eax, 0x17
shl ecx, 9
or eax, ecx
mov ecx, ebx
add eax, esi
push 0x51f3ffff
not ecx
mov edx, eax
and ecx, esi
and edx, ebx
mov dword [ebp - 8], eax
or ecx, edx
add ecx, dword [ebp - 0x30]
lea ecx, [edi + ecx + 0x676f02d9]
mov edi, ecx
shr edi, 0x12
shl ecx, 0xe
or edi, ecx
add edi, eax
mov al, byte [0x438bf2]
mov byte [0x438beb], al
movsx eax, byte [0x438bee]
push eax
call fcn.00410130
mov byte [0x438be9], al
mov eax, esi
not eax
and eax, dword [ebp - 8]
mov ecx, edi
and ecx, esi
add esp, 0x40
or eax, ecx
add eax, dword [ebp - 0x1c]
push 0xa983ffff
push 0xd9c3ffff
lea eax, [ebx + eax - 0x72d5b376]
mov ebx, eax
shl ebx, 0x14
shr eax, 0xc
or ebx, eax
add ebx, edi
call fcn.00410167
add byte [0x438bed], al
movsx eax, word [0x438c00]
push eax
movsx eax, byte [0x438bef]
push eax
call fcn.004101be
mov word [0x438bf2], ax
mov eax, dword [ebp - 8]
xor eax, edi
push 0x9e1bffff
xor eax, ebx
add eax, dword [ebp - 0x38]
lea eax, [esi + eax - 0x5c6be]
mov esi, eax
shr esi, 0x1c
shl eax, 4
or esi, eax
mov al, byte [0x438c08]
imul byte [0x438bea]
add byte [0x438bee], al
add esi, ebx
movsx eax, word [0x438c04]
push eax
call fcn.0041003a
mov byte [0x438bf1], al
mov ecx, dword [ebp - 8]
mov eax, edi
add esp, 0x18
xor eax, ebx
xor eax, esi
add eax, dword [ebp - 0x2c]
lea ecx, [ecx + eax - 0x788e097f]
mov eax, ecx
shr eax, 0x15
shl ecx, 0xb
or eax, ecx
add eax, esi
mov ecx, eax
mov dword [ebp - 8], eax
xor ecx, ebx
xor ecx, esi
push 0x50d7ffff
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
call dword [sym.imp.USER32.dll_IsMenu]
add word [0x438bf2], ax
mov ecx, dword [0x438c20]
movsx eax, word [0x438bf8]
push 0xd05bffff
lea eax, [ecx + eax + 0x1e340001]
mov dword [0x438c20], eax
mov eax, dword [ebp - 8]
xor eax, edi
mov ecx, eax
xor ecx, esi
add ecx, dword [ebp - 0x14]
lea ecx, [ebx + ecx - 0x21ac7f4]
mov ebx, ecx
shl ebx, 0x17
shr ecx, 9
or ebx, ecx
add ebx, edi
xor eax, ebx
add eax, dword [ebp - 0x48]
lea eax, [esi + eax - 0x5b4115bc]
mov esi, eax
shr esi, 0x1c
shl eax, 4
or esi, eax
movsx eax, byte [0x438be8]
push eax
add esi, ebx
call fcn.004100c8
push dword [0x438c2c]
mov byte [0x438be9], al
movsx eax, byte [0x438be8]
push eax
call fcn.004101be
add dword [0x438c20], eax
mov ecx, dword [ebp - 8]
mov eax, edi
or byte [0x438bef], 0xff
xor eax, ebx
add esp, 0x10
xor eax, esi
add eax, dword [ebp - 0x3c]
lea ecx, [ecx + eax + 0x4bdecfa9]
mov eax, ecx
shr eax, 0x15
shl ecx, 0xb
or eax, ecx
add eax, esi
mov ecx, eax
mov dword [ebp - 8], eax
xor ecx, ebx
xor ecx, esi
add ecx, dword [ebp - 0x30]
lea ecx, [edi + ecx - 0x944b4a0]
mov edi, ecx
shr edi, 0x10
shl ecx, 0x10
or edi, ecx
mov cl, byte [0x438bf0]
add edi, eax
neg cl
xor eax, edi
mov byte [0x438bed], cl
mov ecx, eax
xor ecx, esi
add ecx, dword [ebp - 0x24]
lea ecx, [ebx + ecx - 0x41404390]
mov ebx, ecx
shl ebx, 0x17
shr ecx, 9
or ebx, ecx
add ebx, edi
xor eax, ebx
add eax, dword [ebp - 0x18]
lea eax, [esi + eax + 0x289b7ec6]
mov esi, eax
shr esi, 0x1c
shl eax, 4
or esi, eax
xor eax, eax
add esi, ebx
cmp word [0x438bfa], ax
setne al
add dword [0x438c1c], eax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
add word [0x438c02], ax
push 0x49dfffff
movsx eax, word [0x438bf6]
push eax
call fcn.00410285
add dword [0x438c0c], eax
mov eax, edi
xor eax, ebx
pop ecx
xor eax, esi
pop ecx
add eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 8]
lea ecx, [ecx + eax - 0x155ed806]
mov eax, ecx
shr eax, 0x15
shl ecx, 0xb
or eax, ecx
add eax, esi
mov ecx, eax
mov dword [ebp - 8], eax
xor ecx, ebx
xor ecx, esi
add ecx, dword [ebp - 0x40]
lea ecx, [edi + ecx - 0x2b10cf7b]
mov edi, ecx
shr edi, 0x10
shl ecx, 0x10
or edi, ecx
mov ecx, dword [0x438c14]
add edi, eax
cmp dword [0x438c2c], 0
jne 0x425603
test ecx, ecx
jne 0x425603
and byte [0x438beb], cl
jmp 0x42560a
mov byte [0x438beb], 1
mov dl, byte [0x438c10]
neg dl
mov byte [0x438bee], dl
xor edx, edx
test ecx, ecx
setne dl
mov ecx, edx
xor eax, edi
add dword [0x438c0c], ecx
mov ecx, eax
xor ecx, esi
add ecx, dword [ebp - 0x34]
lea ecx, [ebx + ecx + 0x4881d05]
mov ebx, ecx
shl ebx, 0x17
shr ecx, 9
or ebx, ecx
add ebx, edi
xor eax, ebx
add eax, dword [ebp - 0x28]
lea eax, [esi + eax - 0x262b2fc7]
mov esi, eax
shr esi, 0x1c
shl eax, 4
or esi, eax
movsx eax, byte [0x438bf0]
push eax
add esi, ebx
movsx eax, word [0x438bf8]
push eax
call fcn.004100f9
mov byte [0x438bed], al
push 0x5683ffff
movsx eax, byte [0x438bea]
push eax
call fcn.0041020b
add dword [0x438c2c], eax
movsx eax, byte [0x438bec]
push eax
push dword [0x438c08]
call fcn.004100f9
mov byte [0x438be8], al
mov ecx, dword [ebp - 8]
mov eax, edi
xor eax, ebx
xor eax, esi
add eax, dword [ebp - 0x1c]
lea eax, [ecx + eax - 0x1924661b]
mov ecx, eax
shr ecx, 0x15
shl eax, 0xb
or ecx, eax
add ecx, esi
mov eax, ecx
mov dword [ebp - 8], ecx
xor eax, ebx
xor eax, esi
add eax, dword [ebp - 0x10]
lea eax, [edi + eax + 0x1fa27cf8]
mov edi, eax
shr edi, 0x10
shl eax, 0x10
or edi, eax
mov ax, word [0x438bf8]
add edi, ecx
dec ax
mov word [0x438bfc], ax
mov dword [ebp + 8], edi
movsx eax, byte [0x438bee]
push eax
push 0xafbbffff
call fcn.00410092
add word [0x438bfa], ax
mov eax, dword [0x438c28]
mov ecx, dword [0x438c20]
add esp, 0x20
lea eax, [ecx + eax + 0x8c9ffff]
mov dword [0x438c20], eax
mov eax, dword [ebp - 8]
xor eax, edi
xor eax, esi
add eax, dword [ebp - 0x44]
push 0x815ffff
push 0x66a5ffff
push 0xc773ffff
lea eax, [ebx + eax - 0x3b53a99b]
mov ebx, eax
shl ebx, 0x17
shr eax, 9
or ebx, eax
add ebx, edi
mov dword [ebp - 4], ebx
call dword [sym.imp.KERNEL32.dll_MulDiv]
push dword [0x438c08]
add dword [0x438c10], eax
push 0x2737ffff
call fcn.00410246
add word [0x438bf2], ax
mov eax, dword [ebp - 8]
not eax
or eax, ebx
push 0x1a85ffff
xor eax, edi
push dword [0x438c1c]
add eax, dword [ebp - 0x4c]
not edi
lea eax, [esi + eax - 0xbd6ddbc]
mov esi, eax
shr esi, 0x1a
shl eax, 6
or esi, eax
mov eax, dword [ebp - 8]
add esi, ebx
or edi, esi
xor edi, ebx
add edi, dword [ebp - 0x30]
lea eax, [eax + edi + 0x432aff97]
mov edi, eax
shr edi, 0x16
shl eax, 0xa
or edi, eax
add edi, esi
call fcn.00410285
mov dword [0x438c1c], eax
push 0x6471ffff
movsx eax, word [0x438bf4]
push eax
call fcn.0041020b
add dword [0x438c18], eax
mov eax, dword [ebp + 8]
not ebx
or ebx, edi
mov ecx, dword [ebp - 4]
xor ebx, esi
add esp, 0x18
add ebx, dword [ebp - 0x14]
lea eax, [eax + ebx - 0x546bdc59]
mov ebx, eax
shr ebx, 0x11
shl eax, 0xf
or ebx, eax
mov eax, esi
add ebx, edi
not eax
or eax, ebx
xor eax, edi
add eax, dword [ebp - 0x38]
lea eax, [ecx + eax - 0x36c5fc7]
mov ecx, eax
shl ecx, 0x15
shr eax, 0xb
or ecx, eax
add ecx, ebx
cmp byte [0x438be9], 0
mov dword [ebp - 4], ecx
je 0x425842
cmp word [0x438bfc], 0
je 0x425842
push 1
pop eax
jmp 0x425844
xor eax, eax
add word [0x438bf2], ax
xor eax, eax
cmp word [0x438c02], ax
je 0x425862
cmp word [0x438bfa], ax
je 0x425862
push 1
pop eax
add dword [0x438c24], eax
mov eax, edi
not eax
or eax, ecx
push 0xffffffffffffffff
xor eax, ebx
add eax, dword [ebp - 0x1c]
lea eax, [esi + eax + 0x655b59c3]
mov esi, eax
shr esi, 0x1a
shl eax, 6
or esi, eax
add esi, ecx
call dword [sym.imp.USER32.dll_IsCharAlphaA]
mov dword [0x438c10], eax
mov al, byte [0x438bee]
sub al, byte [0x438c08]
or word [0x438bfa], 0xffff
push 0x355bffff
push 0xfc33ffff
add byte [0x438bea], al
mov eax, ebx
not eax
or eax, esi
xor eax, dword [ebp - 4]
add eax, dword [ebp - 0x40]
lea eax, [edi + eax - 0x70f3336e]
mov edi, eax
shr edi, 0x16
shl eax, 0xa
or edi, eax
add edi, esi
call fcn.00410167
add dword [0x438c20], eax
pop ecx
pop ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov byte [0x438bf0], al
mov eax, dword [ebp - 4]
not eax
or eax, edi
mov ecx, dword [ebp - 4]
xor eax, esi
push 0x7b41ffff
add eax, dword [ebp - 0x24]
push 0x1fb7ffff
lea eax, [ebx + eax - 0x100b83]
mov ebx, eax
shr ebx, 0x11
shl eax, 0xf
or ebx, eax
mov eax, esi
add ebx, edi
not eax
or eax, ebx
xor eax, edi
add eax, dword [ebp - 0x48]
lea eax, [ecx + eax - 0x7a7ba22f]
mov ecx, eax
shl ecx, 0x15
shr eax, 0xb
or ecx, eax
add ecx, ebx
mov dword [ebp - 4], ecx
call fcn.00410167
add dword [0x438c18], eax
mov eax, edi
not eax
or eax, dword [ebp - 4]
pop ecx
pop ecx
xor eax, ebx
add eax, dword [ebp - 0x2c]
lea eax, [esi + eax + 0x6fa87e4f]
mov esi, eax
shr esi, 0x1a
shl eax, 6
or esi, eax
mov eax, ebx
add esi, dword [ebp - 4]
not eax
or eax, esi
push 0x82a7ffff
xor eax, dword [ebp - 4]
mov byte [0x438bf1], 1
add eax, dword [ebp - 0x10]
lea eax, [edi + eax - 0x1d31920]
mov edi, eax
shr edi, 0x16
shl eax, 0xa
or edi, eax
add edi, esi
inc word [0x438bf2]
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
mov ecx, dword [ebp - 4]
add dword [0x438c2c], eax
mov eax, ecx
push 0x4e43ffff
not eax
or eax, edi
xor eax, esi
add eax, dword [ebp - 0x34]
lea eax, [ebx + eax - 0x5cfebcec]
mov ebx, eax
shr ebx, 0x11
shl eax, 0xf
or ebx, eax
mov eax, esi
add ebx, edi
not eax
or eax, ebx
xor eax, edi
add eax, dword [ebp - 0x18]
lea eax, [ecx + eax + 0x4e0811a1]
mov ecx, eax
shl ecx, 0x15
shr eax, 0xb
or ecx, eax
movsx eax, byte [0x438be8]
add ecx, ebx
push eax
mov dword [ebp - 4], ecx
call fcn.004100f9
push dword [0x438c18]
add word [0x438c00], ax
push 0x2ea7ffff
call fcn.0041003a
mov byte [0x438bef], al
mov eax, edi
not eax
or eax, dword [ebp - 4]
push 0x111dffff
push 0xb0c7ffff
xor eax, ebx
add eax, dword [ebp - 0x3c]
lea eax, [esi + eax - 0x8ac817e]
mov esi, eax
shr esi, 0x1a
shl eax, 6
or esi, eax
mov eax, ebx
add esi, dword [ebp - 4]
not eax
or eax, esi
mov dword [ebp + 8], esi
xor eax, dword [ebp - 4]
add eax, dword [ebp - 0x20]
lea eax, [edi + eax - 0x42c50dcb]
mov edi, eax
shr edi, 0x16
shl eax, 0xa
or edi, eax
add edi, esi
call fcn.00410130
add word [0x438bf4], ax
mov ecx, dword [ebp - 4]
movsx ax, byte [0x438bef]
and ax, word [0x438bf8]
add word [0x438bfc], ax
sub dword [0x438c10], 0x32620002
mov eax, ecx
not eax
or eax, edi
push 0x6e03ffff
xor eax, esi
push 0x19efffff
add eax, dword [ebp - 0x44]
not esi
lea eax, [ebx + eax + 0x2ad7d2bb]
mov ebx, eax
shr ebx, 0x11
shl eax, 0xf
or ebx, eax
add ebx, edi
or esi, ebx
xor esi, edi
add esi, dword [ebp - 0x28]
lea eax, [ecx + esi - 0x14792c6f]
mov dword [ebp - 4], eax
call fcn.004100c8
add byte [0x438bf1], al
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
add dword [esi], eax
mov eax, dword [ebp - 4]
mov ecx, eax
shl ecx, 0x15
shr eax, 0xb
or ecx, eax
add ecx, ebx
add dword [esi + 4], ecx
push dword [0x438c08]
push 0x94efffff
call fcn.0041020b
add word [0x438bf8], ax
add dword [esi + 8], ebx
add dword [esi + 0xc], edi
add esp, 0x28
push 0xbe41ffff
call dword [sym.imp.KERNEL32.dll_IsBadCodePtr]
mov word [0x438bf8], ax
push 0x40
lea eax, [ebp - 0x4c]
push 0
push eax
mov dword [0x438c18], 0x5a0001
call sub.MSVCRT.dll_memset
xor eax, eax
push 0x9141ffff
cmp dword [0x438c1c], eax
setne al
add dword [0x438c10], eax
mov ax, word [0x438bfe]
inc ax
add word [0x438bf6], ax
movsx eax, word [0x438bf8]
push eax
call fcn.004100f9
add esp, 0x14
add byte [0x438bf1], al
pop edi
pop esi
pop ebx
leave
ret 4