Function at 0x42027c
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x654
push ebx
push esi
push edi
push 0x1e
pop eax
push 9
mov dword [ebp - 0x7c], ecx
lea edi, [ebp - 0x3c]
pop ecx
mov byte [ebp - 0xac], al
mov esi, 0x402454
mov byte [ebp - 0xa0], al
xor edx, edx
push 5
pop eax
mov byte [ebp - 0xab], cl
mov ecx, eax
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xb4], 0x41b8db7a
mov eax, edx
mov dword [ebp - 0xb0], 0x17f4b4e7
mov dword [ebp - 0xaa], 0x35e5422b
movsb byte es:[edi], byte [esi]
mov dword [ebp - 0xa6], 0xdf79c600
mov edi, edx
mov word [ebp - 0xa2], 0x26b5
mov dword [ebp - 0x9f], 0xdc6425f2
mov dword [ebp - 0x9b], 0x3ee41895
mov dword [ebp - 0x97], 0x1d7d8237
mov dword [ebp - 0x93], 0x7c383c48
mov dword [ebp - 0x8f], 0x9127bcea
mov word [ebp - 0x8b], 0x139
mov byte [ebp - 0x89], 0x83
mov byte [ebp + eax - 0x1f4], al
inc eax
cmp eax, 0x100
jb 0x42032c
push 0x14
mov esi, edx
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x1f4]
mov eax, esi
div ecx
movzx ecx, bl
push 0x14
movzx eax, byte [ebp + edx - 0x3c]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x1f4]
mov byte [ebp + esi - 0x1f4], al
inc esi
mov byte [ebp + edi - 0x1f4], bl
cmp esi, 0x100
jb 0x420340
mov esi, dword [0x44d6f8]
xor eax, eax
mov dword [ebp - 0x18], eax
mov ebx, eax
mov edi, eax
add esi, 0x56136a01
lea eax, [ebx + 1]
add esi, 0x63f4d4f0
movzx ebx, al
mov eax, dword [ebp - 0x18]
mov cl, byte [ebp + ebx - 0x1f4]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x18], eax
mov al, byte [ebp + eax - 0x1f4]
mov byte [ebp + ebx - 0x1f4], al
mov eax, dword [ebp - 0x18]
mov byte [ebp + eax - 0x1f4], cl
movzx eax, byte [ebp + ebx - 0x1f4]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1f4]
xor al, byte [ebp + edi - 0xb4]
mov byte [ebp + edi - 0x3dc], al
inc edi
cmp edi, 0x2c
jb 0x420392
xor edx, edx
mov dword [ebp - 0x10], 0x7703ff2e
xor esi, 0x298637f3
mov byte [ebp - 0x3b0], dl
mov dword [0x44d6f8], esi
mov ecx, edx
mov word [ebp - 0xc], 0xff23
mov eax, 0x402530
inc ecx
lea eax, [eax + 2]
cmp ecx, 0x1f48
jl 0x42042e
cmp word [eax], dx
jne 0x42041b
jmp 0x42044c
sub esp, 0xc
call fcn.00420033
imul eax, esi, 0xb3335d74
add esp, 0xc
mov dword [0x44d6f8], eax
cmp ecx, 0x137a
jle 0x42046c
push ecx
push ecx
call fcn.0041ffca
pop ecx
pop ecx
xor dword [0x44d6f8], 0x87e09720
call dword [sym.imp.USER32.dll_GetDialogBaseUnits]
mov eax, dword [0x44d6f8]
jmp 0x420471
sub eax, 0x4e570148
imul ebx, eax, 0x5e112055
call fcn.0041ff11
mov esi, 0x401eb8
lea edi, [ebp - 0x88]
xor ecx, ecx
mov eax, ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov edi, ecx
mov byte [ebp + eax - 0x1f4], al
inc eax
cmp eax, 0x100
jb 0x420490
mov esi, ecx
push 0x25
mov ecx, 0x402530
pop edx
lea eax, [edx - 0x30]
push 9
pop edx
cmp ax, dx
ja 0x4204c3
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x4204a9
jmp 0x4204c9
or ebx, 0x99cbf397
mov dl, byte [ebp + esi - 0x1f4]
mov eax, esi
and eax, 7
movzx ecx, dl
xor ebx, 0xfff6bf5d
or ebx, 0x7ae6b45d
mov dword [0x44d6f8], ebx
movzx eax, byte [ebp + eax - 0x88]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1f4]
mov byte [ebp + esi - 0x1f4], al
inc esi
mov byte [ebp + edi - 0x1f4], dl
cmp esi, 0x100
jb 0x4204a1
xor eax, eax
mov dword [ebp - 0x40], ebx
mov ebx, eax
mov dword [ebp - 4], 6
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
push 6
mov cl, byte [ebp + edi - 0x1f4]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1f4]
mov byte [ebp + edi - 0x1f4], al
mov byte [ebp + ebx - 0x1f4], cl
movzx eax, byte [ebp + edi - 0x1f4]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1f4]
xor al, byte [ebp + esi - 0x10]
mov byte [ebp + esi - 0xf4], al
inc esi
pop eax
cmp esi, eax
jb 0x420529
xor edx, edx
mov dword [ebp - 0x88], 0x36
push 0x1c
mov byte [ebp - 0xee], dl
mov eax, edx
pop ecx
mov dword [ebp - 0x84], 0x5e
mov dword [ebp - 0x80], 0xffffff86
sub ecx, dword [ebp + eax*4 - 0x88]
inc eax
cmp eax, 3
jl 0x4205a3
mov dword [ebp - 0xcc], 0xd
lea edi, [ebp - 0x33c]
mov dword [ebp - 0xc8], 0x12
mov esi, 0x401c64
mov dword [ebp - 0xc4], 0x4d
mov dword [ebp - 0xc0], 0xffffff7a
movups xmm1, xmmword [ebp - 0xcc]
push 7
mov dword [ebp - 0x78], ecx
movaps xmm0, xmm1
mov dword [ebp - 0x3c], 0x76b00e99
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x38], 0xfeb77190
movups xmm0, xmm1
mov dword [ebp - 0x34], 0x9183d401
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x30], 0xe766163b
movd eax, xmm1
mov dword [ebp - 0x2c], 0x30415a1c
mov dword [ebp - 0x28], 0xd09240f7
add eax, 0x1a
mov dword [ebp - 0x1c], eax
pop eax
mov ecx, eax
mov eax, edx
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edi, edx
mov byte [ebp + eax - 0x1f4], al
inc eax
cmp eax, 0x100
jb 0x420647
mov esi, edx
xor edx, edx
mov bl, byte [ebp + esi - 0x1f4]
push 0x1e
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x33c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1f4]
mov byte [ebp + esi - 0x1f4], al
inc esi
mov byte [ebp + edi - 0x1f4], bl
cmp esi, 0x100
jb 0x420658
mov ecx, dword [ebp - 0x40]
xor edx, edx
mov ebx, edx
mov esi, edx
mov edi, edx
lea eax, [esi + 1]
movzx esi, al
mov eax, edx
inc eax
cmp eax, 0x79d
je 0x4206be
cmp byte [eax + 0x402500], 0
jne 0x4206ab
jmp 0x4206d3
push ecx
push ecx
call fcn.0041ffca
pop ecx
pop ecx
mov ecx, dword [0x44d6f8]
add ecx, 0x66ee3b77
and ecx, 0xfffddfbd
or ecx, 0xf9f0521c
push ecx
push ecx
mov dword [0x44d6f8], ecx
call fcn.0041ffca
pop ecx
pop ecx
mov cl, byte [ebp + esi - 0x1f4]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1f4]
mov byte [ebp + esi - 0x1f4], al
mov byte [ebp + ebx - 0x1f4], cl
movzx eax, byte [ebp + esi - 0x1f4]
add eax, edx
xor edx, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1f4]
xor al, byte [ebp + edi - 0x3c]
mov byte [ebp + edi - 0x374], al
inc edi
cmp edi, 0x18
jae 0x420745
mov ecx, dword [0x44d6f8]
jmp 0x4206a3
mov esi, 0x401aec
mov byte [ebp - 0x35c], dl
lea edi, [ebp - 0x54]
mov dword [ebp - 0x10], 0x7dcf3a85
push 9
mov word [ebp - 0xc], 0x7d2f
mov ecx, 0x402500
movsd dword es:[edi], dword [esi]
mov al, 0x45
pop ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
sub al, 0x30
cmp al, bl
ja 0x420785
inc ecx
mov al, byte [ecx]
test al, al
jne 0x420771
mov eax, dword [0x44d6f8]
jmp 0x42078f
mov eax, dword [0x44d6f8]
sub eax, 0x792ad957
or eax, 0x6978b155
mov edi, edx
mov dword [ebp - 0x40], eax
mov eax, edx
mov byte [ebp + eax - 0x1f4], al
inc eax
cmp eax, 0x100
jb 0x42079b
mov esi, edx
xor edx, edx
mov bl, byte [ebp + esi - 0x1f4]
push 0x12
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x54]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1f4]
mov byte [ebp + esi - 0x1f4], al
inc esi
mov byte [ebp + edi - 0x1f4], bl
cmp esi, 0x100
jb 0x4207ac
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
push 6
mov cl, byte [ebp + edi - 0x1f4]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1f4]
mov byte [ebp + edi - 0x1f4], al
mov byte [ebp + ebx - 0x1f4], cl
movzx eax, byte [ebp + edi - 0x1f4]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1f4]
xor al, byte [ebp + esi - 0x10]
mov byte [ebp + esi - 0xec], al
inc esi
pop eax
cmp esi, eax
jb 0x4207f1
xor edx, edx
mov dword [ebp - 0xbc], 0x26
push 0x29
mov byte [ebp - 0xe6], dl
mov eax, edx
pop ecx
mov dword [ebp - 0xb8], 0xffffffb2
add ecx, dword [ebp + eax*4 - 0xbc]
inc eax
cmp eax, 2
jl 0x420864
mov ebx, dword [ebp - 0x40]
lea edi, [ebp - 0xbc]
mov esi, 0x40246c
mov dword [ebp - 0x10], ecx
push 0x12
pop eax
or ebx, 0x26b39d59
mov byte [ebp - 0x38], al
movsd dword es:[edi], dword [esi]
mov eax, edx
mov dword [ebp - 0x3c], 0x571099d6
xor ebx, 0xeb3000f9
mov dword [ebp - 0x37], 0x79d4abc6
mov dword [ebp - 0x33], 0x10b13daa
movsw word es:[edi], word [esi]
mov dword [ebp - 0x2f], 0xc9a18d20
mov dword [ebp - 0x2b], 0x7a5cffce
mov word [ebp - 0x27], 0xef5e
movsb byte es:[edi], byte [esi]
mov byte [ebp - 0x25], 0x3f
mov edi, edx
add ebx, 0x6c2011b4
mov byte [ebp + eax - 0x1f4], al
inc eax
cmp eax, 0x100
jb 0x4208c9
mov esi, edx
xor edx, edx
mov cl, byte [ebp + esi - 0x1f4]
mov eax, esi
mov byte [ebp - 5], cl
div dword [ebp - 4]
movzx ecx, cl
xor ebx, 0x5195f595
push 0x25
movzx eax, byte [ebp + edx - 0xbc]
add eax, edi
add ecx, eax
movzx edi, cl
mov ecx, 0x402530
pop edx
mov al, byte [ebp + edi - 0x1f4]
mov byte [ebp + esi - 0x1f4], al
lea eax, [edx - 0x30]
push 9
pop edx
cmp ax, dx
ja 0x420939
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x42091f
jmp 0x42093f
and ebx, 0xa30b35ca
mov al, byte [ebp - 5]
xor ebx, 0x161e07c9
inc esi
mov byte [ebp + edi - 0x1f4], al
cmp esi, 0x100
jb 0x4208e0
xor eax, eax
mov dword [ebp - 0x18], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
add ebx, 0x1e05a1dd
movzx edi, al
mov eax, dword [ebp - 0x18]
mov cl, byte [ebp + edi - 0x1f4]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x18], eax
mov al, byte [ebp + eax - 0x1f4]
mov byte [ebp + edi - 0x1f4], al
mov eax, dword [ebp - 0x18]
mov byte [ebp + eax - 0x1f4], cl
movzx eax, byte [ebp + edi - 0x1f4]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1f4]
xor al, byte [ebp + esi - 0x3c]
mov byte [ebp + esi - 0xa4], al
inc esi
cmp esi, 0x18
jb 0x420961
mov esi, 0x401ee0
mov dword [ebp - 0x18], 0xfbd488a5
lea edi, [ebp - 0xc8]
mov word [ebp - 0x14], 0xa3e3
xor ecx, ecx
and ebx, 0x5f7d4649
mov byte [ebp - 0x8c], cl
mov eax, ecx
movsd dword es:[edi], dword [esi]
mov dword [0x44d6f8], ebx
mov dword [ebp - 4], ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov byte [ebp + eax - 0x1f4], al
inc eax
cmp eax, 0x100
jb 0x4209f3
mov edi, ecx
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movzx esi, ax
xor edx, edx
push 0xb
mov eax, edi
mov bl, byte [ebp + edi - 0x1f4]
pop ecx
div ecx
movzx ecx, bl
and esi, 0x11b2b9a0
mov dword [0x44d6f8], esi
movzx eax, byte [ebp + edx - 0xc8]
add eax, dword [ebp - 4]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 4], ecx
mov al, byte [ebp + ecx - 0x1f4]
mov byte [ebp + edi - 0x1f4], al
inc edi
mov byte [ebp + ecx - 0x1f4], bl
cmp edi, 0x100
jb 0x420a04
push 0x25
mov edx, 0x22fd
mov eax, 0x402530
pop ecx
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0x1939
ja 0x420a86
movzx ecx, word [eax]
test ecx, ecx
jne 0x420a6a
and esi, 0xf8f7f2fe
jmp 0x420aa4
call fcn.0041ff11
and esi, 0x9a6bab8
push esi
mov dword [0x44d6f8], esi
call dword [sym.imp.USER32.dll_GetLastActivePopup]
lea esi, [eax + 0x54c8c8af]
add esi, 0x16df71d1
call fcn.0041ff11
xor edx, edx
mov ecx, 0x402520
mov ebx, edx
mov al, 0x63
sub al, 0x30
cmp al, 9
ja 0x420ac9
inc ecx
mov al, byte [ecx]
test al, al
jne 0x420aba
jmp 0x420acf
or esi, 0xa5c9b98d
and esi, 0xb82be436
mov edi, edx
mov dword [ebp - 4], esi
mov esi, edx
lea eax, [ebx + 1]
movzx ebx, al
push 6
mov cl, byte [ebp + ebx - 0x1f4]
movzx edx, cl
lea eax, [edx + esi]
movzx esi, al
mov al, byte [ebp + esi - 0x1f4]
mov byte [ebp + ebx - 0x1f4], al
mov byte [ebp + esi - 0x1f4], cl
movzx eax, byte [ebp + ebx - 0x1f4]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1f4]
xor al, byte [ebp + edi - 0x18]
mov byte [ebp + edi - 0xe4], al
inc edi
pop eax
cmp edi, eax
jb 0x420adc
mov esi, dword [ebp - 4]
xor eax, eax
push 9
mov byte [ebp - 0xde], al
mov ecx, 0x402520
mov al, 0x63
pop edx
sub al, 0x30
cmp al, dl
ja 0x420b52
inc ecx
mov al, byte [ecx]
test al, al
jne 0x420b43
jmp 0x420b58
or esi, 0x9683a2ce
imul eax, esi, 0xbea9893e
push ecx
push ecx
mov dword [0x44d6f8], eax
call fcn.0041ffca
mov dword [ebp - 0xcc], 0x1f
xorps xmm1, xmm1
mov dword [ebp - 0xc8], 0x14
mov dword [ebp - 0xc4], 0x60
mov dword [ebp - 0xc0], 0xffffff74
movups xmm0, xmmword [ebp - 0xcc]
pop ecx
pop ecx
push dword [ebp - 0x1c]
psubd xmm1, xmm0
mov dword [ebp - 0x654], 0x22c
push dword [ebp - 0x78]
movaps xmm0, xmm1
lea ecx, [ebp - 0xf4]
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd ebx, xmm1
add ebx, 8
mov dword [ebp - 0x40], ebx
call fcn.0041e657
mov edx, eax
lea ecx, [ebp - 0x3dc]
call fcn.0041e636
call eax
lea ecx, [ebp - 0x654]
mov dword [ebp - 0x18], eax
push ecx
push eax
lea ecx, [ebp - 0xec]
call fcn.0041e657
mov edx, eax
lea ecx, [ebp - 0x374]
call fcn.0041e636
call eax
cmp eax, dword [ebp - 0x10]
jne 0x4215b0
push 0x12
pop eax
mov ecx, eax
mov byte [ebp - 0x46], al
mov esi, 0x402478
mov dword [ebp - 0x58], 0x846a3ee8
lea edi, [ebp - 0x428]
mov dword [ebp - 0x54], 0xb25c28ec
rep movsd dword es:[edi], dword [esi]
xor edx, edx
mov dword [ebp - 0x50], 0x619d0fef
mov dword [ebp - 0x4c], 0xa7748da4
mov ecx, edx
mov word [ebp - 0x48], 0xa251
mov eax, 0x402530
movsw word es:[edi], word [esi]
mov dword [ebp - 0x45], 0x2086175d
mov byte [ebp - 0x41], 0xa8
movsb byte es:[edi], byte [esi]
inc ecx
lea eax, [eax + 2]
cmp ecx, 0x1683
jg 0x420c83
cmp word [eax], dx
jne 0x420c6a
mov esi, dword [0x44d6f8]
jmp 0x420c9a
sub esp, 0xc
call fcn.00420033
mov esi, dword [0x44d6f8]
add esp, 0xc
add esi, 0x1314ce91
sub esp, 0xc
add esi, 0x1fc964c2
mov dword [ebp - 4], esi
mov dword [0x44d6f8], esi
call fcn.00420033
add esp, 0xc
mov eax, edx
mov byte [ebp + eax - 0x1f4], al
inc eax
cmp eax, 0x100
jb 0x420cb6
mov edi, edx
mov esi, edx
xor edx, edx
mov bl, byte [ebp + edi - 0x1f4]
push 0x4a
mov eax, edi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x428]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x1f4]
mov byte [ebp + edi - 0x1f4], al
inc edi
mov byte [ebp + esi - 0x1f4], bl
cmp edi, 0x100
jb 0x420cc9
mov esi, dword [ebp - 4]
xor eax, eax
mov dword [ebp - 0x1c], eax
mov ebx, eax
mov edi, eax
lea eax, [ebx + 1]
sub esi, 0x4425283a
movzx ebx, al
mov eax, dword [ebp - 0x1c]
mov dword [0x44d6f8], esi
mov cl, byte [ebp + ebx - 0x1f4]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x1c], eax
mov al, byte [ebp + eax - 0x1f4]
mov byte [ebp + ebx - 0x1f4], al
mov eax, dword [ebp - 0x1c]
mov byte [ebp + eax - 0x1f4], cl
movzx eax, byte [ebp + ebx - 0x1f4]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1f4]
xor al, byte [ebp + edi - 0x58]
mov byte [ebp + edi - 0x358], al
inc edi
cmp edi, 0x18
jb 0x420d15
mov eax, dword [0x401e18]
xor ecx, ecx
mov dword [ebp - 0x24], eax
mov ax, word [0x401e1c]
mov word [ebp - 0x20], ax
mov eax, ecx
mov dword [ebp - 4], esi
mov byte [ebp - 0x340], cl
mov dword [ebp - 0x78], 0x4124ec42
mov word [ebp - 0x74], 0x5e41
mov byte [ebp + eax - 0x31c], al
inc eax
cmp eax, 0x100
jb 0x420da5
mov edi, ecx
mov esi, ecx
xor edx, edx
mov bl, byte [ebp + edi - 0x31c]
push 5
mov eax, edi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x24]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x31c]
mov byte [ebp + edi - 0x31c], al
inc edi
mov byte [ebp + esi - 0x31c], bl
cmp edi, 0x100
jb 0x420db8
mov esi, dword [ebp - 4]
xor ecx, ecx
mov ebx, ecx
mov edi, ecx
mov eax, ecx
inc eax
cmp eax, 0xa54
je 0x420e24
cmp byte [eax + 0x402500], cl
jne 0x420e00
cmp eax, 0x207b
jle 0x420e2a
sub esp, 0xc
call fcn.00420033
add esp, 0xc
jmp 0x420e2a
and esi, 0x6531e649
or esi, 0x47436ace
xor esi, 0x579d5d15
mov dword [0x44d6f8], esi
mov esi, ecx
lea eax, [edi + 1]
movzx edi, al
push 6
mov cl, byte [ebp + edi - 0x31c]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x31c]
mov byte [ebp + edi - 0x31c], al
mov byte [ebp + ebx - 0x31c], cl
movzx eax, byte [ebp + edi - 0x31c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x31c]
xor al, byte [ebp + esi - 0x78]
mov byte [ebp + esi - 0xdc], al
inc esi
pop eax
cmp esi, eax
jb 0x420e3e
push 0xe
pop ebx
xor eax, eax
mov dword [ebp - 0x38], 0x2f
push 5
mov byte [ebp - 0xd6], al
mov dword [ebp - 0x34], 0x3c
mov dword [ebp - 0x30], 0x2d
mov dword [ebp - 0x2c], 0x4b
mov dword [ebp - 0x28], 0xffffff2a
pop ecx
sub ebx, dword [ebp + eax*4 - 0x38]
inc eax
cmp eax, ecx
jl 0x420ec1
lea eax, [ebp - 0x654]
mov dword [ebp - 0x78], ebx
push eax
push dword [ebp - 0x18]
lea ecx, [ebp - 0xdc]
call fcn.0041e657
mov edx, eax
lea ecx, [ebp - 0x358]
call fcn.0041e636
call eax
cmp eax, ebx
jne 0x4215ad
mov dword [ebp - 0x1fc], 0x24
mov dword [ebp - 0x1f8], 0xffffffa2
push 0x3e
xor ebx, ebx
pop esi
mov eax, ebx
add esi, dword [ebp + eax*4 - 0x1fc]
inc eax
cmp eax, 2
jl 0x420f14
mov edi, dword [ebp - 0x7c]
mov ecx, edi
call fcn.004369fb
cmp eax, esi
jbe 0x420f55
mov ebx, dword [0x44d6f8]
lea ecx, [ebp - 0x630]
or ebx, 0x476d2d68
mov edx, edi
mov dword [0x44d6f8], ebx
call fcn.00436e44
mov edi, eax
jmp 0x4211d0
mov eax, dword [0x4024c4]
mov edx, 0x21b9
mov dword [ebp - 0xd4], eax
mov ax, word [0x4024c8]
push 0x25
mov word [ebp - 0xd0], ax
mov eax, 0x402530
mov dword [ebp - 0x58], 0x2450256
mov dword [ebp - 0x54], 0x56b3766d
mov dword [ebp - 0x50], 0xf7348a60
mov dword [ebp - 0x4c], 0x1165293c
mov dword [ebp - 0x48], 0x429caaa4
mov dword [ebp - 0x44], 0xf49bfb08
pop ecx
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0x21b3
ja 0x420fc0
movzx ecx, word [eax]
test ecx, ecx
jne 0x420fa4
mov esi, dword [0x44d6f8]
jmp 0x420fd7
sub esp, 0xc
call fcn.00420033
mov esi, dword [0x44d6f8]
add esp, 0xc
or esi, 0x6e6097d4
add esi, 0x22489962
mov dword [ebp - 4], ebx
xor esi, 0x63624fe1
push 9
mov ecx, 0x402520
mov al, 0x63
pop edx
sub al, 0x30
cmp al, dl
ja 0x420fff
inc ecx
mov al, byte [ecx]
test al, al
jne 0x420ff0
jmp 0x421005
or esi, 0xa8f7a2c1
xor esi, 0x5155acb1
call fcn.0041ff11
mov byte [ebp + ebx - 0x31c], bl
inc ebx
cmp ebx, 0x100
jb 0x420fe6
xor eax, eax
mov edi, eax
push 5
pop ecx
xor edx, edx
mov bl, byte [ebp + edi - 0x31c]
mov eax, edi
div ecx
movzx ecx, bl
push 9
movzx eax, byte [ebp + edx - 0xd4]
add eax, dword [ebp - 4]
add ecx, eax
movzx eax, cl
mov ecx, 0x402500
mov dword [ebp - 4], eax
mov al, 0x45
pop edx
sub al, 0x30
cmp al, dl
ja 0x421063
inc ecx
mov al, byte [ecx]
test al, al
jne 0x421054
jmp 0x421069
xor esi, 0x4ab48d76
push ecx
sub esi, 0x466762d8
push ecx
mov dword [0x44d6f8], esi
call fcn.0041ffca
pop ecx
pop ecx
mov ecx, dword [ebp - 4]
mov al, byte [ebp + ecx - 0x31c]
mov byte [ebp + edi - 0x31c], al
inc edi
mov byte [ebp + ecx - 0x31c], bl
cmp edi, 0x100
jae 0x4210aa
mov esi, dword [0x44d6f8]
jmp 0x421024
xor eax, eax
mov edx, eax
mov ebx, eax
mov edi, eax
lea eax, [ebx + 1]
movzx ebx, al
mov cl, byte [ebp + ebx - 0x31c]
movzx esi, cl
lea eax, [esi + edx]
movzx edx, al
mov dword [ebp - 0x10], edx
mov al, byte [ebp + edx - 0x31c]
mov byte [ebp + ebx - 0x31c], al
mov byte [ebp + edx - 0x31c], cl
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
movzx eax, byte [ebp + ebx - 0x31c]
mov edx, dword [ebp - 0x10]
add eax, esi
movzx eax, al
mov al, byte [ebp + eax - 0x31c]
xor al, byte [ebp + edi - 0x58]
mov byte [ebp + edi - 0x390], al
inc edi
cmp edi, 0x18
jb 0x4210b2
xor edx, edx
mov byte [ebp - 0x378], dl
mov ebx, edx
mov eax, edx
inc eax
cmp eax, 0x6b
jl 0x421130
cmp byte [eax + 0x402500], dl
jne 0x42111a
mov ecx, dword [0x44d6f8]
jmp 0x42113c
mov ecx, dword [0x44d6f8]
add ecx, 0xead0d3b
and ecx, 0xac79cd92
sub esp, 0xc
xor ecx, 0x207ab7ee
mov dword [0x44d6f8], ecx
call fcn.00420033
add esp, 0xc
mov dword [ebp - 0x38], 0x3b
lea eax, [ecx - 0x46cb127d]
mov dword [ebp - 0x34], 0x53
mov dword [0x44d6f8], eax
mov eax, edx
mov dword [ebp - 0x30], 0x2d
push 5
mov dword [ebp - 0x2c], 0x3d
mov dword [ebp - 0x28], 0xffffff08
pop ecx
sub ebx, dword [ebp + eax*4 - 0x38]
inc eax
cmp eax, ecx
jl 0x42118c
lea ecx, [ebp - 0x390]
call fcn.004361ab
mov esi, eax
lea ecx, [ebp - 0x630]
mov edx, esi
call fcn.00436e44
mov ecx, esi
mov edi, eax
call fcn.004369fb
push eax
push ebx
push esi
call fcn.004360de
add esp, 0xc
mov ecx, esi
call fcn.0041e600
mov ebx, dword [0x44d6f8]
test edi, edi
jne 0x421580
mov esi, 0x4024cc
mov dword [ebp - 0x70], 0x888d0de
lea edi, [ebp - 0x38]
mov dword [ebp - 0x6c], 0xc011a9f6
xor ebx, 0xf8a23628
mov dword [ebp - 0x68], 0x58c3f867
push 9
movsd dword es:[edi], dword [esi]
mov dword [0x44d6f8], ebx
xor ebx, ebx
pop eax
mov dword [ebp - 0x64], 0x5fe661bb
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x60], 0xfe6c9e9e
mov word [ebp - 0x5c], 0xcdeb
mov byte [ebp - 0x5a], al
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x59], 0x22
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edi, ebx
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov eax, ebx
mov byte [ebp + eax - 0x31c], al
inc eax
cmp eax, 0x100
jb 0x421232
mov esi, ebx
mov ebx, dword [0x44d6f8]
push 0x25
mov ecx, 0x402530
pop edx
lea eax, [edx - 0x30]
push 9
pop edx
cmp ax, dx
ja 0x42126b
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x421251
jmp 0x421283
sub ebx, 0x5664a563
mov dword [0x44d6f8], ebx
call dword [sym.imp.USER32.dll_GetMessageTime]
mov ebx, dword [0x44d6f8]
and ebx, 0xeae91b7a
mov dword [ebp - 0x1c], ebx
call fcn.0041ff11
xor edx, edx
mov bl, byte [ebp + esi - 0x31c]
push 0x12
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x38]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x31c]
mov byte [ebp + esi - 0x31c], al
inc esi
mov byte [ebp + edi - 0x31c], bl
mov ebx, dword [ebp - 0x1c]
cmp esi, 0x100
jb 0x421249
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x31c]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x31c]
mov byte [ebp + edi - 0x31c], al
mov byte [ebp + ebx - 0x31c], cl
movzx eax, byte [ebp + edi - 0x31c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x31c]
xor al, byte [ebp + esi - 0x70]
mov byte [ebp + esi - 0x3ac], al
inc esi
cmp esi, 0x18
jb 0x4212dd
mov esi, 0x4024e0
mov dword [ebp - 0x24], 0xd2c376d8
lea edi, [ebp - 0x54]
mov word [ebp - 0x20], 0x7d74
xor ecx, ecx
mov byte [ebp - 0x394], cl
mov eax, ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov edi, ecx
mov byte [ebp + eax - 0x1f4], al
inc eax
cmp eax, 0x100
jb 0x421353
mov ebx, dword [ebp - 0x1c]
mov esi, ecx
mov dl, byte [ebp + esi - 0x1f4]
mov eax, esi
and eax, 0xf
movzx ecx, dl
imul ebx, ebx, 0x2018c552
movzx eax, byte [ebp + eax - 0x54]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1f4]
mov byte [ebp + esi - 0x1f4], al
inc esi
mov byte [ebp + edi - 0x1f4], dl
cmp esi, 0x100
jb 0x421367
xor eax, eax
mov dword [ebp - 0x1c], ebx
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
push 6
mov cl, byte [ebp + edi - 0x1f4]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1f4]
mov byte [ebp + edi - 0x1f4], al
mov byte [ebp + ebx - 0x1f4], cl
movzx eax, byte [ebp + edi - 0x1f4]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1f4]
xor al, byte [ebp + esi - 0x24]
mov byte [ebp + esi - 0xbc], al
inc esi
pop eax
cmp esi, eax
jb 0x4213b1
push 7
pop edi
xor eax, eax
mov dword [ebp - 0xc8], 0x5e
push 3
mov byte [ebp - 0xb6], al
mov dword [ebp - 0xc4], 0x42
mov dword [ebp - 0xc0], 0xff58
pop ebx
add edi, dword [ebp + eax*4 - 0xc8]
inc eax
cmp eax, ebx
jl 0x42142f
push 0x25
mov edx, 0x270
mov eax, 0x402530
pop ecx
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0x7c5
ja 0x421461
movzx ecx, word [eax]
test ecx, ecx
jne 0x421448
mov eax, dword [ebp - 0x1c]
jmp 0x421469
mov eax, dword [ebp - 0x1c]
sub eax, 0x40a9476b
and eax, 0xe97f85f8
or eax, 0xa97904e0
mov dword [0x44d6f8], eax
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
xorps xmm1, xmm1
mov dword [ebp - 0x208], ebx
mov dword [ebp - 0x20c], 0x2a
add eax, 0x4869a47e
mov dword [ebp - 0x204], 0x41
mov dword [ebp - 0x200], 0xffffff92
movups xmm0, xmmword [ebp - 0x20c]
mov dword [ebp - 0x21c], 0xc
mov dword [ebp - 0x218], 0x57
psubd xmm1, xmm0
mov dword [ebp - 0x214], 0x3b
movaps xmm0, xmm1
mov dword [ebp - 0x210], 0xffffff62
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [0x44d6f8], eax
movups xmm0, xmm1
mov dword [ebp - 0x84], 0x38
psrldq xmm0, 4
xor eax, eax
paddd xmm1, xmm0
mov dword [ebp - 0x80], 0xffffff95
movups xmm0, xmmword [ebp - 0x21c]
push 0x34
movd ecx, xmm1
xorps xmm1, xmm1
psubd xmm1, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd ebx, xmm1
pop esi
add esi, dword [ebp + eax*4 - 0x84]
inc eax
cmp eax, 2
jl 0x42153e
push dword [ebp - 0x64c]
or edi, 0x1f0000
push ecx
push edi
lea ecx, [ebp - 0xbc]
call fcn.0041e657
mov edx, eax
lea ecx, [ebp - 0x3ac]
call fcn.0041e636
call eax
mov dword [ebp - 4], eax
cmp eax, ebx
je 0x421580
neg esi
cmp eax, esi
jne 0x4215e0
lea eax, [ebp - 0x654]
push eax
push dword [ebp - 0x18]
lea ecx, [ebp - 0xdc]
call fcn.0041e657
mov edx, eax
lea ecx, [ebp - 0x358]
call fcn.0041e636
call eax
cmp eax, dword [ebp - 0x78]
je 0x420f0d
mov ebx, dword [ebp - 0x40]
push dword [ebp - 0x18]
and dword [0x44d6f8], 0x352f77eb
lea ecx, [ebp - 0xe4]
call fcn.0041e657
mov edx, eax
lea ecx, [ebp - 0xa4]
call fcn.0041e636
call eax
neg ebx
mov eax, ebx
pop edi
pop esi
pop ebx
leave
ret
push 9
pop eax
mov byte [ebp - 0x6d], al
xor ecx, ecx
push 6
pop eax
mov byte [ebp - 0x5f], al
mov edi, ecx
mov eax, dword [0x44d6f8]
or eax, 0x205ec2da
mov word [ebp - 0x70], 0xeb63
mov dword [ebp - 0x7c], eax
mov eax, ecx
mov byte [ebp - 0x6e], 0xc2
mov dword [ebp - 0x6c], 0x497126e0
mov dword [ebp - 0x68], 0xea89c121
mov dword [ebp - 0x64], 0x8d9fab0
mov byte [ebp - 0x60], 0xa9
mov dword [ebp - 0x5e], 0x3163b3f5
mov word [ebp - 0x5a], 0x9226
mov dword [ebp - 0x84], 0x7373656d
mov dword [ebp - 0x80], 0x656761
mov byte [ebp + eax - 0x31c], al
inc eax
cmp eax, 0x100
jb 0x421640
mov esi, ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x31c]
push 7
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x84]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x31c]
mov byte [ebp + esi - 0x31c], al
inc esi
mov byte [ebp + edi - 0x31c], bl
cmp esi, 0x100
jb 0x421651
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x31c]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x31c]
mov byte [ebp + edi - 0x31c], al
mov byte [ebp + ebx - 0x31c], cl
movzx eax, byte [ebp + edi - 0x31c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x31c]
xor al, byte [ebp + esi - 0x70]
mov byte [ebp + esi - 0x338], al
inc esi
cmp esi, 0x18
jb 0x421699
mov ebx, dword [ebp - 0x7c]
lea edi, [ebp - 0x88]
mov esi, 0x4024f4
mov dword [ebp - 0x24], 0x6f662fdc
xor ecx, ecx
mov word [ebp - 0x20], 0xdcad
mov byte [ebp - 0x320], cl
add ebx, 0x528c2da3
mov eax, ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov edi, ecx
mov byte [ebp + eax - 0x1f4], al
inc eax
cmp eax, 0x100
jb 0x421719
mov esi, ecx
mov dl, byte [ebp + esi - 0x1f4]
mov eax, esi
push 7
pop ecx
and eax, ecx
or ebx, 0x4d9d5eae
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x88]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1f4]
mov byte [ebp + esi - 0x1f4], al
inc esi
mov byte [ebp + edi - 0x1f4], dl
cmp esi, 0x100
jb 0x42172a
xor edx, edx
mov ecx, edx
mov esi, edx
mov edi, edx
lea eax, [esi + 1]
movzx esi, al
mov al, byte [ebp + esi - 0x1f4]
mov byte [ebp - 5], al
movzx eax, al
mov dword [ebp - 0x10], eax
add eax, ecx
movzx eax, al
mov ecx, edx
mov dword [ebp - 0x7c], eax
inc ecx
cmp ecx, 0x1e85
jl 0x4217d7
mov eax, edx
inc eax
cmp eax, 0xfad
je 0x4217b4
cmp byte [eax + 0x402520], 0
jne 0x4217a1
jmp 0x4217ba
sub ebx, 0x1f1c6e24
add ebx, 0x31a16a82
or ebx, 0x70b19fb
cmp byte [ecx + 0x402500], 0
mov dword [0x44d6f8], ebx
jne 0x421796
jmp 0x4217e3
add ebx, 0x4807a250
mov dword [0x44d6f8], ebx
push 0x45
mov eax, 0x1ea8
mov edx, 0x402500
pop ecx
imul eax, eax, 0x200001
inc edx
add eax, ecx
cmp eax, 0x15
ja 0x421807
movsx ecx, byte [edx]
test ecx, ecx
jne 0x4217f0
jmp 0x421818
sub esp, 0xc
call fcn.00420033
add esp, 0xc
sub ebx, 0x78d49023
lea eax, [ebx - 0x562e93bd]
push ecx
and eax, 0xa70df06e
push ecx
mov dword [0x44d6f8], eax
call fcn.0041ffca
mov eax, dword [0x44d6f8]
add eax, 0x6505a87b
imul eax, eax, 0xb9425740
mov dword [0x44d6f8], eax
call fcn.0041ffca
pop ecx
pop ecx
mov ecx, dword [ebp - 0x7c]
push 6
mov al, byte [ebp + ecx - 0x1f4]
mov byte [ebp + esi - 0x1f4], al
mov al, byte [ebp - 5]
mov byte [ebp + ecx - 0x1f4], al
movzx eax, byte [ebp + esi - 0x1f4]
add eax, dword [ebp - 0x10]
movzx eax, al
mov al, byte [ebp + eax - 0x1f4]
xor al, byte [ebp + edi - 0x24]
mov byte [ebp + edi - 0xd4], al
inc edi
pop eax
cmp edi, eax
jae 0x42189b
mov ebx, dword [0x44d6f8]
xor edx, edx
jmp 0x421776
push dword [ebp - 0x18]
add dword [0x44d6f8], 0x2277ee53
lea ecx, [ebp - 0xd4]
xor eax, eax
mov byte [ebp - 0xce], al
call fcn.0041e657
mov edx, eax
lea ecx, [ebp - 0x338]
call fcn.0041e636
call eax
mov eax, dword [ebp - 4]
jmp 0x4215db