Function at 0x430cd0
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]
mov esi, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x10], 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 - 0x28], esi
mov esi, dword [ebx + 0x10]
movsx ecx, word [eax + edx*2]
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0x1c], edx
lea ecx, [ecx + eax*8]
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x2c], ecx
test eax, eax
je 0x430d59
cmp esi, 2
jne 0x430d59
mov eax, dword [ebx + 0x14]
lea edi, [esi*2 - 1]
sar ecx, 1
sub ecx, 0x10
mov edx, dword [eax]
mov dword [ebp - 0x14], edx
jmp 0x430d79
mov edx, dword [ebx + 0x14]
lea edi, [esi*2 - 1]
sar ecx, 1
sub ecx, 4
mov edx, dword [edx]
mov dword [ebp - 0x14], edx
test eax, eax
je 0x430d7a
mov dword [ebp - 0x14], edx
cmp esi, 2
jne 0x430d7a
dec edi
mov eax, edi
imul eax, ecx
add eax, edx
cdq
idiv edi
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 0x430e98
mov edi, 1
mov dword [ebp - 0x14], edi
mov ecx, dword [ebx + 0x24]
mov eax, 1
test ecx, ecx
je 0x430dc5
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x30]
cmovge edi, eax
mov dword [ebp - 0x14], edi
cmp dword [ebp - 0x10], 0
je 0x430de4
mov eax, dword [ebp - 0x18]
mov edx, dword [ebx + 0xc]
push dword [eax + 0x2c]
push esi
push ecx
mov ecx, dword [ebx + 8]
call fcn.004276d0
add esp, 0xc
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov edi, dword [ebp - 4]
mov eax, dword [eax + 0x1c]
bsr edx, eax
mov edi, dword [edi + 0x14]
inc edx
mov dword [ebp - 0x30], eax
lea ecx, [edx - 0x10]
shr eax, cl
mov ecx, eax
shr ecx, 0xc
sub ecx, 8
cmp dword [ecx*4 + 0x5992d4], eax
sbb eax, eax
sub edi, edx
shl edi, 3
neg eax
sub edi, eax
sub edi, ecx
mov dword [ebp - 0x34], edi
mov edi, dword [ebp - 0x14]
cmp edi, 1
je 0x4311d3
cmp dword [ebp - 0x10], 0
je 0x430f74
mov edx, dword [ebx + 0x24]
mov eax, dword [ebp - 0x18]
test edx, edx
je 0x430ed4
mov esi, dword [eax + 0x30]
test esi, esi
je 0x430ed4
mov ecx, dword [ebp - 0xc]
mov eax, 0x7fff
cmp ecx, 0x2000
jg 0x430e5f
mov eax, 0xffff8001
cdq
idiv edi
mov edx, edi
imul edx, ecx
lea ecx, [edi - 1]
mov dword [ebp - 0xc], ecx
add edx, eax
xor eax, eax
sar edx, 0xe
test edx, edx
cmovns eax, edx
cmp ecx, eax
jl 0x430e89
xor eax, eax
mov ecx, edx
test edx, edx
cmovs ecx, eax
mov dword [ebp - 0xc], ecx
mov eax, dword [ebx + 0x24]
test esi, esi
jns 0x430ec9
mov esi, dword [ebp - 0xc]
jmp 0x430f8b
mov eax, edx
mov ecx, 0xe
and edx, 7
sar eax, 3
sub cl, al
movsx edi, word [edx*2 + 0x599468]
sar edi, cl
inc edi
and edi, 0xfffffffe
mov dword [ebp - 0x14], edi
cmp edi, 0x100
jg 0x431505
jmp 0x430dad
inc ecx
mov dword [ebp - 0xc], ecx
mov esi, ecx
jmp 0x430f8b
mov esi, edi
imul esi, dword [ebp - 0xc]
add esi, 0x2000
sar esi, 0xe
mov dword [ebp - 0xc], esi
test edx, edx
jne 0x430f89
cmp dword [eax + 0x38], edx
je 0x43106f
test esi, esi
jle 0x43106f
cmp esi, edi
jge 0x43106f
mov eax, esi
shl eax, 0xe
div edi
movzx esi, ax
mov ecx, esi
call fcn.0042fd10
mov ecx, 0x4000
movsx edi, ax
sub ecx, esi
call fcn.0042fd10
movsx ecx, ax
mov edx, edi
call fcn.0042fd70
mov edi, 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 0x430f60
mov eax, dword [ebx + 0x24]
mov esi, edi
jmp 0x431071
neg eax
cmp ecx, eax
mov eax, dword [ebx + 0x24]
jge 0x43106a
xor esi, esi
jmp 0x431071
mov eax, dword [ebp - 0xc]
mov esi, eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x431071
jmp 0x430f8b
mov eax, edx
cmp dword [ebx + 0x10], 2
jle 0x431071
mov eax, edi
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
cmp dword [ebp - 0x10], 0
mov dword [ebp - 0x18], ecx
lea eax, [ecx + 1]
lea eax, [eax + eax*2]
lea edx, [eax + ecx]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x14], edx
je 0x430ff0
sub eax, ecx
cmp esi, ecx
jg 0x430fd6
lea eax, [esi + esi*2]
lea ecx, [eax + 3]
push edx
push ecx
mov ecx, dword [ebp - 4]
mov edx, eax
call fcn.0041dcf0
add esp, 8
jmp 0x431173
lea ecx, [eax + esi]
lea eax, [ecx - 1]
push edx
push ecx
mov ecx, dword [ebp - 4]
mov edx, eax
call fcn.0041dcf0
add esp, 8
jmp 0x431173
mov esi, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x30]
div esi
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, esi
sub edx, eax
dec edx
lea ecx, [eax + 1]
cmp esi, ecx
sbb ecx, ecx
and ecx, edx
mov edx, esi
sub edx, ecx
mov ecx, dword [ebp - 0x2c]
sub edx, eax
dec edx
cmp edx, ecx
jge 0x431036
mov eax, 0x55555556
imul edx
mov eax, dword [ebp - 0x18]
mov esi, edx
shr esi, 0x1f
jmp 0x43103e
mov eax, dword [ebp - 0x18]
sub edx, ecx
lea esi, [eax + 1]
add esi, edx
sub ecx, eax
cmp esi, eax
jg 0x43104e
lea eax, [esi + esi*2]
lea ecx, [eax + 3]
jmp 0x431053
add ecx, esi
lea eax, [ecx - 1]
mov edx, dword [ebp - 0x14]
push edx
push ecx
mov ecx, dword [ebp - 4]
mov edx, eax
call fcn.00425170
add esp, 8
jmp 0x431173
mov esi, dword [ebp - 0xc]
jmp 0x431071
mov eax, edx
cmp dword [ebx + 0x1c], 1
jg 0x431153
test eax, eax
jne 0x431153
mov eax, edi
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 - 0x10], 0
mov dword [ebp - 0x18], edx
je 0x4310dd
cmp esi, eax
jg 0x4310af
lea edx, [esi + 1]
imul edx, esi
lea eax, [esi + 1]
sar edx, 1
jmp 0x4310c7
mov eax, edi
sub eax, esi
lea ecx, [eax + 1]
mov dword [ebp - 0x30], ecx
lea ecx, [eax + 2]
inc eax
imul ecx, eax
mov eax, dword [ebp - 0x30]
sar ecx, 1
sub edx, ecx
push dword [ebp - 0x18]
mov ecx, dword [ebp - 4]
add eax, edx
push eax
call fcn.0041dcf0
add esp, 8
jmp 0x431173
mov ecx, dword [ebp - 4]
call fcn.00425140
mov ecx, dword [ebp - 0x30]
imul ecx, dword [ebp - 0x2c]
sar ecx, 1
cmp eax, ecx
jge 0x43110f
lea ecx, [eax*8 + 1]
call fcn.0043f8d0
lea esi, [eax - 1]
shr esi, 1
lea ecx, [esi + 1]
mov edx, ecx
imul edx, esi
sar edx, 1
jmp 0x43113f
mov ecx, dword [ebp - 0x18]
sub ecx, eax
lea ecx, [ecx*8 - 7]
call fcn.0043f8d0
mov edx, dword [ebp - 0x18]
lea esi, [edi*2 + 2]
sub esi, eax
mov eax, edi
shr esi, 1
sub eax, esi
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.00425170
add esp, 8
jmp 0x431173
cmp dword [ebp - 0x10], 0
lea edx, [edi + 1]
mov ecx, dword [ebp - 4]
je 0x43116c
push edx
mov edx, esi
call fcn.0041de40
add esp, 4
jmp 0x431173
call fcn.00425200
mov esi, eax
test esi, esi
js 0x431519
shl esi, 0xe
xor edx, edx
mov eax, esi
div edi
cmp dword [ebp - 0x10], 0
mov edi, eax
mov dword [ebp - 0xc], edi
je 0x43137a
cmp dword [ebx + 0x24], 0
je 0x43137a
push dword [ebx + 0x10]
test edi, edi
jne 0x4311c0
push dword [ebp - 0x1c]
mov edx, dword [ebx + 8]
push dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
push dword [ebx + 0xc]
call fcn.0042fed0
add esp, 0x10
jmp 0x43137a
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
call fcn.004300c0
add esp, 4
jmp 0x43137a
cmp dword [ebx + 0x24], 0
je 0x431377
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x431327
cmp dword [ebp - 0xc], 0x2000
jle 0x431304
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0x34], 0
jne 0x431304
movaps xmm2, xmmword [0x5baf30]
xor ecx, ecx
mov dword [ebp - 8], 1
test esi, esi
jle 0x4312a7
mov dword [ebp - 8], 1
cmp esi, 2
jb 0x4312ab
mov edx, dword [ebx + 0xc]
mov dword [ebp - 8], 1
cmp esi, 0x10
jb 0x43128e
mov edi, esi
mov dword [ebp - 8], 1
and edi, 0xfffffff0
lea eax, [edx + 0x20]
nop dword [eax + eax]
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, edi
jl 0x431250
mov eax, esi
and al, 0xf
cmp al, 2
jb 0x4312a7
mov eax, esi
and eax, 0xfffffffe
movsd xmm0, qword [edx + ecx*4]
xorps xmm0, xmm2
movsd qword [edx + ecx*4], xmm0
add ecx, 2
cmp ecx, eax
jl 0x431293
cmp ecx, esi
jge 0x43130b
mov edi, dword [ebx + 0xc]
mov eax, esi
sub eax, ecx
cmp eax, 4
jl 0x4312f0
mov edx, esi
lea eax, [edi + 8]
sub edx, ecx
lea eax, [eax + ecx*4]
sub edx, 4
shr edx, 2
inc edx
lea ecx, [ecx + edx*4]
nop dword [eax + eax]
lea eax, [eax + 0x10]
movups xmm0, xmmword [eax - 0x18]
xorps xmm0, xmm2
movups xmmword [eax - 0x18], xmm0
sub edx, 1
jne 0x4312d0
cmp ecx, esi
jge 0x43130e
nop word [eax + eax]
movss xmm0, dword [edi + ecx*4]
xorps xmm0, xmm2
movss dword [edi + ecx*4], xmm0
inc ecx
cmp ecx, esi
jl 0x4312f0
jmp 0x43130e
mov dword [ebp - 8], 0
mov edi, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
mov ecx, dword [ebp - 0x28]
push esi
push dword [ebp - 0x1c]
push dword [ebp - 0x24]
push edi
call fcn.0042fed0
mov eax, dword [ebp - 0x10]
add esp, 0x10
mov ecx, dword [ebx + 0x14]
mov esi, dword [ebp - 0x18]
cmp dword [ecx], 0x10
jle 0x43135d
cmp dword [esi + 0x20], 0x10
jle 0x43135d
mov ecx, dword [ebp - 4]
test eax, eax
je 0x43134e
mov edx, dword [ebp - 8]
push 2
call fcn.0041dd40
add esp, 4
jmp 0x431364
mov edx, 2
call fcn.004251b0
mov dword [ebp - 8], eax
jmp 0x431364
mov dword [ebp - 8], 0
xor eax, eax
xor edi, edi
cmp dword [esi + 0x34], eax
mov dword [ebp - 0xc], edi
cmove eax, dword [ebp - 8]
mov dword [ebp - 8], eax
jmp 0x43137a
mov edi, dword [ebp - 0xc]
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 + 0x5992d4], 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 0x4313dc
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 0x4314db
cmp edi, 0x4000
jne 0x431406
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 0x4314db
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.0042fd70
mov edi, dword [ebp - 0xc]
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.C:projectlibopuscelt_bands.c
mov ecx, str.assertion_failed:_qn___256
call fcn.004127a0
push 0x346
mov edx, str.C:projectlibopuscelt_bands.c
mov ecx, str.assertion_failed:_itheta_0
call fcn.004127a0
int3