Function at 0x4b9c10
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x160
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x14], 0x578bd0
mov eax, dword [ebp + 8]
lea edi, [ebp - 0x18]
lea ebx, [ebp - 0xc8]
mov dword [ebp - 0x40], ecx
mov esi, dword fs:[0]
mov dword [ebp - 0x18], esi
mov dword fs:[0], edi
mov dword [ebp - 0xc8], 0x3a
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], 1
mov dword [ebp - 0xb0], 0x3a
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xa8], eax
mov eax, 0x4000000
mov word [ebp - 0xa4], 1
movd xmm0, eax
call 0x4b9cae
pop eax
mov dword [ebp - 0xdc], eax
lea eax, [ecx + 0x20]
movdqu xmmword [ebp - 0x16c], xmm0
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x10], 0xffffffff
nop word cs:[eax + eax]
nop dword [eax + eax]
mov ecx, ebx
call fcn.004b9170
test eax, eax
je 0x4bb551
lea ecx, [ebp - 0x130]
mov dword [ebp - 0x130], 0x3d
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0x128], edx
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x120], edx
mov dword [ebp - 0x11c], 1
mov dword [ebp - 0x118], 0x3d
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x110], edx
mov word [ebp - 0x10c], 1
call fcn.004b9170
test eax, eax
je 0x4b9d00
mov esi, eax
movzx eax, byte [0x5fd2ec]
mov edi, edx
xor ecx, ecx
mov edx, 0x20
call fcn.0056a9f0
test eax, eax
je 0x4bb57f
mov dword [eax], esi
mov dword [eax + 4], edi
mov dword [ebp - 0x3c], 1
mov dword [ebp - 0x88], 4
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x24], eax
movsd xmm2, qword [ebp - 0x118]
movsd xmm1, qword [ebp - 0x120]
movq xmm0, qword [ebp - 0x110]
movsd qword [ebp - 0x144], xmm2
movsd qword [ebp - 0x14c], xmm1
movq xmm2, qword [ebp - 0x130]
movq xmm1, qword [ebp - 0x128]
movq qword [ebp - 0x13c], xmm0
movq qword [ebp - 0x154], xmm1
movq qword [ebp - 0x15c], xmm2
jmp 0x4b9e1c
mov edx, dword [ebp - 0x24]
mov ebx, ecx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x88], ebx
mov dword [edx + eax*8], esi
mov dword [edx + eax*8 + 4], edi
inc eax
mov dword [ebp - 0x3c], eax
lea ecx, [ebp - 0x15c]
mov dword [ebp - 0x10], 0
call fcn.004b9170
mov esi, eax
test eax, eax
je 0x4b9f10
mov ecx, dword [ebp - 0x88]
mov edi, edx
cmp dword [ebp - 0x3c], ecx
jne 0x4b9e00
mov ebx, ecx
inc ebx
je 0x4bb569
lea eax, [ecx + ecx]
cmp eax, ebx
cmova ebx, eax
mov eax, 4
cmp ebx, 5
cmovb ebx, eax
xor edx, edx
cmp ebx, 0x10000000
setb al
test ecx, ecx
je 0x4b9e99
lea ecx, [ecx*8]
mov dword [ebp - 0x34], 4
mov dword [ebp - 0x24], ecx
mov ecx, eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x108], eax
mov eax, ecx
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x100], ecx
jmp 0x4b9ea0
mov dword [ebp - 0x34], 0
mov dl, al
mov eax, dword [ebp - 0x34]
lea ecx, [ebx*8]
shl edx, 2
mov dword [ebp - 0x24], ecx
lea ecx, [ebp - 0x9c]
mov dword [ebp - 0x104], eax
lea eax, [ebp - 0x108]
push eax
push dword [ebp - 0x24]
call fcn.004188e0
add esp, 8
cmp dword [ebp - 0x9c], 0
mov edx, dword [ebp - 0x98]
je 0x4b9ef9
cmp edx, 0x80000001
jne 0x4bb565
mov ebx, dword [ebp - 0x88]
mov edx, dword [ebp - 0x60]
jmp 0x4b9e05
mov dword [ebp - 0x60], edx
jmp 0x4b9e05
cmp dword [ebp - 0x3c], 2
jb 0x4bb480
mov ecx, dword [ebp - 0x60]
lea ebx, [ebp - 0xc8]
test ecx, ecx
je 0x4bb486
mov eax, dword [ecx + 0xc]
mov bl, 2
test eax, eax
je 0x4ba830
mov ecx, dword [ecx + 8]
cmp eax, 2
je 0x4b9f4f
cmp eax, 1
jne 0x4b9f5e
cmp byte [ecx], 0x30
jne 0x4b9f5e
jmp 0x4ba830
movzx edx, word [ecx]
cmp edx, 0x3030
je 0x4ba830
mov dword [ebp - 0x108], 0x3b
mov dword [ebp - 0x104], ecx
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xf4], 1
mov dword [ebp - 0xf0], 0x3b
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xe8], eax
lea ecx, [ebp - 0x108]
lea eax, [ebp - 0x51]
mov word [ebp - 0xe4], 1
mov byte [ebp - 0x51], 0
mov dword [ebp - 0x10], 1
mov dword [ebp - 0xe0], eax
call fcn.004b9170
mov esi, eax
test eax, eax
je 0x4ba000
test edx, edx
je 0x4ba82e
movzx eax, byte [esi]
cmp eax, 0x2d
je 0x4ba5eb
cmp eax, 0x2b
jne 0x4ba5f4
dec edx
je 0x4ba82e
inc esi
jmp 0x4ba5f4
cmp byte [ebp - 0x51], 0
jne 0x4ba82e
mov dword [ebp - 0x34], 1
mov dword [ebp - 0x3c], 0
xor ecx, ecx
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov al, 0x12
mov dword [ebp - 0x4c], ecx
mov bl, 0x12
xor edx, edx
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x24], eax
mov al, 0x12
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x58], 0
jmp 0x4ba090
mov ch, byte [ebp - 0x2c]
mov cl, byte [ebp - 0x28]
mov byte [ebp - 0x1f], al
mov eax, dword [ebp - 0x24]
mov byte [ebp - 0x1d], bh
mov byte [ebp - 0x1e], al
mov esi, dword [ebp - 0x3c]
mov eax, edx
mov edi, esi
sub esi, 1
mov dword [ebp - 0x3c], esi
jb 0x4ba5c3
mov esi, dword [ebp - 0x4c]
lea edx, [eax + 1]
cmp edx, esi
mov edx, esi
mov esi, 0
cmovb edx, esi
mov esi, dword [ebp - 0x34]
neg edx
lea edx, [eax + edx + 1]
movzx eax, byte [esi + eax]
cmp eax, 0x6b
ja 0x4ba0a2
mov eax, dword [eax*4 + 0x4bb6e8]
add eax, dword [ebp - 0xdc]
jmp eax
cmp dword [ebp - 0x4c], 0
mov byte [ebp - 0x35], cl
mov byte [ebp - 0x36], ch
mov byte [ebp - 0x2d], bl
je 0x4ba5e3
push dword [ebp - 0x34]
push 0
push dword [0x5fd290]
call dword [sym.imp.kernel32.dll_HeapFree]
mov ebx, dword [ebp - 0x58]
jmp 0x4ba830
cmp edx, 1
je 0x4ba82e
cmp edx, 3
jae 0x4ba7ce
xor eax, eax
nop
movzx ebx, byte [esi]
add ebx, 0xffffffd0
cmp ebx, 9
ja 0x4ba82e
movzx eax, al
inc esi
add eax, eax
lea eax, [eax + eax*4]
add bl, al
dec edx
mov eax, ebx
jne 0x4ba600
movzx eax, byte [0x5fd2ec]
xor ecx, ecx
mov edx, 8
call fcn.0056a9f0
test eax, eax
je 0x4bb5d3
mov byte [eax], bl
mov dword [ebp - 0x9c], 8
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x94], 1
mov dword [ebp - 0x10], 2
mov dword [ebp - 0x3c], 1
movsd xmm2, qword [ebp - 0xf0]
movsd xmm1, qword [ebp - 0xf8]
mov eax, dword [ebp - 0xe0]
movq xmm0, qword [ebp - 0xe8]
movsd qword [ebp - 0x144], xmm2
movsd qword [ebp - 0x14c], xmm1
movq xmm2, qword [ebp - 0x108]
movq xmm1, qword [ebp - 0x100]
mov dword [ebp - 0x134], eax
movq qword [ebp - 0x13c], xmm0
movq qword [ebp - 0x154], xmm1
movq qword [ebp - 0x15c], xmm2
mov eax, dword [ebp - 0x134]
lea ecx, [ebp - 0x15c]
mov dword [ebp - 0x24], eax
call fcn.004b9170
mov esi, eax
test eax, eax
je 0x4ba800
test edx, edx
je 0x4ba7fa
movzx eax, byte [esi]
cmp eax, 0x2d
je 0x4ba700
cmp eax, 0x2b
jne 0x4ba709
dec edx
je 0x4ba7fa
inc esi
jmp 0x4ba709
cmp edx, 1
je 0x4ba7fa
xor eax, eax
cmp edx, 3
jae 0x4ba740
movzx ebx, byte [esi]
add ebx, 0xffffffd0
cmp ebx, 9
ja 0x4ba7fa
movzx eax, al
inc esi
add eax, eax
lea eax, [eax + eax*4]
add bl, al
dec edx
mov eax, ebx
jne 0x4ba710
jmp 0x4ba76f
test edx, edx
je 0x4ba76d
movzx ebx, byte [esi]
mov ah, 0xa
mul ah
seto cl
add ebx, 0xffffffd0
cmp ebx, 9
ja 0x4ba7fa
test cl, cl
jne 0x4ba7fa
inc esi
dec edx
add al, bl
jae 0x4ba740
jmp 0x4ba7fa
mov ebx, eax
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x34]
cmp edx, dword [ebp - 0x9c]
jne 0x4ba79e
lea ecx, [ebp - 0x9c]
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x10], 2
call fcn.00418a00
mov eax, dword [ebp - 0x98]
mov edx, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x24]
mov byte [eax + edx], bl
inc edx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x10], 2
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x94], edx
mov eax, dword [ebp - 0x134]
lea ecx, [ebp - 0x15c]
mov dword [ebp - 0x24], eax
call fcn.004b9170
jmp 0x4ba6d7
xor ebx, ebx
test edx, edx
je 0x4ba61f
movzx ecx, byte [esi]
mov eax, ebx
mov ah, 0xa
mul ah
seto ah
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x4ba82e
test ah, ah
jne 0x4ba82e
mov ebx, eax
inc esi
dec edx
add bl, cl
jae 0x4ba7d0
jmp 0x4ba82e
mov eax, dword [ebp - 0x24]
mov byte [eax], 1
mov eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x9c]
cmp byte [ebp - 0x51], 0
mov dword [ebp - 0x34], eax
je 0x4bab60
test ecx, ecx
je 0x4ba82e
push dword [ebp - 0x34]
push 0
push dword [0x5fd290]
call dword [sym.imp.kernel32.dll_HeapFree]
mov bl, 2
mov eax, dword [ebp - 0x60]
mov edi, dword [eax + 4]
test edi, edi
je 0x4bb480
mov esi, dword [eax]
cmp byte [esi], 0x2a
jne 0x4ba9dd
mov eax, ebx
mov ebx, edi
dec ebx
mov dword [ebp - 0x58], eax
sete cl
mov dword [ebp - 0x34], ebx
mov byte [ebp - 0x28], cl
je 0x4bab44
js 0x4bb5c5
movzx eax, byte [0x5fd2ec]
xor ecx, ecx
mov edx, ebx
call fcn.0056a9f0
test eax, eax
je 0x4bb5b0
inc esi
push ebx
push esi
push eax
mov dword [ebp - 0x24], eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movzx eax, byte [0x5fd2ec]
xor ecx, ecx
mov edx, ebx
call fcn.0056a9f0
test eax, eax
je 0x4bb58e
mov esi, eax
mov dword [ebp - 0x3c], esi
push ebx
push dword [ebp - 0x24]
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [ebp - 0x3c]
movdqa xmm5, xmmword [0x589420]
movdqa xmm6, xmmword [0x589430]
movdqa xmm7, xmmword [0x589440]
cmp edi, 9
jb 0x4bab85
xor eax, eax
cmp edi, 0x21
mov edi, dword [ebp - 0x3c]
jb 0x4ba98e
movdqa xmm5, xmmword [0x589320]
movdqa xmm6, xmmword [0x589400]
movdqa xmm7, xmmword [0x589410]
mov eax, ebx
xor ecx, ecx
and eax, 0xffffffe0
nop dword [eax + eax]
movdqu xmm1, xmmword [edi + ecx]
movdqu xmm0, xmmword [edi + ecx + 0x10]
movdqa xmm2, xmm1
movdqa xmm3, xmm0
paddb xmm2, xmm5
paddb xmm3, xmm5
movdqa xmm4, xmm2
pminub xmm4, xmm6
pcmpeqb xmm4, xmm2
movdqa xmm2, xmm3
pminub xmm2, xmm6
pand xmm4, xmm7
pcmpeqb xmm2, xmm3
por xmm4, xmm1
pand xmm2, xmm7
movdqu xmmword [edi + ecx], xmm4
por xmm2, xmm0
movdqu xmmword [edi + ecx + 0x10], xmm2
add ecx, 0x20
cmp eax, ecx
jne 0x4ba910
cmp ebx, eax
je 0x4babad
test bl, 0x18
je 0x4bab81
movdqa xmm5, xmmword [0x589420]
movdqa xmm6, xmmword [0x589430]
movdqa xmm7, xmmword [0x589440]
mov edx, ebx
and edx, 0xfffffff8
lea ecx, [esi + edx]
nop word cs:[eax + eax]
movq xmm0, qword [edi + eax]
movdqa xmm1, xmm0
paddb xmm1, xmm5
movdqa xmm2, xmm1
pmaxub xmm2, xmm6
pcmpeqb xmm2, xmm1
pandn xmm2, xmm7
por xmm2, xmm0
movq qword [edi + eax], xmm2
add eax, 8
cmp edx, eax
jne 0x4ba9a0
mov ebx, dword [ebp - 0x34]
cmp ebx, edx
jne 0x4bab85
jmp 0x4babaa
cmp edi, 2
jne 0x4bb480
movzx eax, word [esi]
cmp eax, 0x6f6e
je 0x4bab52
movzx eax, word [esi]
cmp eax, 0x6966
je 0x4bab59
movzx eax, word [esi]
cmp eax, 0x6964
je 0x4bab73
movzx eax, word [esi]
cmp eax, 0x6e6c
je 0x4bab7a
movzx eax, word [esi]
cmp eax, 0x6970
je 0x4bac93
movzx eax, word [esi]
cmp eax, 0x6f73
je 0x4bac97
movzx eax, word [esi]
cmp eax, 0x6f64
je 0x4bac9b
movzx eax, word [esi]
cmp eax, 0x6462
je 0x4bac9f
movzx eax, word [esi]
cmp eax, 0x6463
je 0x4baca3
movzx eax, word [esi]
cmp eax, 0x726f
je 0x4baca7
movzx eax, word [esi]
cmp eax, 0x7573
je 0x4bacab
movzx eax, word [esi]
cmp eax, 0x6773
je 0x4bacaf
movzx eax, word [esi]
cmp eax, 0x7473
je 0x4bacb3
movzx eax, word [esi]
cmp eax, 0x776f
je 0x4bacb7
movzx eax, word [esi]
cmp eax, 0x7774
je 0x4bacbb
movzx eax, word [esi]
cmp eax, 0x7865
je 0x4bacbf
movzx eax, word [esi]
cmp eax, 0x696d
je 0x4bacc3
movzx eax, word [esi]
cmp eax, 0x6163
je 0x4bacc7
movzx eax, word [esi]
cmp eax, 0x686d
je 0x4baccb
movzx eax, word [esi]
cmp eax, 0x636c
je 0x4baccf
movzx eax, word [esi]
cmp eax, 0x6372
je 0x4bacd3
movzx eax, word [esi]
cmp eax, 0x6365
je 0x4bacd7
movzx eax, word [esi]
cmp eax, 0x7372
je 0x4bacdb
movzx eax, word [esi]
rol ax, 8
movzx eax, ax
cmp eax, 0x636c
jne 0x4bb480
mov cl, 0x17
jmp 0x4bacdd
mov edi, 1
mov dword [ebp - 0x24], 1
jmp 0x4babad
xor ecx, ecx
jmp 0x4bacdd
mov cl, 1
jmp 0x4bacdd
cmp ecx, 0x80000000
mov bl, 2
jne 0x4ba01a
jmp 0x4ba830
mov cl, 2
jmp 0x4bacdd
mov cl, 3
jmp 0x4bacdd
add eax, esi
mov ecx, eax
add esi, ebx
nop word [eax + eax]
movzx eax, byte [ecx]
mov edx, eax
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, al
mov byte [ecx], dl
inc ecx
cmp ecx, esi
jne 0x4bab90
mov edi, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0x3c], edi
mov edx, dword [esi + 0x28]
cmp edx, dword [esi + 0x20]
jne 0x4babd3
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0x10], 4
call fcn.004bb940
mov esi, dword [ebp - 0x40]
mov edx, dword [esi + 0x28]
mov edi, dword [ebp - 0x34]
mov eax, dword [esi + 0x24]
mov ebx, dword [ebp - 0x3c]
lea ecx, [edx + edx*8]
mov dword [eax + ecx*4], edi
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [ebp - 0x58]
mov dword [eax + ecx*4 + 8], edi
test edi, edi
mov edi, dword [ebp - 0x48]
mov byte [eax + ecx*4 + 0xc], bl
mov ebx, dword [ebp - 0x68]
mov byte [eax + ecx*4 + 0xd], bl
mov ebx, dword [ebp - 0x6c]
mov byte [eax + ecx*4 + 0xe], bl
mov ebx, dword [ebp - 0x70]
mov byte [eax + ecx*4 + 0xf], bl
mov ebx, dword [ebp - 0x64]
mov byte [eax + ecx*4 + 0x10], bl
mov ebx, dword [ebp - 0x74]
mov byte [eax + ecx*4 + 0x11], bl
mov ebx, dword [ebp - 0x78]
mov byte [eax + ecx*4 + 0x12], bl
mov ebx, dword [ebp - 0x7c]
mov byte [eax + ecx*4 + 0x13], bl
mov ebx, dword [ebp - 0x80]
mov byte [eax + ecx*4 + 0x14], bl
movzx ebx, byte [ebp - 0x1f]
mov bh, byte [ebp - 0x1d]
mov byte [eax + ecx*4 + 0x15], bl
mov bl, byte [ebp - 0x35]
mov byte [eax + ecx*4 + 0x16], bl
mov bl, byte [ebp - 0x1e]
mov word [eax + ecx*4 + 0x17], di
mov edi, dword [ebp - 0x44]
mov byte [eax + ecx*4 + 0x19], bl
mov bl, byte [ebp - 0x36]
mov byte [eax + ecx*4 + 0x1a], bl
mov word [eax + ecx*4 + 0x1b], di
mov bl, byte [ebp - 0x2d]
mov edi, dword [ebp - 0x84]
mov byte [eax + ecx*4 + 0x1d], bl
mov byte [eax + ecx*4 + 0x1e], bh
mov word [eax + ecx*4 + 0x1f], di
lea ecx, [edx + 1]
mov dword [esi + 0x28], ecx
je 0x4bb480
push dword [ebp - 0x24]
push 0
push dword [0x5fd290]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x4bb480
mov cl, 4
jmp 0x4bacdd
mov cl, 5
jmp 0x4bacdd
mov cl, 6
jmp 0x4bacdd
mov cl, 7
jmp 0x4bacdd
mov cl, 8
jmp 0x4bacdd
mov cl, 9
jmp 0x4bacdd
mov cl, 0xa
jmp 0x4bacdd
mov cl, 0xb
jmp 0x4bacdd
mov cl, 0xc
jmp 0x4bacdd
mov cl, 0xd
jmp 0x4bacdd
mov cl, 0xe
jmp 0x4bacdd
mov cl, 0xf
jmp 0x4bacdd
mov cl, 0x10
jmp 0x4bacdd
mov cl, 0x11
jmp 0x4bacdd
mov cl, 0x12
jmp 0x4bacdd
mov cl, 0x13
jmp 0x4bacdd
mov cl, 0x14
jmp 0x4bacdd
mov cl, 0x15
jmp 0x4bacdd
mov cl, 0x16
mov edx, dword [ebp - 0x40]
movzx edi, cl
cmp bl, 2
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x4c], edi
jne 0x4bb03c
mov ebx, dword [edx + 0x14]
mov ecx, dword [edx + 0x10]
mov esi, dword [edx + 0x18]
movdqu xmm5, xmmword [ebp - 0x16c]
mov eax, ebx
mov dword [ebp - 0x2c], ecx
xor ebx, 0x6c796765
xor dword [ebp - 0x2c], 0x6e657261
xor eax, 0x736f6d65
mov dword [ebp - 0x34], eax
mov eax, ecx
xor eax, 0x70736575
mov dword [ebp - 0x24], eax
mov eax, dword [edx + 0x1c]
mov edx, esi
xor esi, edi
xor edx, 0x6e646f6d
xor esi, 0x79746573
mov edi, edx
mov ecx, eax
xor eax, 0x70656462
xor ecx, 0x646f7261
add dword [ebp - 0x24], edx
adc dword [ebp - 0x34], ecx
shld edi, ecx, 0xd
shrd edx, ecx, 0x13
add dword [ebp - 0x2c], esi
mov ecx, esi
adc ebx, eax
shld ecx, eax, 0x10
shld eax, esi, 0x10
mov esi, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x50], ebx
xor eax, ebx
xor ecx, esi
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x58], ecx
mov ebx, dword [ebp - 0x28]
add ebx, dword [ebp - 0x34]
mov dword [ebp - 0x28], ebx
mov ebx, eax
adc ebx, dword [ebp - 0x24]
xor edi, dword [ebp - 0x24]
xor edx, dword [ebp - 0x34]
shld dword [ebp - 0x58], eax, 0x15
shrd ecx, eax, 0xb
mov eax, dword [ebp - 0x50]
add esi, edi
movd xmm2, edi
movd xmm0, edx
adc eax, edx
punpckldq xmm2, xmm0
movd xmm1, esi
movd xmm3, eax
movdqa xmm0, xmm2
movdqa xmm4, xmm2
psllq xmm2, 0x11
punpckldq xmm1, xmm3
psrlq xmm4, 0x2f
punpcklqdq xmm0, xmm1
punpcklqdq xmm1, xmmword [0x5898c0]
movdqa xmm3, xmm0
psllq xmm0, 0x20
psrlq xmm3, 0x20
shufps xmm2, xmm0, 0xe4
movd xmm0, ebx
shufps xmm4, xmm3, 0xe4
movd xmm3, dword [ebp - 0x28]
orps xmm2, xmm4
movd xmm4, dword [ebp - 0x58]
pxor xmm1, xmm2
movdqa xmm2, xmm1
punpckldq xmm3, xmm0
movd xmm0, ecx
punpckldq xmm4, xmm0
movd xmm0, dword [ebp - 0x4c]
pshufd xmm3, xmm3, 0x44
punpckldq xmm0, xmm5
punpcklqdq xmm0, xmm4
pxor xmm0, xmm3
movdqa xmm3, xmm1
psllq xmm1, 0xd
movdqa xmm4, xmm0
paddq xmm2, xmm0
psllq xmm0, 0x10
psrlq xmm3, 0x33
psrlq xmm4, 0x30
movsd xmm0, xmm1
pshufd xmm1, xmm2, 0x1e
movsd xmm4, xmm3
orpd xmm0, xmm4
xorpd xmm0, xmm2
movapd xmm2, xmm0
movapd xmm3, xmm0
paddq xmm1, xmm0
psrlq xmm2, 0x2f
psrlq xmm3, 0x2b
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0x15
psllq xmm2, 0x11
movsd xmm0, xmm2
orpd xmm0, xmm3
xorpd xmm0, xmm1
pshufd xmm1, xmm1, 0x1e
movapd xmm2, xmm0
movapd xmm3, xmm0
paddq xmm1, xmm0
psrlq xmm2, 0x33
psrlq xmm3, 0x30
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0x10
psllq xmm2, 0xd
movsd xmm0, xmm2
orpd xmm0, xmm3
xorpd xmm0, xmm1
pshufd xmm1, xmm1, 0x1e
movapd xmm2, xmm0
movapd xmm3, xmm0
paddq xmm1, xmm0
psrlq xmm2, 0x2f
psrlq xmm3, 0x2b
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0x15
psllq xmm2, 0x11
movsd xmm0, xmm2
orpd xmm0, xmm3
xorpd xmm0, xmm1
pshufd xmm1, xmm1, 0x1e
movapd xmm2, xmm0
movapd xmm3, xmm0
paddq xmm1, xmm0
psrlq xmm2, 0x33
psrlq xmm3, 0x30
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0x10
psllq xmm2, 0xd
movsd xmm0, xmm2
orpd xmm0, xmm3
xorpd xmm0, xmm1
movapd xmm2, xmm0
movapd xmm3, xmm0
pshufd xmm4, xmm0, 0x44
psrlq xmm2, 0x2f
psrlq xmm3, 0x2b
paddq xmm4, xmm1
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0x15
psllq xmm2, 0x11
movsd xmm0, xmm2
orpd xmm0, xmm3
pshufd xmm2, xmm0, 0xee
pxor xmm2, xmm0
pshufd xmm0, xmm4, 0xee
movd eax, xmm0
pshufd xmm0, xmm4, 0xff
movd edx, xmm2
movd ecx, xmm0
xor ecx, eax
mov eax, dword [ebp - 0x40]
xor edx, ecx
mov ecx, dword [eax]
mov edi, dword [eax + 4]
mov eax, edx
shr eax, 0x19
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
lea eax, [ecx - 0x16]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], edi
pshufd xmm0, xmm0, 0
mov dword [ebp - 0x34], eax
and edx, edi
movdqu xmm1, xmmword [ecx + edx]
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm0
pmovmskb edi, xmm2
nop word cs:[eax + eax]
nop dword [eax]
test di, di
je 0x4bb013
tzcnt ebx, edi
lea eax, [edi - 1]
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x34]
add ebx, edx
and eax, edi
and ebx, dword [ebp - 0x24]
mov edi, ebx
neg edi
lea edi, [edi + edi*4]
shl edi, 2
sub edi, ebx
sub edi, ebx
cmp byte [esi + edi], cl
mov edi, eax
jne 0x4bafe0
jmp 0x4bb39e
pcmpeqd xmm2, xmm2
pcmpeqb xmm1, xmm2
pmovmskb eax, xmm1
test eax, eax
jne 0x4bb480
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x24]
lea edx, [edx + eax + 0x10]
add eax, 0x10
mov dword [ebp - 0x2c], eax
jmp 0x4bafbf
mov ecx, dword [edx + 0x14]
mov esi, dword [edx + 0x10]
mov dword [ebp - 0x58], ebx
mov ebx, edi
mov eax, ecx
mov dword [ebp - 0xd4], ecx
xor ecx, 0x6c796765
mov dword [ebp - 0xd0], esi
xor eax, 0x736f6d65
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x2c], eax
mov eax, esi
xor esi, 0x6e657261
xor eax, 0x70736575
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], eax
mov eax, dword [edx + 0x1c]
mov edi, eax
mov dword [ebp - 0x50], eax
mov eax, dword [edx + 0x18]
mov ecx, dword [ebp - 0x50]
xor edi, 0x646f7261
mov edx, eax
mov dword [ebp - 0xcc], eax
xor eax, ebx
mov ebx, dword [ebp - 0x2c]
xor edx, 0x6e646f6d
xor eax, 0x79746573
xor ecx, 0x70656462
add dword [ebp - 0x24], edx
mov esi, edx
adc ebx, edi
shld esi, edi, 0xd
shrd edx, edi, 0x13
mov edi, eax
mov dword [ebp - 0x2c], ebx
xor edx, ebx
xor esi, dword [ebp - 0x24]
add dword [ebp - 0x28], eax
mov ebx, dword [ebp - 0x34]
adc ebx, ecx
shld edi, ecx, 0x10
shld ecx, eax, 0x10
mov eax, dword [ebp - 0x2c]
xor edi, dword [ebp - 0x28]
xor ecx, ebx
mov dword [ebp - 0x34], ebx
add eax, edi
mov ebx, edi
adc dword [ebp - 0x24], ecx
shld ebx, ecx, 0x15
shrd edi, ecx, 0xb
mov dword [ebp - 0x2c], eax
mov ecx, esi
xor ebx, eax
xor edi, dword [ebp - 0x24]
add dword [ebp - 0x28], esi
mov eax, dword [ebp - 0x34]
adc eax, edx
shld ecx, edx, 0x11
shrd esi, edx, 0xf
mov edx, dword [ebp - 0x2c]
xor esi, eax
xor eax, 0xff
xor ecx, dword [ebp - 0x28]
mov dword [ebp - 0x34], eax
xor edx, dword [ebp - 0x4c]
mov dword [ebp - 0x2c], edx
mov edx, 0x4000000
mov eax, dword [ebp - 0x2c]
xor dword [ebp - 0x24], edx
mov edx, ecx
add eax, ecx
adc dword [ebp - 0x24], esi
shld edx, esi, 0xd
mov dword [ebp - 0x2c], eax
shrd ecx, esi, 0x13
mov esi, ebx
xor edx, eax
mov eax, dword [ebp - 0x34]
xor ecx, dword [ebp - 0x24]
add eax, ebx
adc dword [ebp - 0x28], edi
shld esi, edi, 0x10
shrd ebx, edi, 0x10
mov dword [ebp - 0x34], eax
xor esi, eax
xor ebx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
add dword [ebp - 0x24], esi
mov edi, esi
adc eax, ebx
shld edi, ebx, 0x15
shrd esi, ebx, 0xb
mov ebx, edx
xor esi, eax
xor edi, dword [ebp - 0x24]
add dword [ebp - 0x34], edx
adc dword [ebp - 0x28], ecx
shld ebx, ecx, 0x11
shrd edx, ecx, 0xf
xor ebx, dword [ebp - 0x34]
xor edx, dword [ebp - 0x28]
add dword [ebp - 0x24], ebx
mov ecx, ebx
adc eax, edx
shld ecx, edx, 0xd
shrd ebx, edx, 0x13
mov edx, dword [ebp - 0x34]
xor ecx, dword [ebp - 0x24]
xor ebx, eax
add dword [ebp - 0x28], edi
adc edx, esi
mov dword [ebp - 0x8c], ecx
mov ecx, edx
mov dword [ebp - 0x34], edx
mov edx, edi
shrd edi, esi, 0x10
shld edx, esi, 0x10
mov esi, dword [ebp - 0x24]
xor edi, ecx
mov ecx, eax
xor edx, dword [ebp - 0x28]
add ecx, edx
mov eax, edx
adc esi, edi
shld eax, edi, 0x15
shrd edx, edi, 0xb
mov edi, dword [ebp - 0x28]
mov dword [ebp - 0x2c], ecx
xor eax, ecx
xor edx, esi
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x4c], edx
mov edx, dword [ebp - 0x34]
add edi, eax
mov ecx, eax
adc edx, ebx
shrd eax, ebx, 0xf
shld ecx, ebx, 0x11
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x34], edx
xor eax, edx
mov edx, dword [ebp - 0x2c]
xor ecx, edi
mov edi, ecx
add edx, ecx
adc esi, eax
shrd ecx, eax, 0x13
shld edi, eax, 0xd
mov eax, dword [ebp - 0x34]
xor ecx, esi
mov esi, dword [ebp - 0x90]
xor edi, edx
mov edx, dword [ebp - 0x28]
mov ebx, edi
mov dword [ebp - 0x2c], ecx
add eax, esi
adc edx, dword [ebp - 0x4c]
add edi, eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x8c], edi
mov edi, ecx
adc edi, edx
cmp dword [eax + 8], 0
jne 0x4bb286
mov dword [ebp - 0x28], edx
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x10], 1
push dword [ebp - 0x50]
push dword [ebp - 0xcc]
push dword [ebp - 0xd4]
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x50], edi
call fcn.005802d0
mov edi, dword [ebp - 0x50]
mov esi, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
add esp, 0xc
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov eax, ecx
shld eax, esi, 0x10
shld esi, ecx, 0x10
mov ecx, dword [ebp - 0x2c]
xor esi, dword [ebp - 0x34]
xor eax, edx
shld ebx, ecx, 0x11
shrd eax, esi, 0xb
xor ebx, edi
xor ebx, eax
mov eax, dword [ebp - 0x40]
xor ebx, dword [ebp - 0x8c]
mov esi, dword [eax]
mov ecx, dword [eax + 4]
mov eax, ebx
shr eax, 0x19
movd xmm0, eax
mov dword [ebp - 0x90], eax
punpcklbw xmm0, xmm0
lea eax, [esi - 0x16]
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x34], ecx
pshuflw xmm0, xmm0, 0
mov dword [ebp - 0x28], eax
pshufd xmm0, xmm0, 0
and ebx, ecx
movdqu xmm1, xmmword [esi + ebx]
mov dword [ebp - 0x24], ebx
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm0
pmovmskb esi, xmm2
nop word cs:[eax + eax]
nop dword [eax]
test si, si
je 0x4bb348
tzcnt eax, esi
lea ecx, [esi - 1]
mov edi, dword [ebp - 0x28]
add eax, dword [ebp - 0x24]
and ecx, esi
and eax, dword [ebp - 0x34]
mov ebx, eax
neg ebx
lea edx, [ebx + ebx*4]
lea esi, [edx*4]
sub esi, eax
sub esi, eax
mov eax, dword [ebp - 0x3c]
cmp byte [edi + esi], al
mov esi, ecx
jne 0x4bb310
jmp 0x4bb3e1
cmp dword [ebp - 0x4c], 1
mov ebx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x34]
mov edx, 1
je 0x4bb372
pmovmskb eax, xmm1
xor edx, edx
test eax, eax
setne dl
tzcnt eax, eax
add eax, ebx
and eax, ecx
mov dword [ebp - 0x8c], eax
pcmpeqd xmm2, xmm2
mov esi, dword [ebp - 0x2c]
pcmpeqb xmm1, xmm2
pmovmskb eax, xmm1
test eax, eax
jne 0x4bb4f6
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x4c], edx
lea ebx, [ebx + eax + 0x10]
add eax, 0x10
mov dword [ebp - 0x50], eax
jmp 0x4bb2ec
lea eax, [ebx + ebx*4]
mov edi, dword [ebp - 0x28]
pcmpeqd xmm1, xmm1
lea eax, [ebx + eax*4]
add eax, ebx
sar eax, 1
imul esi, eax, 0xba2e8ba3
lea edx, [esi - 0x10]
and edx, dword [ebp - 0x24]
movdqu xmm0, xmmword [edi + edx]
pcmpeqb xmm0, xmm1
psllw xmm0, 7
pmovmskb eax, xmm0
test eax, eax
je 0x4bb4a9
bsr cx, ax
xor ecx, 0xf
jmp 0x4bb4ad
mov eax, dword [ebp - 0x58]
mov esi, dword [ebp - 0x2c]
lea ecx, [ebx + edx*4]
add ecx, ebx
mov byte [esi + ecx - 0x15], al
mov eax, dword [ebp - 0x68]
mov byte [esi + ecx - 0x14], al
mov eax, dword [ebp - 0x6c]
mov byte [esi + ecx - 0x13], al
mov eax, dword [ebp - 0x70]
mov byte [esi + ecx - 0x12], al
mov eax, dword [ebp - 0x64]
mov byte [esi + ecx - 0x11], al
mov eax, dword [ebp - 0x74]
mov byte [esi + ecx - 0x10], al
mov eax, dword [ebp - 0x78]
mov byte [esi + ecx - 0xf], al
mov eax, dword [ebp - 0x7c]
mov byte [esi + ecx - 0xe], al
mov eax, dword [ebp - 0x80]
mov byte [esi + ecx - 0xd], al
movzx eax, byte [ebp - 0x1f]
mov byte [esi + ecx - 0xc], al
movzx eax, byte [ebp - 0x35]
mov byte [esi + ecx - 0xb], al
mov eax, dword [ebp - 0x48]
mov word [esi + ecx - 0xa], ax
movzx eax, byte [ebp - 0x1e]
mov byte [esi + ecx - 8], al
movzx eax, byte [ebp - 0x36]
mov byte [esi + ecx - 7], al
mov eax, dword [ebp - 0x44]
mov word [esi + ecx - 6], ax
movzx eax, byte [ebp - 0x2d]
mov byte [esi + ecx - 4], al
movzx eax, byte [ebp - 0x1d]
mov byte [esi + ecx - 3], al
mov eax, dword [ebp - 0x84]
mov word [esi + ecx - 2], ax
nop word cs:[eax + eax]
nop dword [eax]
lea ebx, [ebp - 0xc8]
cmp dword [ebp - 0x88], 0
je 0x4b9cea
push dword [ebp - 0x60]
push 0
push dword [0x5fd290]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x4b9cea
mov cx, 0x10
movdqu xmm0, xmmword [edi + esi]
lea ebx, [ebp - 0xc8]
pcmpeqb xmm0, xmm1
pmovmskb eax, xmm0
or eax, 0x10000
tzcnt eax, eax
add ecx, eax
mov al, 0x80
cmp cx, 0xf
ja 0x4bb4db
mov eax, dword [ebp - 0x40]
inc dword [eax + 8]
mov al, 0xff
mov ecx, dword [ebp - 0x40]
mov byte [edi + esi], al
mov byte [edx + edi + 0x10], al
dec dword [ecx + 0xc]
cmp dword [ebp - 0x88], 0
jne 0x4bb493
jmp 0x4b9cea
mov edi, dword [ebp - 0x8c]
movzx eax, byte [esi + edi]
test al, al
js 0x4bb514
movdqa xmm0, xmmword [esi]
pmovmskb eax, xmm0
tzcnt edi, eax
movzx eax, byte [esi + edi]
mov edx, dword [ebp - 0x40]
and al, 1
movzx eax, al
sub dword [edx + 8], eax
lea eax, [edi - 0x10]
and eax, ecx
mov ecx, dword [ebp - 0x90]
mov byte [esi + edi], cl
mov byte [eax + esi + 0x10], cl
mov eax, edi
inc dword [edx + 0xc]
neg eax
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x3c]
shl ecx, 2
sub ecx, edi
sub ecx, edi
mov byte [esi + ecx - 0x16], al
mov eax, dword [ebp - 0x58]
jmp 0x4bb3ec
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
add esp, 0x160
pop esi
pop edi
pop ebx
pop ebp
ret
test edx, edx
jne 0x4bb570
call fcn.004634e0
jmp 0x4bb5e9
mov ecx, edx
mov edx, dword [ebp - 0x94]
call fcn.0057f230
jmp 0x4bb5e9
mov ecx, 4
mov edx, 0x20
call fcn.0057f230
mov eax, dword [ebp - 0x24]
mov ecx, 1
mov edx, ebx
mov byte [ebp - 0x59], 0
mov dword [ebp - 0x10], 3
mov dword [ebp - 0xa0], eax
call fcn.0057f230
jmp 0x4bb5e9
mov ecx, 1
mov edx, ebx
mov dword [ebp - 0x10], 1
call fcn.0057f230
jmp 0x4bb5e9
mov dword [ebp - 0x10], 1
call fcn.004634e0
jmp 0x4bb5e9
mov ecx, 1
mov edx, 8
mov dword [ebp - 0x10], 1
call fcn.0057f230
ud2