Function at 0x40a960
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
mov eax, ecx
xor ecx, ecx
cmp dword [ebp + 0x18], 0x10
push ebx
sete cl
mov dword [ebp - 0x28], eax
mov eax, dword [eax]
inc ecx
push esi
push edi
mov esi, ecx
mov edi, edx
mov edx, dword [ebp + 0xc]
mov eax, dword [eax + 8]
imul esi, edx
mov dword [ebp - 0x1c], eax
mov ebx, esi
mov dword [ebp - 4], esi
imul ebx, dword [ebp + 0x10]
mov dword [ebp - 0x2c], ebx
mov ebx, eax
imul ebx, ecx
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0xc], ebx
cmp edx, eax
je 0x40a9c8
inc eax
cmp edx, eax
je 0x40a9c8
push 0x114d
push str.C:Users_adeptDesktopMAADeditorMAADeditorCode_stb_image.h
push str.out_n__s__img_n__out_n__s__img_n__1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov ecx, dword [ebp + 0x10]
add esp, 0xc
test ecx, ecx
js 0x40aa11
mov eax, dword [ebp + 0x14]
test eax, eax
js 0x40aa11
je 0x40a9e5
mov eax, 0x7fffffff
cdq
idiv dword [ebp + 0x14]
cmp ecx, eax
jg 0x40aa11
mov eax, dword [ebp + 0x14]
imul ecx, eax
test ecx, ecx
js 0x40aa11
test esi, esi
js 0x40aa11
je 0x40a9fe
mov eax, 0x7fffffff
cdq
idiv esi
cmp ecx, eax
jg 0x40aa11
mov eax, dword [ebp - 0x2c]
imul eax, dword [ebp + 0x14]
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
add esp, 4
jmp 0x40aa13
xor eax, eax
mov ecx, dword [ebp - 0x28]
mov dword [ecx + 0xc], eax
test eax, eax
jne 0x40aa2e
pop edi
pop esi
mov dword [0x4983b8], 0x487950
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x1c]
test eax, eax
js 0x40b8c9
mov ecx, dword [ebp + 0x10]
test ecx, ecx
js 0x40b8c9
je 0x40aa5a
mov eax, 0x7fffffff
cdq
idiv ecx
cmp dword [ebp - 0x1c], eax
jg 0x40b8c9
mov eax, dword [ebp - 0x1c]
imul eax, ecx
mov dword [ebp - 0x24], eax
test eax, eax
js 0x40b8c9
mov edx, dword [ebp + 0x18]
test edx, edx
js 0x40b8c9
je 0x40aa8d
mov eax, 0x7fffffff
cdq
idiv dword [ebp + 0x18]
cmp dword [ebp - 0x24], eax
jg 0x40b8c9
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp - 0x24]
imul eax, edx
cmp eax, 0x7ffffff8
jg 0x40b8c9
add eax, 7
shr eax, 3
mov dword [ebp - 0x34], eax
inc eax
imul eax, dword [ebp + 0x14]
cmp dword [ebp + 8], eax
jae 0x40aac1
pop edi
pop esi
mov dword [0x4983b8], 0x487eb0
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp + 0x14], eax
jbe 0x40b4b3
nop
imul eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx + 0xc]
add ecx, eax
mov dword [ebp - 0x60], eax
movzx eax, byte [edi]
inc edi
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x20], eax
cmp eax, 4
ja 0x40b4fc
cmp edx, 8
jge 0x40ab3a
mov ebx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x34]
cmp edx, ebx
jbe 0x40ab1f
push 0x1163
push str.C:Users_adeptDesktopMAADeditorMAADeditorCode_stb_image.h
push str.img_width_bytes___x
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov ecx, dword [ebp - 0x10]
add esp, 0xc
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp + 0xc]
imul eax, ebx
mov ebx, 1
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x48], edx
sub eax, edx
add ecx, eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x10], ecx
mov edx, ecx
sub edx, dword [ebp - 0x2c]
cmp dword [ebp - 0x30], 0
mov dword [ebp - 0x14], edx
jne 0x40ab52
movzx eax, byte [eax + 0x48365c]
mov dword [ebp - 0x20], eax
test ebx, ebx
jle 0x40ac57
mov eax, dword [ebp - 0x14]
mov edx, edi
sub eax, edi
mov esi, ebx
sub ecx, edi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x44], ecx
nop dword [eax + eax]
cmp dword [ebp - 0x20], 6
ja case.default.0x40ab79
mov ebx, dword [ebp - 0x20]
jmp dword [ebx*4 + 0x40b8dc]
mov ebx, dword [ebp - 0xc]
inc edx
sub esi, 1
jne 0x40ab70
jmp 0x40ac4e
mov ebx, dword [ebp - 0xc]
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [ecx + edx - 1], al
sub esi, 1
jne 0x40ab91
jmp 0x40ac4e
mov ebx, dword [ebp - 0xc]
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [ecx + edx - 1], al
sub esi, 1
jne 0x40aba7
jmp 0x40ac4e
mov ebx, dword [ebp - 0xc]
nop dword [eax]
mov al, byte [eax + edx]
lea edx, [edx + 1]
add al, byte [edx - 1]
mov byte [ecx + edx - 1], al
sub esi, 1
je 0x40ac4e
mov eax, dword [ebp - 0x18]
jmp 0x40abc0
mov ebx, dword [ebp - 0xc]
nop word [eax + eax]
mov al, byte [eax + edx]
lea edx, [edx + 1]
shr al, 1
add al, byte [edx - 1]
mov byte [ecx + edx - 1], al
sub esi, 1
je 0x40ac4e
mov eax, dword [ebp - 0x18]
jmp 0x40abe0
mov ebx, dword [ebp - 0xc]
nop dword [eax]
mov cl, byte [eax + edx]
lea edx, [edx + 1]
xor al, al
cmp al, cl
sbb al, al
and al, cl
mov ecx, dword [ebp - 0x44]
add al, byte [edx - 1]
mov byte [ecx + edx - 1], al
sub esi, 1
je 0x40ac4e
mov eax, dword [ebp - 0x18]
jmp 0x40ac00
mov ebx, dword [ebp - 0xc]
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [ecx + edx - 1], al
sub esi, 1
jne 0x40ac25
jmp 0x40ac4e
mov ebx, dword [ebp - 0xc]
nop dword [eax + eax]
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [ecx + edx - 1], al
sub esi, 1
jne 0x40ac40
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
mov esi, dword [ebp - 4]
mov eax, dword [ebp + 0x18]
cmp eax, 8
jne 0x40ac74
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp - 0x1c]
cmp esi, eax
je 0x40ac6d
mov byte [ecx + esi], 0xff
mov esi, eax
mov eax, dword [ebp - 0x1c]
jmp 0x40ac92
cmp eax, 0x10
jne 0x40ac8b
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp + 0xc]
je 0x40ac87
mov word [ecx + ebx], 0xffff
mov eax, ebx
jmp 0x40ac92
mov esi, 1
mov eax, esi
add edi, eax
add edx, esi
add esi, dword [ebp - 0x10]
mov ecx, edi
cmp dword [ebp + 0x18], 8
mov dword [ebp - 8], edi
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], esi
jl 0x40b1bf
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp + 0xc]
je 0x40b1bf
inc eax
cmp eax, dword [ebp + 0xc]
je 0x40ace0
push 0x11a4
push str.C:Users_adeptDesktopMAADeditorMAADeditorCode_stb_image.h
push str.img_n__1__out_n
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov edx, dword [ebp - 0x14]
add esp, 0xc
mov ecx, edi
mov eax, dword [ebp - 0x20]
cmp eax, 6
ja case.default.0x40acee
mov edi, ecx
jmp dword [eax*4 + 0x40b8f8]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x38]
dec ecx
mov dword [ebp - 0x20], ecx
mov edi, eax
cmp ecx, 1
jb case.default.0x40acee
mov eax, dword [ebp - 4]
nop dword [eax]
test ebx, ebx
jle 0x40ad38
mov eax, edi
mov edx, ebx
sub eax, esi
mov ecx, esi
mov dword [ebp - 0x44], eax
mov ebx, eax
mov al, byte [ebx + ecx]
lea ecx, [ecx + 1]
mov byte [ecx - 1], al
sub edx, 1
jne 0x40ad21
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x20]
mov byte [esi + ebx], 0xff
add edi, ebx
add esi, eax
sub ecx, 1
mov dword [ebp - 0x20], ecx
jne 0x40ad10
jmp 0x40b184
mov eax, dword [ebp + 0x10]
mov edi, ecx
dec eax
mov dword [ebp - 0x38], eax
cmp eax, 1
mov eax, dword [ebp - 4]
jb 0x40b184
mov ecx, esi
mov dword [ebp - 8], edi
sub ecx, eax
mov dword [ebp - 0x20], ecx
nop dword [eax]
xor edx, edx
test ebx, ebx
jle 0x40ad9c
sub edi, esi
mov dword [ebp - 0x44], edi
nop dword [eax + eax]
mov eax, dword [ebp - 0x20]
lea ecx, [edx + esi]
mov al, byte [eax + edx]
inc edx
add al, byte [edi + ecx]
mov byte [ecx], al
cmp edx, ebx
jl 0x40ad80
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x20]
mov byte [esi + ebx], 0xff
add edi, ebx
add ecx, eax
mov dword [ebp - 8], edi
add esi, eax
mov dword [ebp - 0x20], ecx
sub dword [ebp - 0x38], 1
jne 0x40ad70
jmp 0x40b184
mov eax, dword [ebp + 0x10]
mov edi, ecx
dec eax
mov dword [ebp - 0x3c], eax
cmp eax, 1
jb case.default.0x40acee
lea eax, [esi + ebx]
mov dword [ebp - 8], edi
mov dword [ebp - 0x10], eax
mov eax, 0x10
sub eax, ebx
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 4]
nop
xor ecx, ecx
mov dword [ebp - 0x20], ecx
test ebx, ebx
jle 0x40aefe
cmp ebx, 0x40
jb 0x40aec7
lea eax, [edi - 1]
mov dword [ebp - 0x20], ecx
add eax, ebx
cmp esi, eax
ja 0x40ae0f
lea eax, [esi - 1]
add eax, ebx
cmp eax, edi
jae 0x40aec7
lea eax, [edx - 1]
add eax, ebx
cmp esi, eax
ja 0x40ae25
lea eax, [esi - 1]
add eax, ebx
cmp eax, edx
jae 0x40aec7
mov eax, ebx
and eax, 0x8000003f
jns 0x40ae33
dec eax
or eax, 0xffffffc0
inc eax
mov dword [ebp - 0x20], ebx
mov ebx, edi
sub dword [ebp - 0x20], eax
sub ebx, esi
mov dword [ebp - 0x38], ebx
lea eax, [edi + 0x30]
mov ebx, edx
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x10]
sub ebx, esi
add eax, dword [ebp - 0x44]
mov esi, dword [ebp - 0x38]
mov dword [ebp - 0x4c], ebx
mov ebx, edx
sub ebx, edi
mov edi, dword [ebp - 0x4c]
mov dword [ebp - 0x50], ebx
mov ebx, dword [ebp - 0x40]
movups xmm0, xmmword [ebx - 0x30]
lea ebx, [ebx + 0x40]
movups xmm1, xmmword [ecx + edx]
lea eax, [eax + 0x40]
paddb xmm1, xmm0
movups xmm0, xmmword [edi + eax - 0x40]
movups xmmword [eax - 0x50], xmm1
movups xmm1, xmmword [esi + eax - 0x40]
mov esi, dword [ebp - 0x50]
paddb xmm1, xmm0
movups xmm0, xmmword [ebx - 0x50]
movups xmmword [eax - 0x40], xmm1
movups xmm1, xmmword [edx + ecx + 0x20]
add ecx, 0x40
paddb xmm1, xmm0
movups xmm0, xmmword [ebx - 0x40]
movups xmmword [eax - 0x30], xmm1
movups xmm1, xmmword [esi + ebx - 0x40]
mov esi, dword [ebp - 0x38]
paddb xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
cmp ecx, dword [ebp - 0x20]
jl 0x40ae63
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x20], ecx
cmp ecx, ebx
jge 0x40aefb
mov dword [ebp - 0x50], edx
sub esi, edi
add ecx, edi
mov dword [ebp - 0x50], ebx
sub edx, edi
mov dword [ebp - 0x4c], esi
sub ebx, dword [ebp - 0x20]
nop dword [eax]
mov al, byte [edx + ecx]
lea ecx, [ecx + 1]
add al, byte [ecx - 1]
mov byte [esi + ecx - 1], al
sub ebx, 1
jne 0x40aee0
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
add edi, ebx
add esi, eax
mov dword [ebp - 8], edi
add edx, eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], edx
mov byte [ecx], 0xff
add ecx, eax
sub dword [ebp - 0x3c], 1
mov dword [ebp - 0x10], ecx
jne 0x40ade0
jmp 0x40b184
mov eax, dword [ebp + 0x10]
mov edi, ecx
dec eax
mov dword [ebp - 0x3c], eax
cmp eax, 1
mov eax, dword [ebp - 4]
jb 0x40b184
mov ecx, esi
mov dword [ebp - 8], edi
sub ecx, eax
mov dword [ebp - 0x20], ecx
nop word [eax + eax]
mov dword [ebp - 0x50], 0
test ebx, ebx
jle 0x40afa1
mov eax, dword [ebp - 0x14]
mov edx, edi
sub eax, edi
sub esi, edi
mov dword [ebp - 0x44], esi
mov edi, eax
mov esi, dword [ebp - 0x50]
mov dword [ebp - 0x4c], eax
nop
mov eax, dword [ebp - 0x20]
lea edx, [edx + 1]
movzx ecx, byte [edi + edx - 1]
movzx eax, byte [eax + esi]
inc esi
add ecx, eax
mov eax, dword [ebp - 0x44]
shr ecx, 1
add cl, byte [edx - 1]
mov byte [eax + edx - 1], cl
cmp esi, ebx
jl 0x40af70
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 8]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x20]
mov byte [esi + ebx], 0xff
add edi, ebx
add esi, eax
mov dword [ebp - 8], edi
add ecx, eax
mov dword [ebp - 0x18], esi
add edx, eax
mov dword [ebp - 0x20], ecx
sub dword [ebp - 0x3c], 1
mov dword [ebp - 0x14], edx
jne 0x40af50
jmp 0x40b184
mov eax, dword [ebp + 0x10]
mov edi, ecx
dec eax
mov dword [ebp - 0x44], eax
cmp eax, 1
mov eax, dword [ebp - 4]
jb 0x40b184
mov ecx, esi
mov dword [ebp - 8], edi
sub ecx, eax
mov dword [ebp - 0x20], ecx
test ebx, ebx
jle 0x40b089
mov eax, edx
mov dword [ebp - 0x40], ebx
mov ebx, dword [ebp - 4]
sub eax, esi
mov esi, dword [ebp - 0x20]
mov ecx, edi
sub edx, edi
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x5c], edx
movzx edi, byte [edx + ecx]
movzx eax, byte [esi + eax]
movzx edx, byte [esi]
mov dword [ebp - 0x3c], eax
mov ecx, edx
sub ecx, eax
mov dword [ebp - 0x54], edi
add edi, ecx
mov dword [ebp - 0x38], edx
mov eax, edi
sub edi, dword [ebp - 0x3c]
sub eax, edx
cdq
xor eax, edx
sub eax, edx
mov dword [ebp - 0x50], eax
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
mov dword [ebp - 0x4c], eax
mov eax, edi
cdq
mov ecx, eax
mov eax, dword [ebp - 0x50]
xor ecx, edx
sub ecx, edx
mov edx, dword [ebp - 0x4c]
cmp eax, edx
jg 0x40b04f
cmp eax, ecx
jle 0x40b05b
mov eax, dword [ebp - 0x3c]
cmp edx, ecx
cmovle eax, dword [ebp - 0x54]
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x5c]
mov al, byte [ecx]
inc ecx
add al, byte [ebp - 0x38]
mov byte [esi + ebx], al
inc esi
sub dword [ebp - 0x40], 1
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x10], ecx
jne 0x40b005
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x20]
mov byte [esi + ebx], 0xff
add edi, ebx
add esi, eax
mov dword [ebp - 8], edi
add ecx, eax
mov dword [ebp - 0x18], esi
add edx, eax
mov dword [ebp - 0x20], ecx
sub dword [ebp - 0x44], 1
mov dword [ebp - 0x14], edx
jne 0x40afe3
jmp 0x40b184
mov eax, dword [ebp + 0x10]
mov edi, ecx
dec eax
mov dword [ebp - 0x44], eax
cmp eax, 1
mov eax, dword [ebp - 4]
jb 0x40b184
mov ecx, esi
mov dword [ebp - 8], edi
sub ecx, eax
mov dword [ebp - 0x20], ecx
nop
xor edx, edx
test ebx, ebx
jle 0x40b0fe
sub edi, esi
mov dword [ebp - 0x5c], edi
nop dword [eax + eax]
mov eax, dword [ebp - 0x20]
lea ecx, [edx + esi]
mov al, byte [eax + edx]
inc edx
shr al, 1
add al, byte [edi + ecx]
mov byte [ecx], al
cmp edx, ebx
jl 0x40b0e0
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x20]
mov byte [esi + ebx], 0xff
add edi, ebx
add ecx, eax
mov dword [ebp - 8], edi
add esi, eax
mov dword [ebp - 0x20], ecx
sub dword [ebp - 0x44], 1
jne 0x40b0d0
jmp 0x40b184
mov edx, dword [ebp + 0x10]
mov edi, ecx
mov eax, dword [ebp - 4]
dec edx
mov dword [ebp - 0x44], edx
cmp edx, 1
jb 0x40b184
mov ecx, esi
mov dword [ebp - 8], edi
sub ecx, eax
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x5c], 0
test ebx, ebx
jle 0x40b167
mov eax, edi
mov edi, dword [ebp - 0x5c]
sub eax, esi
mov dword [ebp - 0x58], eax
mov cl, byte [ecx + edi]
lea edx, [edi + esi]
mov al, byte [eax + edx]
inc edi
add al, cl
mov ecx, dword [ebp - 0x20]
mov byte [edx], al
mov eax, dword [ebp - 0x58]
cmp edi, ebx
jl 0x40b146
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x44]
mov byte [esi + ebx], 0xff
add edi, ebx
add ecx, eax
mov dword [ebp - 8], edi
add esi, eax
mov dword [ebp - 0x20], ecx
sub edx, 1
mov dword [ebp - 0x44], edx
jne 0x40b131
jmp 0x40b184
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 0x18]
cmp edx, 0x10
jne 0x40b49d
mov ecx, dword [ebp - 0x28]
mov esi, dword [ebp + 0x10]
mov ecx, dword [ecx + 0xc]
inc ecx
test esi, esi
je 0x40b49d
add ecx, dword [ebp - 0x60]
mov edx, esi
add ecx, ebx
nop dword [eax]
mov byte [ecx], 0xff
add ecx, eax
sub edx, 1
jne 0x40b1b0
jmp 0x40b49a
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x20]
dec ecx
imul ecx, ebx
mov dword [ebp - 0x10], ecx
cmp eax, 6
ja case.default.0x40b1d5
jmp dword [eax*4 + 0x40b914]
push ecx
push edi
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
jmp 0x40b495
xor edx, edx
test ecx, ecx
jle case.default.0x40b1d5
mov eax, esi
sub eax, ebx
mov dword [ebp - 0x60], eax
mov eax, edi
mov edi, dword [ebp - 0x60]
sub eax, esi
mov dword [ebp - 0x5c], eax
mov ebx, dword [ebp - 0x5c]
lea ecx, [esi + edx]
mov al, byte [edi + edx]
inc edx
add al, byte [ecx + ebx]
mov byte [ecx], al
cmp edx, dword [ebp - 0x10]
jl 0x40b207
jmp 0x40b48f
xor eax, eax
test ecx, ecx
jle case.default.0x40b1d5
cmp ecx, 0x40
jb 0x40b30a
mov dword [ebp - 0x20], eax
lea eax, [edi - 1]
add eax, ecx
cmp esi, eax
ja 0x40b24c
lea eax, [esi - 1]
add eax, ecx
cmp eax, edi
jae 0x40b307
lea eax, [edx - 1]
add eax, ecx
cmp esi, eax
ja 0x40b262
lea eax, [esi - 1]
add eax, ecx
cmp eax, edx
jae 0x40b307
mov eax, ecx
and eax, 0x8000003f
jns 0x40b270
dec eax
or eax, 0xffffffc0
inc eax
mov ebx, ecx
mov ecx, edx
sub ecx, edi
sub ebx, eax
mov dword [ebp - 0x44], ecx
lea eax, [esi + 0x10]
mov ecx, esi
mov dword [ebp - 0x60], eax
sub ecx, edi
mov dword [ebp - 0x54], ebx
mov ebx, dword [ebp - 0x60]
mov eax, edi
mov dword [ebp - 0x5c], ecx
mov ecx, edx
mov edi, dword [ebp - 0x5c]
sub ecx, esi
mov esi, dword [ebp - 0x44]
mov dword [ebp - 0x58], ecx
mov ecx, dword [ebp - 0x20]
movups xmm1, xmmword [esi + eax]
mov esi, dword [ebp - 0x58]
lea eax, [eax + 0x40]
movups xmm0, xmmword [eax - 0x40]
lea ebx, [ebx + 0x40]
paddb xmm1, xmm0
movups xmm0, xmmword [eax - 0x30]
movups xmmword [edi + eax - 0x40], xmm1
movups xmm1, xmmword [esi + ebx - 0x40]
mov esi, dword [ebp - 0x44]
paddb xmm1, xmm0
movups xmm0, xmmword [eax - 0x20]
movups xmmword [ebx - 0x40], xmm1
movups xmm1, xmmword [edx + ecx + 0x20]
paddb xmm1, xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [ebx - 0x30], xmm1
movups xmm1, xmmword [edx + ecx + 0x30]
add ecx, 0x40
paddb xmm1, xmm0
movups xmmword [ebx - 0x20], xmm1
cmp ecx, dword [ebp - 0x54]
jl 0x40b2a0
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x20]
cmp eax, ecx
jge case.default.0x40b1d5
mov ebx, dword [ebp - 0x10]
lea ecx, [edi + eax]
sub edx, edi
sub esi, edi
sub ebx, eax
nop
mov al, byte [ecx + edx]
lea ecx, [ecx + 1]
add al, byte [ecx - 1]
mov byte [ecx + esi - 1], al
sub ebx, 1
jne 0x40b320
jmp 0x40b492
xor eax, eax
mov dword [ebp - 0x44], eax
test ecx, ecx
jle case.default.0x40b1d5
mov ecx, esi
mov dword [ebp - 0x60], edi
sub ecx, ebx
sub edx, edi
mov ebx, dword [ebp - 0x10]
sub esi, edi
mov dword [ebp - 0x5c], ecx
nop word [eax + eax]
movzx ecx, byte [ecx + eax]
lea edi, [edi + 1]
movzx eax, byte [edi + edx - 1]
add ecx, eax
mov eax, dword [ebp - 0x44]
shr ecx, 1
inc eax
add cl, byte [edi - 1]
mov byte [edi + esi - 1], cl
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x44], eax
cmp eax, ebx
jl 0x40b360
jmp 0x40b48f
test ecx, ecx
jle case.default.0x40b1d5
mov eax, esi
mov dword [ebp - 0x20], edi
sub eax, ebx
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x60], eax
mov eax, edx
sub eax, esi
sub edx, edi
mov edi, dword [ebp - 0x60]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x14], edx
movzx esi, byte [edx + ecx]
movzx eax, byte [eax + edi]
movzx edx, byte [edi]
mov dword [ebp - 0x44], eax
mov ecx, edx
sub ecx, eax
mov dword [ebp - 0x58], esi
add esi, ecx
mov dword [ebp - 0x40], edx
mov eax, esi
sub esi, dword [ebp - 0x44]
sub eax, edx
cdq
xor eax, edx
sub eax, edx
mov dword [ebp - 0x60], eax
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
mov dword [ebp - 0x5c], eax
mov eax, esi
cdq
mov ecx, eax
mov eax, dword [ebp - 0x60]
xor ecx, edx
sub ecx, edx
mov edx, dword [ebp - 0x5c]
cmp eax, edx
jg 0x40b3fb
cmp eax, ecx
jle 0x40b407
mov eax, dword [ebp - 0x44]
cmp edx, ecx
cmovle eax, dword [ebp - 0x58]
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x14]
mov al, byte [ecx]
inc ecx
add al, byte [ebp - 0x40]
mov byte [edi + ebx], al
inc edi
sub dword [ebp - 0x3c], 1
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x20], ecx
jne 0x40b3b1
mov edi, dword [ebp - 8]
jmp 0x40b495
xor edx, edx
test ecx, ecx
jle case.default.0x40b1d5
mov eax, esi
sub eax, ebx
mov dword [ebp - 0x60], eax
mov eax, edi
mov edi, dword [ebp - 0x60]
sub eax, esi
mov dword [ebp - 0x5c], eax
nop
mov al, byte [edi + edx]
lea ecx, [esi + edx]
mov ebx, dword [ebp - 0x5c]
inc edx
shr al, 1
add al, byte [ecx + ebx]
mov byte [ecx], al
cmp edx, dword [ebp - 0x10]
jl 0x40b440
jmp 0x40b48f
mov dword [ebp - 0x60], 0
test ecx, ecx
jle case.default.0x40b1d5
mov eax, esi
mov ecx, edi
mov edi, dword [ebp - 0x60]
sub eax, ebx
mov ebx, dword [ebp - 0x10]
sub ecx, esi
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x5c], ecx
mov cl, byte [eax + edi]
lea edx, [esi + edi]
mov eax, dword [ebp - 0x5c]
inc edi
mov al, byte [edx + eax]
add al, cl
mov byte [edx], al
mov eax, dword [ebp - 0x58]
cmp edi, ebx
jl 0x40b477
mov edi, dword [ebp - 8]
mov ebx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
add edi, ecx
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp - 0x30]
mov esi, dword [ebp - 4]
inc eax
mov dword [ebp - 0x30], eax
cmp eax, dword [ebp + 0x14]
jb 0x40aad0
mov ecx, dword [ebp + 0x10]
cmp edx, 8
jge 0x40b885
cmp dword [ebp + 0x14], 0
jbe 0x40b8bd
mov ebx, dword [ebp + 0xc]
imul ebx, ecx
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x5c], ebx
mov eax, dword [ebp - 0x28]
mov esi, ecx
sub esi, dword [ebp - 0x34]
add esi, ebx
mov eax, dword [eax + 0xc]
add esi, eax
cmp dword [ebp + 0x1c], 0
lea edi, [ecx + eax]
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x30], edi
mov edx, edi
jne 0x40b50f
mov bl, byte [eax + 0x48350c]
jmp 0x40b511
pop edi
pop esi
mov dword [0x4983b8], 0x487ec4
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov bl, 1
cmp eax, 4
jne 0x40b574
mov ecx, dword [ebp - 0x24]
cmp ecx, 2
jl 0x40b562
mov edi, ecx
shr edi, 1
mov eax, edi
neg eax
lea ecx, [ecx + eax*2]
mov dword [ebp - 0x60], ecx
nop dword [eax]
movzx ecx, byte [esi]
shr cl, 4
movzx ecx, cl
movzx eax, bl
imul ecx, eax
movzx eax, bl
mov byte [edx], cl
movzx ecx, byte [esi]
inc esi
and cl, 0xf
movzx ecx, cl
imul ecx, eax
mov byte [edx + 1], cl
add edx, 2
sub edi, 1
jne 0x40b530
mov edi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x60]
test ecx, ecx
jle 0x40b7d2
mov cl, byte [esi]
shr cl, 4
jmp 0x40b7c7
cmp eax, 2
jne 0x40b63d
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x20], ecx
cmp ecx, 4
jl 0x40b5f3
mov edi, ecx
shr edi, 2
mov eax, edi
neg eax
lea ecx, [ecx + eax*4]
mov dword [ebp - 0x20], ecx
movzx ecx, byte [esi]
shr cl, 6
movzx ecx, cl
movzx eax, bl
imul ecx, eax
movzx eax, bl
mov byte [edx], cl
movzx ecx, byte [esi]
shr cl, 4
and cl, 3
movzx ecx, cl
imul ecx, eax
movzx eax, bl
mov byte [edx + 1], cl
movzx ecx, byte [esi]
shr cl, 2
and cl, 3
movzx ecx, cl
imul ecx, eax
movzx eax, bl
mov byte [edx + 2], cl
movzx ecx, byte [esi]
inc esi
and cl, 3
movzx ecx, cl
imul ecx, eax
mov byte [edx + 3], cl
add edx, 4
sub edi, 1
jne 0x40b597
mov edi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x20]
test ecx, ecx
jle 0x40b60b
mov cl, byte [esi]
shr cl, 6
movzx ecx, cl
movzx eax, bl
imul ecx, eax
mov byte [edx], cl
inc edx
mov ecx, dword [ebp - 0x20]
cmp ecx, 1
jle 0x40b627
mov cl, byte [esi]
shr cl, 4
and cl, 3
movzx eax, bl
movzx ecx, cl
imul ecx, eax
mov byte [edx], cl
inc edx
mov ecx, dword [ebp - 0x20]
cmp ecx, 2
jle 0x40b7d2
mov cl, byte [esi]
shr cl, 2
and cl, 3
jmp 0x40b7c7
cmp eax, 1
jne 0x40b7d5
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x18], ecx
cmp ecx, 8
jl 0x40b717
mov edi, ecx
shr edi, 3
mov eax, edi
neg eax
lea ecx, [ecx + eax*8]
mov dword [ebp - 0x18], ecx
movzx ecx, byte [esi]
shr cl, 7
movzx ecx, cl
movzx eax, bl
imul ecx, eax
movzx eax, bl
mov byte [edx], cl
movzx ecx, byte [esi]
shr cl, 6
and cl, 1
movzx ecx, cl
imul ecx, eax
movzx eax, bl
mov byte [edx + 1], cl
movzx ecx, byte [esi]
shr cl, 5
and cl, 1
movzx ecx, cl
imul ecx, eax
movzx eax, bl
mov byte [edx + 2], cl
movzx ecx, byte [esi]
shr cl, 4
and cl, 1
movzx ecx, cl
imul ecx, eax
movzx eax, bl
mov byte [edx + 3], cl
movzx ecx, byte [esi]
shr cl, 3
and cl, 1
movzx ecx, cl
imul ecx, eax
movzx eax, bl
mov byte [edx + 4], cl
movzx ecx, byte [esi]
shr cl, 2
and cl, 1
movzx ecx, cl
imul ecx, eax
movzx eax, bl
mov byte [edx + 5], cl
movzx ecx, byte [esi]
shr cl, 1
and cl, 1
movzx ecx, cl
imul ecx, eax
movzx eax, bl
mov byte [edx + 6], cl
movzx ecx, byte [esi]
inc esi
and cl, 1
movzx ecx, cl
imul ecx, eax
mov byte [edx + 7], cl
add edx, 8
sub edi, 1
jne 0x40b664
mov edi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jle 0x40b72f
mov cl, byte [esi]
shr cl, 7
movzx ecx, cl
movzx eax, bl
imul ecx, eax
mov byte [edx], cl
inc edx
mov ecx, dword [ebp - 0x18]
cmp ecx, 1
jle 0x40b74b
mov cl, byte [esi]
shr cl, 6
and cl, 1
movzx eax, bl
movzx ecx, cl
imul ecx, eax
mov byte [edx], cl
inc edx
mov ecx, dword [ebp - 0x18]
cmp ecx, 2
jle 0x40b767
mov cl, byte [esi]
shr cl, 5
and cl, 1
movzx eax, bl
movzx ecx, cl
imul ecx, eax
mov byte [edx], cl
inc edx
mov ecx, dword [ebp - 0x18]
cmp ecx, 3
jle 0x40b783
mov cl, byte [esi]
shr cl, 4
and cl, 1
movzx eax, bl
movzx ecx, cl
imul ecx, eax
mov byte [edx], cl
inc edx
mov ecx, dword [ebp - 0x18]
cmp ecx, 4
jle 0x40b79f
mov cl, byte [esi]
shr cl, 3
and cl, 1
movzx eax, bl
movzx ecx, cl
imul ecx, eax
mov byte [edx], cl
inc edx
mov ecx, dword [ebp - 0x18]
cmp ecx, 5
jle 0x40b7bb
mov cl, byte [esi]
shr cl, 2
and cl, 1
movzx eax, bl
movzx ecx, cl
imul ecx, eax
mov byte [edx], cl
inc edx
mov ecx, dword [ebp - 0x18]
cmp ecx, 6
jle 0x40b7d2
mov cl, byte [esi]
shr cl, 1
and cl, 1
movzx eax, bl
movzx ecx, cl
imul ecx, eax
mov byte [edx], cl
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp + 0xc]
je 0x40b866
cmp eax, 1
jne 0x40b802
mov ecx, dword [ebp + 0x10]
sub ecx, eax
js 0x40b863
nop dword [eax]
mov byte [edi + ecx*2 + 1], 0xff
mov al, byte [ecx + edi]
mov byte [edi + ecx*2], al
sub ecx, 1
jns 0x40b7f0
jmp 0x40b863
cmp eax, 3
je 0x40b81f
push 0x1200
push str.C:Users_adeptDesktopMAADeditorMAADeditorCode_stb_image.h
push str.img_n__3
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
add esp, 0xc
mov esi, dword [ebp + 0x10]
sub esi, 1
js 0x40b863
lea edx, [esi*2 + 1]
add edx, edi
lea ecx, [esi*4 + 2]
add edx, esi
add ecx, edi
nop dword [eax + eax]
sub esi, 1
mov byte [ecx + 1], 0xff
movzx eax, byte [edx + 1]
lea edx, [edx - 3]
mov byte [ecx], al
lea ecx, [ecx - 4]
movzx eax, byte [edx + 3]
mov byte [ecx + 3], al
movzx eax, byte [edx + 2]
mov byte [ecx + 2], al
jns 0x40b840
mov ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 0x2c]
sub dword [ebp + 0x14], 1
mov ebx, dword [ebp - 0x5c]
mov dword [ebp - 0x10], ecx
jne 0x40b4d4
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
cmp edx, 0x10
jne 0x40b8bd
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x28]
imul ebx, ecx
mov esi, dword [eax + 0xc]
mov edx, esi
imul ebx, dword [ebp + 0x14]
test ebx, ebx
je 0x40b8bd
movzx ecx, byte [esi]
lea edx, [edx + 2]
movzx eax, byte [edx - 1]
lea esi, [esi + 2]
shl cx, 8
or cx, ax
mov word [edx - 2], cx
sub ebx, 1
jne 0x40b8a0
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov dword [0x4983b8], 0x487ce4
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret