Function at 0x42c070
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x38
mov eax, ecx
mov dword [ebp - 0x20], edx
push esi
mov dword [ebp - 0x18], eax
push edi
mov ecx, dword [eax]
xor edi, edi
mov esi, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov dword [ebp - 0xc], ecx
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x30], ecx
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x24], eax
mov eax, dword [esi + 0x38]
mov dword [ebp - 4], ecx
mov dword [ebp - 0x10], edi
mov dword [ebp - 8], edi
movsx ecx, word [eax + edx*2]
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x1c], edx
lea eax, [ecx + eax*8]
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x2c], eax
cmp dword [ebx + 0x24], edi
je 0x42c0f3
cmp ecx, 2
jne 0x42c0f3
mov edx, eax
lea esi, [ecx*2 - 1]
mov eax, dword [ebx + 0x14]
sar edx, 1
sub edx, 0x10
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
jmp 0x42c116
mov edx, eax
lea esi, [ecx*2 - 1]
mov eax, dword [ebx + 0x14]
sar edx, 1
sub edx, 4
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
cmp dword [ebx + 0x24], edi
je 0x42c117
mov dword [ebp - 0x14], eax
cmp ecx, 2
jne 0x42c117
dec esi
mov eax, esi
imul eax, edx
add eax, dword [ebp - 0x14]
cdq
idiv esi
mov edx, dword [ebp - 0x14]
sub edx, dword [ebp - 0x2c]
add edx, 0xffffffe0
cmp edx, eax
cmovge edx, eax
mov eax, 0x40
cmp edx, eax
cmovg edx, eax
cmp edx, 4
jge 0x42c149
mov eax, 1
mov dword [ebp - 0x14], eax
jmp 0x42c177
mov eax, edx
mov ecx, 0xe
sar eax, 3
and edx, 7
sub cl, al
movsx eax, word [edx*2 + 0x5aebb8]
sar eax, cl
inc eax
and eax, 0xfffffffe
mov dword [ebp - 0x14], eax
cmp eax, 0x100
jg 0x42c898
mov ecx, dword [ebx + 0x10]
mov esi, dword [ebx + 0x24]
mov edx, 1
test esi, esi
je 0x42c192
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x30]
mov ecx, dword [ebx + 0x10]
cmovge eax, edx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0xc], edi
je 0x42c1b2
mov eax, dword [ebp - 0x18]
mov edx, dword [ebx + 0xc]
push dword [eax + 0x2c]
push ecx
mov ecx, dword [ebx + 8]
push esi
call fcn.00421e30
mov edi, eax
add esp, 0xc
mov dword [ebp - 0x10], edi
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x1c]
bsr esi, edx
inc esi
lea ecx, [esi - 0x10]
shr edx, cl
mov ecx, edx
shr ecx, 0xc
sub ecx, 8
cmp dword [ecx*4 + 0x5ae9e4], edx
mov edx, dword [ebp - 4]
sbb eax, eax
neg eax
mov edx, dword [edx + 0x14]
sub edx, esi
mov esi, dword [ebp - 0x14]
shl edx, 3
sub edx, eax
sub edx, ecx
mov dword [ebp - 0x34], edx
cmp esi, 1
je 0x42c55d
cmp dword [ebp - 0xc], 0
je 0x42c2f8
cmp dword [ebx + 0x24], 0
mov eax, dword [ebp - 0x18]
je 0x42c266
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x42c255
mov eax, 0x7fff
cmp edi, 0x2000
jg 0x42c221
mov eax, 0xffff8001
cdq
mov ecx, esi
idiv esi
imul ecx, edi
lea edi, [esi - 1]
add ecx, eax
xor eax, eax
sar ecx, 0xe
test ecx, ecx
cmovns eax, ecx
cmp edi, eax
jl 0x42c245
xor eax, eax
mov edi, ecx
test ecx, ecx
cmovs edi, eax
cmp dword [ebp - 0x30], 0
jl 0x42c305
inc edi
jmp 0x42c305
imul edi, esi
add edi, 0x2000
sar edi, 0xe
jmp 0x42c305
imul edi, esi
add edi, 0x2000
sar edi, 0xe
cmp dword [eax + 0x38], 0
mov dword [ebp - 0x10], edi
je 0x42c3f3
test edi, edi
jle 0x42c3f3
cmp edi, esi
jge 0x42c3f3
mov eax, edi
xor edx, edx
shl eax, 0xe
div esi
movzx esi, ax
mov ecx, esi
call fcn.0042ace0
mov ecx, 0x4000
movsx edi, ax
sub ecx, esi
call fcn.0042ace0
movsx ecx, ax
mov edx, edi
call fcn.0042ad40
mov esi, dword [ebp - 0x14]
movsx ecx, ax
mov eax, dword [ebx + 0x10]
shl eax, 7
add eax, 0xffffff80
cwde
imul ecx, eax
mov eax, dword [ebx + 0x14]
mov eax, dword [eax]
add ecx, 0x4000
sar ecx, 0xf
cmp ecx, eax
jle 0x42c2e7
mov edi, esi
jmp 0x42c3f3
neg eax
cmp ecx, eax
jge 0x42c3f0
xor edi, edi
jmp 0x42c3f3
cmp dword [ebx + 0x24], 0
mov dword [ebp - 0x30], edi
je 0x42c3f3
cmp dword [ebx + 0x10], 2
jle 0x42c3f3
mov eax, esi
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
cmp dword [ebp - 0xc], 0
mov dword [ebp - 0x18], ecx
lea eax, [ecx + 1]
lea eax, [eax + eax*2]
lea edx, [eax + ecx]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x14], edx
je 0x42c36a
sub eax, ecx
cmp edi, ecx
jg 0x42c350
lea eax, [edi + edi*2]
lea ecx, [eax + 3]
push edx
push ecx
mov ecx, dword [ebp - 4]
mov edx, eax
call fcn.00419060
add esp, 8
jmp 0x42c4fd
lea ecx, [eax + edi]
lea eax, [ecx - 1]
push edx
push ecx
mov ecx, dword [ebp - 4]
mov edx, eax
call fcn.00419060
add esp, 8
jmp 0x42c4fd
mov eax, dword [ebp - 4]
xor edx, edx
mov edi, dword [ebp - 0x14]
mov eax, dword [eax + 0x1c]
div edi
xor edx, edx
mov ecx, eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x24], ecx
mov eax, dword [eax + 0x20]
div ecx
mov edx, edi
sub edx, eax
dec edx
lea ecx, [eax + 1]
cmp edi, ecx
sbb ecx, ecx
and ecx, edx
mov edx, edi
sub edx, ecx
mov ecx, dword [ebp - 0x30]
sub edx, eax
dec edx
cmp edx, ecx
jge 0x42c3b3
mov eax, 0x55555556
imul edx
mov eax, dword [ebp - 0x18]
mov edi, edx
shr edi, 0x1f
jmp 0x42c3bb
mov eax, dword [ebp - 0x18]
sub edx, ecx
lea edi, [eax + 1]
add edi, edx
sub ecx, eax
cmp edi, eax
jg 0x42c3cb
lea eax, [edi + edi*2]
lea ecx, [eax + 3]
jmp 0x42c3d9
lea eax, [ecx + edi]
mov dword [ebp - 0x30], eax
lea eax, [ecx - 1]
mov ecx, dword [ebp - 0x30]
add eax, edi
mov edx, dword [ebp - 0x14]
push edx
push ecx
mov ecx, dword [ebp - 4]
mov edx, eax
call fcn.0040ec40
add esp, 8
jmp 0x42c4fd
mov edi, dword [ebp - 0x10]
cmp dword [ebx + 0x1c], 1
jg 0x42c4dd
cmp dword [ebx + 0x24], 0
jne 0x42c4dd
mov eax, esi
sar eax, 1
mov dword [ebp - 0x30], eax
lea ecx, [eax + 1]
mov edx, ecx
mov dword [ebp - 0x2c], ecx
imul edx, ecx
cmp dword [ebp - 0xc], 0
mov dword [ebp - 0x18], edx
je 0x42c467
mov ecx, esi
sub ecx, edi
mov dword [ebp - 0x30], ecx
cmp edi, eax
jg 0x42c43a
lea edx, [edi + 1]
imul edx, edi
lea eax, [edi + 1]
sar edx, 1
jmp 0x42c451
lea eax, [ecx + 1]
add ecx, 2
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x30]
inc eax
imul ecx, eax
mov eax, dword [ebp - 0x2c]
sar ecx, 1
sub edx, ecx
push dword [ebp - 0x18]
mov ecx, dword [ebp - 4]
add eax, edx
push eax
call fcn.00419060
add esp, 8
jmp 0x42c4fd
mov ecx, dword [ebp - 4]
call fcn.0040ec10
mov ecx, dword [ebp - 0x30]
imul ecx, dword [ebp - 0x2c]
sar ecx, 1
cmp eax, ecx
jge 0x42c499
lea ecx, [eax*8 + 1]
call fcn.0043fae0
lea edi, [eax - 1]
shr edi, 1
lea ecx, [edi + 1]
mov edx, ecx
imul edx, edi
sar edx, 1
jmp 0x42c4c9
mov ecx, dword [ebp - 0x18]
sub ecx, eax
lea ecx, [ecx*8 - 7]
call fcn.0043fae0
mov edx, dword [ebp - 0x18]
lea edi, [esi*2 + 2]
sub edi, eax
mov eax, esi
shr edi, 1
sub eax, edi
lea ecx, [eax + 1]
add eax, 2
imul eax, ecx
sar eax, 1
sub edx, eax
push dword [ebp - 0x18]
lea eax, [edx + ecx]
mov ecx, dword [ebp - 4]
push eax
call fcn.0040ec40
add esp, 8
jmp 0x42c4fd
cmp dword [ebp - 0xc], 0
lea edx, [esi + 1]
mov ecx, dword [ebp - 4]
je 0x42c4f6
push edx
mov edx, edi
call fcn.004191b0
add esp, 4
jmp 0x42c4fd
call fcn.0040ed20
mov edi, eax
test edi, edi
js 0x42c8ac
shl edi, 0xe
xor edx, edx
mov eax, edi
div esi
cmp dword [ebp - 0xc], 0
mov edi, eax
mov dword [ebp - 0x10], edi
je 0x42c70d
cmp dword [ebx + 0x24], 0
je 0x42c70d
push dword [ebx + 0x10]
test edi, edi
jne 0x42c54a
push dword [ebp - 0x1c]
mov edx, dword [ebx + 8]
push dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
push dword [ebx + 0xc]
call fcn.0042b270
add esp, 0x10
jmp 0x42c70d
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
call fcn.0042b460
add esp, 4
jmp 0x42c70d
cmp dword [ebx + 0x24], 0
je 0x42c70a
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x42c6ba
cmp edi, 0x2000
jle 0x42c694
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0x34], 0
jne 0x42c694
mov edx, dword [ebx + 0x10]
xor ecx, ecx
mov dword [ebp - 8], 1
test edx, edx
jle 0x42c69e
mov edi, dword [ebx + 0xc]
mov dword [ebp - 8], 1
cmp edx, 2
jb 0x42c638
movaps xmm2, xmmword [0x92bc70]
mov dword [ebp - 8], 1
cmp edx, 0x10
jb 0x42c612
mov esi, edx
mov dword [ebp - 8], 1
and esi, 0xfffffff0
lea eax, [edi + 0x20]
movups xmm0, xmmword [eax - 0x20]
add ecx, 0x10
lea eax, [eax + 0x40]
xorps xmm0, xmm2
movups xmmword [eax - 0x60], xmm0
movups xmm0, xmmword [eax - 0x50]
xorps xmm0, xmm2
movups xmmword [eax - 0x50], xmm0
movups xmm0, xmmword [eax - 0x40]
xorps xmm0, xmm2
movups xmmword [eax - 0x40], xmm0
movups xmm0, xmmword [eax - 0x30]
xorps xmm0, xmm2
movups xmmword [eax - 0x30], xmm0
cmp ecx, esi
jl 0x42c5d4
mov eax, edx
and al, 0xf
cmp al, 2
jb 0x42c634
mov eax, edx
and eax, 0xfffffffe
nop word [eax + eax]
movsd xmm0, qword [edi + ecx*4]
xorps xmm0, xmm2
movsd qword [edi + ecx*4], xmm0
add ecx, 2
cmp ecx, eax
jl 0x42c620
cmp ecx, edx
jge 0x42c6a1
movaps xmm1, xmmword [0x92bc70]
mov eax, edx
sub eax, ecx
cmp eax, 4
jl 0x42c680
mov esi, edx
lea eax, [ecx + 2]
sub esi, ecx
lea eax, [edi + eax*4]
sub esi, 4
shr esi, 2
inc esi
lea ecx, [ecx + esi*4]
nop dword [eax]
lea eax, [eax + 0x10]
movups xmm0, xmmword [eax - 0x18]
xorps xmm0, xmm1
movups xmmword [eax - 0x18], xmm0
sub esi, 1
jne 0x42c660
cmp ecx, edx
jge 0x42c6a1
nop word [eax + eax]
movss xmm0, dword [edi + ecx*4]
xorps xmm0, xmm1
movss dword [edi + ecx*4], xmm0
inc ecx
cmp ecx, edx
jl 0x42c680
jmp 0x42c6a1
mov edx, dword [ebx + 0x10]
mov dword [ebp - 8], 0
mov edi, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x28]
push edx
push dword [ebp - 0x1c]
mov edx, dword [ebx + 8]
push dword [ebp - 0x24]
push edi
call fcn.0042b270
mov eax, dword [ebp - 0xc]
add esp, 0x10
mov ecx, dword [ebx + 0x14]
mov esi, dword [ebp - 0x18]
cmp dword [ecx], 0x10
jle 0x42c6f0
cmp dword [esi + 0x20], 0x10
jle 0x42c6f0
mov ecx, dword [ebp - 4]
test eax, eax
je 0x42c6e1
mov edx, dword [ebp - 8]
push 2
call fcn.004190b0
add esp, 4
jmp 0x42c6f7
mov edx, 2
call fcn.0040ec80
mov dword [ebp - 8], eax
jmp 0x42c6f7
mov dword [ebp - 8], 0
xor eax, eax
xor edi, edi
cmp dword [esi + 0x34], eax
mov dword [ebp - 0x10], edi
cmove eax, dword [ebp - 8]
mov dword [ebp - 8], eax
jmp 0x42c70d
mov edi, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x1c]
bsr esi, edx
inc esi
lea ecx, [esi - 0x10]
shr edx, cl
mov ecx, edx
shr ecx, 0xc
sub ecx, 8
cmp dword [ecx*4 + 0x5ae9e4], edx
mov edx, dword [ebp - 4]
sbb eax, eax
neg eax
mov edx, dword [edx + 0x14]
sub edx, esi
shl edx, 3
sub edx, eax
mov eax, dword [ebx + 0x14]
sub edx, ecx
sub edx, dword [ebp - 0x34]
mov dword [ebp - 0x30], edx
sub dword [eax], edx
test edi, edi
jne 0x42c76f
mov ecx, dword [ebx + 0x18]
mov esi, 1
mov eax, dword [ebx + 0x28]
shl esi, cl
mov ecx, 0xffffc000
dec esi
mov dword [ebp - 0x1c], edi
and dword [eax], esi
mov esi, 0x7fff
jmp 0x42c86e
cmp edi, 0x4000
jne 0x42c799
mov ecx, dword [ebx + 0x18]
mov esi, 1
mov eax, dword [ebx + 0x28]
shl esi, cl
dec esi
mov dword [ebp - 0x1c], 0x7fff
shl esi, cl
mov ecx, edi
and dword [eax], esi
xor esi, esi
jmp 0x42c86e
movzx edi, di
mov ecx, 0x4000
movsx eax, di
imul eax, eax
add eax, 0x1000
sar eax, 0xd
movzx esi, ax
movsx edx, si
imul eax, edx, 0x272
sub ecx, eax
sar ecx, 0xf
add ecx, 0x2055
movsx eax, cx
imul eax, edx
add eax, 0x4000
sar eax, 0xf
sub eax, 0x1de3
cwde
imul eax, edx
add eax, 0x4000
sar eax, 0xf
sub eax, esi
mov esi, 0x4000
sub eax, 0x8000
cwde
mov dword [ebp - 0x34], eax
mov eax, esi
sub eax, edi
cwde
imul eax, eax
add eax, 0x1000
sar eax, 0xd
movzx edx, ax
movsx ecx, dx
imul eax, ecx, 0x272
sub esi, eax
sar esi, 0xf
add esi, 0x2055
movsx eax, si
imul eax, ecx
mov esi, dword [ebp - 0x34]
add eax, 0x4000
sar eax, 0xf
sub eax, 0x1de3
cwde
imul eax, ecx
add eax, 0x4000
sar eax, 0xf
sub eax, edx
mov edx, esi
sub eax, 0x8000
cwde
mov ecx, eax
mov dword [ebp - 0x1c], eax
call fcn.0042ad40
mov edi, dword [ebp - 0x10]
movsx ecx, ax
mov eax, dword [ebx + 0x10]
shl eax, 7
add eax, 0xffffff80
cwde
imul ecx, eax
add ecx, 0x4000
sar ecx, 0xf
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 8]
mov dword [edx], eax
mov eax, edx
mov dword [eax + 4], esi
mov esi, edx
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x30]
mov dword [esi + 0x10], edi
pop edi
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
mov dword [esi + 0x14], edx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push 0x29d
mov edx, str.D:_aopus_tools_win32_buildopus_tools_win32_buildlibopuscelt_bands.c
mov ecx, str.assertion_failed:_qn___256
call fcn.00403f00
push 0x346
mov edx, str.D:_aopus_tools_win32_buildopus_tools_win32_buildlibopuscelt_bands.c
mov ecx, str.assertion_failed:_itheta_0
call fcn.00403f00
int3