Function at 0x463650
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa0
push ebx
mov ebx, dword [ebp + 0x20]
push esi
mov esi, ecx
push edi
mov edi, dword [ebp + 0x1c]
mov dword [ebp - 0x10], edi
test ebx, ebx
jle 0x463b99
mov eax, 0x10
cmp ebx, eax
cmovg ebx, eax
mov dword [ebp + 0x20], ebx
call dword [sym.imp.GDI32.dll_GdiFlush]
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp + 0xc]
mov edx, dword [esi + 8]
add edx, 0x28
mov dword [ebp - 0x14], edx
lea eax, [eax + ecx*4]
mov dword [ebp - 4], edx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x14]
add eax, ecx
test byte [esi + 0x60], 1
mov dword [ebp - 8], eax
je 0x4639ee
cmp dword [ebp + 0x24], 0
mov dword [ebp - 0x18], 0x100010
mov dword [ebp - 0x14], 0x100010
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x90], 0x20002
mov dword [ebp - 0x8c], 0x200002
mov dword [ebp - 0x88], 0x30003
mov dword [ebp - 0x84], 0x300003
mov dword [ebp - 0x80], 0x40004
mov dword [ebp - 0x7c], 0x400004
mov dword [ebp - 0x78], 0x50005
mov dword [ebp - 0x74], 0x500005
mov dword [ebp - 0x70], 0x60006
mov dword [ebp - 0x6c], 0x600006
mov dword [ebp - 0x68], 0x70007
mov dword [ebp - 0x64], 0x700007
mov dword [ebp - 0x60], 0x80008
mov dword [ebp - 0x5c], 0x800008
mov dword [ebp - 0x58], 0x90009
mov dword [ebp - 0x54], 0x900009
mov dword [ebp - 0x50], 0xa000a
mov dword [ebp - 0x4c], 0xa0000a
mov dword [ebp - 0x48], 0xb000b
mov dword [ebp - 0x44], 0xb0000b
mov dword [ebp - 0x40], 0xc000c
mov dword [ebp - 0x3c], 0xc0000c
mov dword [ebp - 0x38], 0xd000d
mov dword [ebp - 0x34], 0xd0000d
mov dword [ebp - 0x30], 0xe000e
mov dword [ebp - 0x2c], 0xe0000e
mov dword [ebp - 0x28], 0xf000f
mov dword [ebp - 0x24], 0xf0000f
mov dword [ebp - 0x20], 0x100010
mov dword [ebp - 0x1c], 0x1000010
jl 0x4638e3
cmp ebx, 0x10
jne 0x463857
pushfd
cld
pushal
pxor mm5, mm5
movq mm2, qword [ebp - 0x18]
movq mm6, mm2
movq mm7, mm2
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
mov edx, dword [ebp + 0x1c]
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp + 0x18]
xor eax, eax
mov al, byte [esi]
inc esi
cmp eax, dword [ebp + 0x24]
je 0x46383b
movd mm0, dword [ebx + eax*4]
movd mm1, dword [edi]
test eax, 0x80
jne 0x463838
and eax, 0xf
inc eax
movq mm6, qword [ebp + eax*8 - 0xa0]
punpcklbw mm1, mm5
psubw mm7, mm6
punpcklbw mm0, mm5
pmullw mm0, mm6
pmullw mm1, mm7
paddusw mm1, mm0
psrlw mm1, 4
packuswb mm1, mm5
movq mm0, mm1
movq mm6, mm2
movq mm7, mm2
movd dword [edi], mm0
add edi, 4
dec ecx
jne 0x4637f2
sub esi, dword [ebp - 8]
sub edi, dword [ebp - 0xc]
dec edx
jne 0x4637ef
emms
popal
popfd
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
pushfd
cld
pushal
pxor mm5, mm5
movq mm2, qword [ebp - 0x18]
movq mm6, mm2
movq mm7, mm2
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
mov edx, dword [ebp + 0x1c]
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp + 0x18]
xor eax, eax
mov al, byte [esi]
inc esi
cmp eax, dword [ebp + 0x24]
je 0x4638c7
movd mm0, dword [ebx + eax*4]
movd mm1, dword [edi]
test eax, 0x80
jne 0x463897
and eax, 0xf
inc eax
cmp eax, dword [ebp + 0x20]
jbe 0x46389a
mov eax, dword [ebp + 0x20]
movq mm6, qword [ebp + eax*8 - 0xa0]
punpcklbw mm1, mm5
psubw mm7, mm6
punpcklbw mm0, mm5
pmullw mm0, mm6
pmullw mm1, mm7
paddusw mm1, mm0
psrlw mm1, 4
packuswb mm1, mm5
movq mm0, mm1
movq mm6, mm2
movq mm7, mm2
movd dword [edi], mm0
add edi, 4
dec ecx
jne 0x463876
sub esi, dword [ebp - 8]
sub edi, dword [ebp - 0xc]
dec edx
jne 0x463873
emms
popal
popfd
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
cmp ebx, 0x10
jne 0x463967
pushfd
cld
pushal
pxor mm5, mm5
movq mm2, qword [ebp - 0x18]
movq mm6, mm2
movq mm7, mm2
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
mov edx, dword [ebp + 0x1c]
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp + 0x18]
xor eax, eax
mov al, byte [esi]
inc esi
movd mm0, dword [ebx + eax*4]
movd mm1, dword [edi]
test eax, 0x80
jne 0x463948
and eax, 0xf
inc eax
movq mm6, qword [ebp + eax*8 - 0xa0]
punpcklbw mm1, mm5
psubw mm7, mm6
punpcklbw mm0, mm5
pmullw mm0, mm6
pmullw mm1, mm7
paddusw mm1, mm0
psrlw mm1, 4
packuswb mm1, mm5
movq mm0, mm1
movq mm6, mm2
movq mm7, mm2
movd dword [edi], mm0
add edi, 4
dec ecx
jne 0x463907
sub esi, dword [ebp - 8]
sub edi, dword [ebp - 0xc]
dec edx
jne 0x463904
emms
popal
popfd
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
pushfd
cld
pushal
pxor mm5, mm5
movq mm2, qword [ebp - 0x18]
movq mm6, mm2
movq mm7, mm2
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
mov edx, dword [ebp + 0x1c]
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp + 0x18]
xor eax, eax
mov al, byte [esi]
inc esi
movd mm0, dword [ebx + eax*4]
movd mm1, dword [edi]
test eax, 0x80
jne 0x4639a2
and eax, 0xf
inc eax
cmp eax, dword [ebp + 0x20]
jbe 0x4639a5
mov eax, dword [ebp + 0x20]
movq mm6, qword [ebp + eax*8 - 0xa0]
punpcklbw mm1, mm5
psubw mm7, mm6
punpcklbw mm0, mm5
pmullw mm0, mm6
pmullw mm1, mm7
paddusw mm1, mm0
psrlw mm1, 4
packuswb mm1, mm5
movq mm0, mm1
movq mm6, mm2
movq mm7, mm2
movd dword [edi], mm0
add edi, 4
dec ecx
jne 0x463986
sub esi, dword [ebp - 8]
sub edi, dword [ebp - 0xc]
dec edx
jne 0x463983
emms
popal
popfd
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
test edi, edi
jle 0x463b99
cmp dword [ebp + 0x24], 0
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
mov dword [ebp + 0x1c], eax
mov dword [ebp + 8], ecx
jl 0x463ae0
mov esi, dword [ebp + 0x18]
nop
mov edx, ecx
mov ebx, eax
test esi, esi
jle 0x463abf
mov ecx, esi
mov dword [ebp + 0x10], esi
mov al, byte [ebx]
lea ebx, [ebx + 1]
cmp al, byte [ebp + 0x24]
je 0x463aa4
test al, al
jns 0x463a36
mov esi, 0x10
jmp 0x463a3d
movzx esi, al
and esi, 0xf
inc esi
cmp esi, dword [ebp + 0x20]
mov edi, dword [ebp - 0x14]
cmovg esi, dword [ebp + 0x20]
movzx eax, al
lea edi, [edi + eax*4]
cmp esi, 0x10
jne 0x463a58
mov eax, dword [edi]
mov dword [edx], eax
jmp 0x463aa4
movzx eax, byte [edx]
movzx ecx, byte [edi]
sub ecx, eax
shl eax, 4
imul ecx, esi
add ecx, eax
sar ecx, 4
mov byte [edx], cl
movzx ecx, byte [edi + 1]
movzx eax, byte [edx + 1]
sub ecx, eax
shl eax, 4
imul ecx, esi
add ecx, eax
movzx eax, byte [edx + 2]
sar ecx, 4
mov byte [edx + 1], cl
movzx ecx, byte [edi + 2]
sub ecx, eax
mov byte [edx + 3], 0
imul ecx, esi
shl eax, 4
add ecx, eax
sar ecx, 4
mov byte [edx + 2], cl
mov ecx, dword [ebp + 0x10]
add edx, 4
sub ecx, 1
mov dword [ebp + 0x10], ecx
jne 0x463a21
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 8]
mov edi, dword [ebp - 0x10]
mov esi, dword [ebp + 0x18]
sub ecx, dword [ebp + 0xc]
sub eax, dword [ebp + 0x14]
sub edi, 1
mov dword [ebp + 8], ecx
mov dword [ebp + 0x1c], eax
mov dword [ebp - 0x10], edi
jne 0x463a10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
cmp dword [ebp + 0x18], 0
mov esi, ecx
mov edi, eax
jle 0x463b83
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0x10], eax
mov cl, byte [edi]
lea edi, [edi + 1]
test cl, cl
jns 0x463b04
mov eax, 0x10
jmp 0x463b0b
movzx eax, cl
and eax, 0xf
inc eax
cmp eax, ebx
movzx ecx, cl
cmovg eax, ebx
lea ebx, [edx + ecx*4]
cmp eax, 0x10
jne 0x463b21
mov eax, dword [ebx]
mov dword [esi], eax
jmp 0x463b6d
movzx ecx, byte [esi]
movzx edx, byte [ebx]
sub edx, ecx
shl ecx, 4
imul edx, eax
add edx, ecx
sar edx, 4
mov byte [esi], dl
movzx edx, byte [ebx + 1]
movzx ecx, byte [esi + 1]
sub edx, ecx
shl ecx, 4
imul edx, eax
add edx, ecx
movzx ecx, byte [esi + 2]
sar edx, 4
mov byte [esi + 1], dl
movzx edx, byte [ebx + 2]
sub edx, ecx
mov byte [esi + 3], 0
imul edx, eax
shl ecx, 4
add edx, ecx
sar edx, 4
mov byte [esi + 2], dl
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp + 0x20]
add esi, 4
sub dword [ebp + 0x10], 1
jne 0x463af4
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 8]
sub ecx, dword [ebp + 0xc]
sub eax, dword [ebp + 0x14]
sub dword [ebp - 0x10], 1
mov dword [ebp + 8], ecx
mov dword [ebp + 0x1c], eax
jne 0x463ae0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20